From 12dc2dcb740f1148b271a8f17ead226f019dafca Mon Sep 17 00:00:00 2001 From: Andrey Date: Tue, 18 Feb 2025 15:27:57 +0400 Subject: [PATCH] fix: adjust migrations --- .../BaseDelegatorHints.json | 2 +- .../FullRestakeDelegatorHints.json | 2 +- .../NetworkRestakeDelegatorHints.json | 2 +- ...OperatorNetworkSpecificDelegatorHints.json | 2 +- .../OperatorSpecificDelegatorHints.json | 2 +- out/SlasherHints.sol/BaseSlasherHints.json | 2 +- out/SlasherHints.sol/SlasherHints.json | 2 +- out/SlasherHints.sol/VetoSlasherHints.json | 2 +- out/Vault.sol/Vault.json | 2 +- .../VaultConfigurator.json | 2 +- out/VaultHints.sol/VaultHints.json | 2 +- out/VaultTokenized.sol/VaultTokenized.json | 2 +- src/contracts/common/MigratableEntity.sol | 2 +- src/contracts/vault/Vault.sol | 2 +- src/contracts/vault/v1.1/Vault.sol | 68 +- src/contracts/vault/v1.1/VaultTokenized.sol | 10 +- src/contracts/vault/v1.1/VaultVotes.sol | 4 +- .../vault/v1.1/VaultVotesImplementation.sol | 8 +- src/interfaces/vault/v1.1/IVault.sol | 9 + src/interfaces/vault/v1.1/IVaultTokenized.sol | 5 +- src/interfaces/vault/v1.1/IVaultVotes.sol | 1 + test/mocks/SimpleMigratableEntity.sol | 2 +- test/mocks/SimpleMigratableEntityV2.sol | 2 +- test/vault/v1.1/VaultTokenized.t.sol | 1032 +++++++++-------- test/vault/v1.1/VaultVotes.t.sol | 1012 ++++++++-------- 25 files changed, 1138 insertions(+), 1043 deletions(-) diff --git a/out/DelegatorHints.sol/BaseDelegatorHints.json b/out/DelegatorHints.sol/BaseDelegatorHints.json index 50ff3d84..f976092b 100644 --- a/out/DelegatorHints.sol/BaseDelegatorHints.json +++ b/out/DelegatorHints.sol/BaseDelegatorHints.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"optInServiceHints","type":"address","internalType":"address"},{"name":"vaultHints_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"FULL_RESTAKE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_RESTAKE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPT_IN_SERVICE_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeBaseHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"stakeHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]}],"bytecode":{"object":"0x6101c03461027157618c446001600160401b03601f38839003908101601f191684019082821185831017610202578085916040958694855283398101031261027157610056602061004f85610275565b9401610275565b90306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460ff81861c166102605780838080931603610220575b5050505f60a0525f60c0525f60e052610100935f8552610120935f8552610140905f82526101609280845281516138338082019082821088831117610202578389849361010093611ef286393081526001600160a01b0391821660208201529116604082015260600190565b03905ff09485156102165760018060a01b0396876101809716875283519261351f91828501938585109085111761020257849361015c9361572586393081526001600160a01b0391821660208201529116604082015260600190565b03905ff09485156101f8576101a0951685525194611c68968761028a883960805187505060a05187610623015260c05187610b5f015260e05187818161048f0152610b980152518681816102c70152611a4b01525185818161030b015261163d01525184818161034f01526116bb015251838181610a3d0152611190015251828181610283015261148f015251818181610dfa01526115510152f35b50513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b82513d5f823e3d90fd5b6001600160401b03191617905582518181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8181610094565b845163f92ee8a960e01b8152600490fd5b5f80fd5b51906001600160a01b03821682036102715756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610214578063075db0361461020f578063103f29071461020a578063128e5d82146102055780631a80e500146102005780631bf10a3e146101fb57806323f752d5146101f6578063248a9ca3146101f157806325dc9708146101ec5780632dd31000146101e75780632f2ff15d146101e257806336568abe146101dd5780633dfd3873146101d8578063439fab91146101d3578063557cab44146101ce5780636679191e146101c95780637f5a7c7b146101c457806391d14854146101bf5780639b656b22146101ba5780639f86fd85146101b5578063a217fddf146101b0578063bb24fe8a146101ab578063c0cd7c3e146101a6578063d15b740e146101a1578063d547741f1461019c578063e02f693714610197578063e102831a14610192578063e49561ee1461018d578063fbfa77cf14610188578063fd4d447c14610183578063ff54740f1461017e5763ffa1ad7414610179575f80fd5b61108a565b61106d565b61103b565b611014565b610e29565b610de5565b610d02565b610bf1565b610bc7565b610b83565b610b40565b610b26565b610a6c565b610a28565b6109ca565b6109a2565b610968565b61094c565b61080f565b6106e9565b61069e565b610652565b61060e565b6105f1565b6105b8565b61043c565b610407565b61033a565b6102f6565b6102b2565b61026e565b3461026a57602036600319011261026a5760043563ffffffff60e01b811680910361026a57602090637965db0b60e01b8114908115610259575b506040519015158152f35b6301ffc9a760e01b1490505f61024e565b5f80fd5b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b0381160361026a57565b6064359065ffffffffffff8216820361026a57565b608090600319011261026a576004356103bc8161037e565b90602435906044356103cd8161037e565b9060643565ffffffffffff8116810361026a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461026a5761043861042461041b366103a4565b92919091611168565b6040519182916020835260208301906103e3565b0390f35b3461026a57604036600319011261026a576004356001600160601b038116810361026a576024359061046c611732565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f91610584575b5015610572576001600160601b03166bffffffffffffffffffffffff193360601b161790806104f6835f52600260205260405f2090565b541461056057610545817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610534855f52600260205260405f2090565b556040519081529081906020820190565b0390a261055e60015f80516020611bf383398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6105a6915060203d6020116105ac575b61059e8183610c71565b8101906113b9565b5f6104bf565b503d610594565b6110bd565b3461026a57602036600319011261026a576004355f525f80516020611bd38339815191526020526020600160405f200154604051908152f35b3461026a57610438610424610605366103a4565b929190916113f0565b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a57604036600319011261026a5761055e6024356004356106758261037e565b805f525f80516020611bd3833981519152602052610699600160405f200154611761565b611918565b3461026a57604036600319011261026a576024356106bb8161037e565b336001600160a01b038216036106d75761055e9060043561194e565b60405163334bd91960e11b8152600490fd5b3461026a57602036600319011261026a576004356107068161037e565b61070e611732565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156107c457506001546001600160a01b039182169181168214610560576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020611bf383398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b9181601f8401121561026a578235916001600160401b03831161026a576020838186019501011161026a57565b3461026a57602036600319011261026a576001600160401b0360043581811161026a576108409036906004016107e2565b5f80516020611c13833981519152549260ff8460401c1615931680159081610944575b600114908161093a575b159081610931575b5061091f575f80516020611c13833981519152805467ffffffffffffffff191660011790556108a891836108f657611a16565b6108ae57005b5f80516020611c13833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611c13833981519152805460ff60401b191668010000000000000000179055611a16565b60405163f92ee8a960e01b8152600490fd5b9050155f610875565b303b15915061086d565b849150610863565b3461026a575f36600319011261026a576020604051614e208152f35b3461026a575f36600319011261026a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461026a575f36600319011261026a576001546040516001600160a01b039091168152602090f35b3461026a57604036600319011261026a57602060ff610a1c6024356109ee8161037e565b6004355f525f80516020611bd3833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a5760408060031936011261026a57600435610a8a8161037e565b602435906001600160401b03821161026a575f8091610ab0610b149436906004016107e2565b908187519283928337810184815203915af43d15610b1c57610b063d610ad581610ca1565b90610ae286519283610c71565b81523d5f602083013e5b8451948593151560208501528084015260608301906103e3565b03601f198101835282610c71565b805190602001fd5b610b066060610aec565b3461026a575f36600319011261026a5760206040515f8152f35b3461026a575f36600319011261026a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a57602036600319011261026a576004355f526002602052602060405f2054604051908152f35b3461026a57604036600319011261026a5761055e602435600435610c148261037e565b805f525f80516020611bd3833981519152602052610c38600160405f200154611761565b61194e565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610c6c57604052565b610c3d565b90601f801991011681019081106001600160401b03821117610c6c57604052565b60405190610c9f82610c51565b565b6001600160401b038111610c6c57601f01601f191660200190565b81601f8201121561026a57803590610cd382610ca1565b92610ce16040519485610c71565b8284526020838301011161026a57815f926020809301838601378301015290565b3461026a5760808060031936011261026a57610d1f60243561037e565b60443565ffffffffffff81160361026a576001600160401b0360643581811161026a57610d50903690600401610cbc565b5060606020604051610d6181610c51565b828152015260605180610d79575b60206040515f8152f35b8281016020821261026a5783519183831161026a5782604091031261026a5760405193610da585610c51565b8281015184811161026a578282610dbe928601016110c8565b855260a083015193841161026a57602093610dda9301016110c8565b9101525f8080610d6f565b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a5760a036600319011261026a57602435600435610e498261037e565b60443591610e5561038f565b90608435906001600160401b03821161026a57610e7760049236908401610cbc565b610e7f611732565b5f54602090610ea490610e98906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156105b3575f93610fe3575b506001600160a01b039283163303610fd1576001546001600160a01b0316838116610f46575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361055e60015f80516020611bf383398151915255565b909360405194610f7d86610f6f602082019363724ab0f760e11b8552858c898d602487016115d0565b03601f198101885287610c71565b62042e305a10610fbf575f610f2d938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093610eec565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61100691935060203d60201161100d575b610ffe8183610c71565b8101906110a5565b915f610ec6565b503d610ff4565b3461026a575f36600319011261026a575f546040516001600160a01b039091168152602090f35b3461026a57604036600319011261026a57602061106560243561105d8161037e565b600435611608565b604051908152f35b3461026a575f36600319011261026a5760206040516203d0908152f35b3461026a575f36600319011261026a57602060405160018152f35b9081602091031261026a57516110ba8161037e565b90565b6040513d5f823e3d90fd5b81601f8201121561026a578051906110df82610ca1565b926110ed6040519485610c71565b8284526020838301011161026a57815f9260208093018386015e8301015290565b9060208282031261026a5781516001600160401b03811161026a576110ba92016110c8565b906110ba91602081526020611153835160408385015260608401906103e3565b920151906040601f19828503019101526103e3565b604080516309472ec160e11b8152606096956001600160a01b039384169591946020949192917f0000000000000000000000000000000000000000000000000000000000000000169085876004818b5afa9687156105b3575f9761139a575b50845163fbfa77cf60e01b81529686886004818c5afa80156105b357855f9161123b9a839161137d575b508851636a531c3160e11b8082526001600160a01b039586166004830152858916602483015294909116604482015265ffffffffffff909116606482015298899081906084820190565b0381865afa9788156105b3575f98611358575b508686979899600496975196878092621a80e560e81b82525afa9485156105b3575f95611335575b5086519081526001600160a01b03948516600482015293909216602484015260609190911c604483015265ffffffffffff9092166064820152905f9082908180608481015b03915afa9081156105b3575f91611313575b50835115801590611309575b6112e35750505050565b6110ba9394955090610b06916112f7610c92565b95865283860152519384928301611133565b50805115156112d9565b61132f91503d805f833e6113278183610c71565b81019061110e565b5f6112cd565b5f95506113516112bb918a3d8c1161100d57610ffe8183610c71565b9550611276565b8798509661137360049697983d805f833e6113278183610c71565b989796955061124e565b61139491508a3d8c1161100d57610ffe8183610c71565b5f6111f1565b6113b2919750863d881161100d57610ffe8183610c71565b955f6111c7565b9081602091031261026a5751801515810361026a5790565b9081602091031261026a57516001600160401b038116810361026a5790565b604051635d927f4560e11b8082526060969594936001600160a01b03939092909160209190858416908383600481855afa9283156105b3575f936115b1575b506001600160401b039283166114d65750506040516304bb92e160e31b81526001600160a01b0393841660048201526024810194909452505092909216604483015265ffffffffffff9290921660648201529192505f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f916114c2575090565b6110ba91503d805f833e6113278183610c71565b839060046040518094819382525afa9081156105b3576001935f92611584575b50501614611505575050505050565b6040516304bb92e160e31b81526001600160a01b039182166004820152602481019290925292909216604483015265ffffffffffff9290921660648201529192505f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f916114c2575090565b6115a39250803d106115aa575b61159b8183610c71565b8101906113d1565b5f806114f6565b503d611591565b6115c9919350843d86116115aa5761159b8183610c71565b915f61142f565b919360a0936110ba969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906103e3565b5f546040516308834cb560e21b8082526001600160a01b038581166004840152928316602483015293602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156105b3575f91611715575b501593841561168a575b505050509050611686575f90565b5f90565b6040519586526001600160a01b0392909216600486015260609190911c6024850152909291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156105b3575f926116f8575b505015805f808080611678565b61170e9250803d106105ac5761059e8183610c71565b5f806116eb565b61172c9150843d86116105ac5761059e8183610c71565b5f61166e565b5f80516020611bf3833981519152600281541461174f5760029055565b604051633ee5aeb560e01b8152600490fd5b5f8181525f80516020611bd38339815191526020908152604080832033845290915290205460ff16156107c45750565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020611bd38339815191529060ff1661183c575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020611bd38339815191529060ff905b5416611911575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b5f8181525f80516020611bd3833981519152602081815260408084206001600160a01b038716855290915290912060ff906118ad565b5f8181525f80516020611bd3833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611911575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261026a5780356119f88161037e565b9260208201356001600160401b03811161026a576110ba9201610cbc565b611a22918101906119e0565b506040516302910f8b60e31b81526001600160a01b0391821660048201819052906020816024817f000000000000000000000000000000000000000000000000000000000000000087165afa9081156105b3575f91611b34575b5015611b2257611aa990611a8e611b53565b60018060a01b03166001600160601b0360a01b5f5416175f55565b611afc6040611ab6611b76565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611b12575b5001516001600160a01b031690565b908116611b065750565b611b0f90611842565b50565b611b1b90611791565b505f611aed565b6040516362df054560e01b8152600490fd5b611b4d915060203d6020116105ac5761059e8183610c71565b5f611a7c565b611b5b611ba4565b611b63611ba4565b60015f80516020611bf383398151915255565b60405190606082018281106001600160401b03821117610c6c576040525f6040838281528260208201520152565b60ff5f80516020611c138339815191525460401c1615611bc057565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122092d0a50899b379fa072f62aaa0227955a522327ec4ec96b1f787d39eeaafbf9c64736f6c634300081900336101c0346101cf57601f61383338819003918201601f19168301916001600160401b0391828411858510176101d35781606092869260409687528339810103126101cf5761004c836101e7565b926100648361005d602084016101e7565b92016101e7565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101be57808083160361017a575b5050505f60a0525f60c0525f60e052610100935f8552610120935f8552610140905f82526101609283526101809384526101a0948552519461363796876101fc88396080518781816105a001528181610fd70152611629015260a051876109e9015260c051876112ac015260e05187818161084b01526112e5015251868181610512015261298501525185818161055601528181611e330152611f3b0152518481816107c901528181611d9a0152611fb9015251838181610e95015261194d015251828181610d9701526119ee015251816110490152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101cf5756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461030457806302145348146102ff57806307f9d5fd146102fa578063103f2907146102f5578063128e5d82146102f0578063197aa7ea146102eb5780631a7a7044146102e65780631a80e500146102e157806323f752d5146102dc578063248a9ca3146102d757806325dc9708146102d25780632dd31000146102cd5780632f2ff15d146102c857806336568abe146102c35780633dfd3873146102be5780633eb22c0f146102b957806342c53e33146102b4578063439fab91146102af57806345e78fcb146102aa578063557cab44146102a55780635d32a1c9146102a05780636679191e1461029b57806379d89614146102965780637d24bb27146102915780637f5a7c7b1461028c5780638b3f10b01461028757806391d1485414610282578063987b3ee81461027d5780639b656b22146102785780639f86fd8514610273578063a217fddf1461026e578063a33bc28714610269578063b549ef1f14610264578063bb24fe8a1461025f578063c0cd7c3e1461025a578063c43dc03f14610255578063d15b740e14610250578063d547741f1461024b578063da749d2b14610246578063e02f693714610241578063e49561ee1461023c578063e78eb6ae14610237578063ed4d89e514610232578063fbfa77cf1461022d578063fd4d447c14610228578063ff54740f146102235763ffa1ad741461021e575f80fd5b6116dc565b6116bf565b611695565b61166e565b61160e565b6115d4565b6113e9565b6113cd565b6113b3565b611367565b61133d565b611314565b6112d0565b61128d565b611273565b611126565b61110c565b611078565b611034565b610fa6565b610f48565b610f25565b610efd565b610ec4565b610e80565b610e46565b610e23565b610dc6565b610d82565b610c4a565b610bd1565b610ba8565b610aaf565b610a64565b610a18565b6109d4565b6109b7565b61097e565b6107f8565b6107b4565b61076e565b610585565b610541565b6104fd565b6104c8565b61035e565b3461035a57602036600319011261035a5760043563ffffffff60e01b811680910361035a57602090637965db0b60e01b8114908115610349575b506040519015158152f35b6301ffc9a760e01b1490505f61033e565b5f80fd5b3461035a5760408060031936011261035a57600435906024359061038061202e565b825f526002602052805f2054821161041a57825f526003602052816103a6825f206128d7565b1461040a5781610405916103f57e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103e6875f52600360205260405f2090565b6103ef42612d8e565b90612176565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b6001600160a01b0381160361035a57565b6024359065ffffffffffff8216820361035a57565b6064359065ffffffffffff8216820361035a57565b608090600319011261035a5760043561047d8161042a565b906024359060443561048e8161042a565b9060643565ffffffffffff8116810361035a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461035a576104f96104e56104dc36610465565b92919091611736565b6040519182916020835260208301906104a4565b0390f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a5761059e61043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600360205260405f206122f5565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761064357604052565b610614565b606081019081106001600160401b0382111761064357604052565b60a081019081106001600160401b0382111761064357604052565b90601f801991011681019081106001600160401b0382111761064357604052565b604051906106ac82610663565b565b604051906106ac82610628565b6001600160401b03811161064357601f01601f191660200190565b81601f8201121561035a578035906106ed826106bb565b926106fb604051948561067e565b8284526020838301011161035a57815f926020809301838601378301015290565b90608060031983011261035a57600435916024356107398161042a565b9160443565ffffffffffff8116810361035a5791606435906001600160401b03821161035a5761076b916004016106d6565b90565b3461035a5760206107ac6107a76107843661071c565b939190925f526005865260405f209060018060a01b03165f5260205260405f2090565b61242d565b604051908152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356001600160601b038116810361035a5760243590610828612505565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610979575f9161094a575b5015610938576001600160601b03166bffffffffffffffffffffffff193360601b161790806108b2835f52600260205260405f2090565b54146109265761090b817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c926108f0855f52600260205260405f2090565b556108fb8185612534565b6040519081529081906020820190565b0390a261092460015f805160206135c283398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b61096c915060203d602011610972575b610964818361067e565b8101906117e8565b5f61087b565b503d61095a565b6117fc565b3461035a57602036600319011261035a576004355f525f805160206135a28339815191526020526020600160405f200154604051908152f35b3461035a576104f96104e56109cb36610465565b92919091611904565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a57610924602435600435610a3b8261042a565b805f525f805160206135a2833981519152602052610a5f600160405f2001546120e1565b61280f565b3461035a57604036600319011261035a57602435610a818161042a565b336001600160a01b03821603610a9d5761092490600435612845565b60405163334bd91960e11b8152600490fd5b3461035a57602036600319011261035a57600435610acc8161042a565b610ad4612505565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610b8a57506001546001600160a01b039182169181168214610926576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f805160206135c283398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461035a57602036600319011261035a576004355f52600360205260206107ac60405f206128d7565b3461035a57604036600319011261035a5760206107ac610c18602435610bf68161042a565b6004355f526005845260405f209060018060a01b03165f5260205260405f2090565b6128d7565b9181601f8401121561035a578235916001600160401b03831161035a576020838186019501011161035a57565b3461035a57602036600319011261035a576001600160401b0360043581811161035a57610c7b903690600401610c1d565b5f805160206135e2833981519152549260ff8460401c1615931680159081610d7a575b6001149081610d70575b159081610d67575b50610d55575f805160206135e2833981519152805467ffffffffffffffff19166001179055610ce39183610d3157612950565b610ce957005b5f805160206135e2833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f805160206135e2833981519152805460ff60401b1916600160401b179055612950565b60405163f92ee8a960e01b8152600490fd5b9050155f610cb0565b303b159150610ca8565b849150610c9e565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576020604051614e208152f35b606060031982011261035a576004359160243565ffffffffffff8116810361035a5791604435906001600160401b03821161035a5761076b916004016106d6565b3461035a5760206107ac610e3636610de2565b915f526003845260405f2061242d565b3461035a575f36600319011261035a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461035a575f36600319011261035a576001546040516001600160a01b039091168152602090f35b3461035a5760206107ac610f3836610de2565b915f526004845260405f2061242d565b3461035a57604036600319011261035a57602060ff610f9a602435610f6c8161042a565b6004355f525f805160206135a2833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461035a57606036600319011261035a57602435610fc38161042a565b60443565ffffffffffff8116810361035a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106025761102f6105e5926004355f52600560205260405f209060018060a01b03165f5260205260405f2090565b6122f5565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356110958161042a565b6024356001600160401b03811161035a575f916110b783923690600401610c1d565b90816040519283928337810184815203915af46111046110d5611b60565b916110f66040519384921515602084015260408084015260608301906104a4565b03601f19810183528261067e565b805190602001fd5b3461035a575f36600319011261035a5760206040515f8152f35b3461035a57606036600319011261035a576024356004356111468261042a565b6044359161115261208a565b5f8281526005602090815260408083206001600160a01b0385168452909152902061117c906128d7565b838114610926577f739a5a3ec0ff71e2386d0013deac5f44e0935a98def2e2a5ddf9a709518c8294916111ef61123c92855f52600460205260405f20906111e9886111e46111c942612d8e565b936111df610c188c5f52600460205260405f2090565b611bb6565b611bd1565b91612176565b5050611220856103e68361120b885f52600560205260405f2090565b9060018060a01b03165f5260205260405f2090565b50506040519485526001600160a01b0316939081906020820190565b0390a3005b606090600319011261035a576004356112598161042a565b906024359060443565ffffffffffff8116810361035a5790565b3461035a576104f96104e561128736611241565b91611bde565b3461035a575f36600319011261035a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57602036600319011261035a576004355f52600460205260206107ac60405f206128d7565b3461035a57602036600319011261035a576004355f526002602052602060405f2054604051908152f35b3461035a57604036600319011261035a5761092460243560043561138a8261042a565b805f525f805160206135a28339815191526020526113ae600160405f2001546120e1565b612845565b3461035a576104f96104e56113c736611241565b91611c28565b3461035a5760206107ac6113e03661071c565b92919091611d24565b3461035a5760a036600319011261035a576024356004356114098261042a565b60443591611415610450565b90608435906001600160401b03821161035a57611437600492369084016106d6565b61143f612505565b5f5460209061146490611458906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa928315610979575f936115a3575b506001600160a01b039283163303611591576001546001600160a01b0316838116611506575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361092460015f805160206135c283398151915255565b90936040519461153d8661152f602082019363724ab0f760e11b8552858c898d60248701611eae565b03601f19810188528761067e565b62042e305a1061157f575f6114ed938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f150936114ac565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b6115c691935060203d6020116115cd575b6115be818361067e565b810190611872565b915f611486565b503d6115b4565b3461035a575f36600319011261035a5760206040517f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846258152f35b3461035a57604036600319011261035a5761162761043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600460205260405f206122f5565b3461035a575f36600319011261035a575f546040516001600160a01b039091168152602090f35b3461035a57604036600319011261035a5760206107ac6024356116b78161042a565b600435611f04565b3461035a575f36600319011261035a5760206040516203d0908152f35b3461035a575f36600319011261035a57602060405160018152f35b5190811515820361035a57565b519063ffffffff8216820361035a57565b919082604091031261035a5761076b602061172f846116f7565b9301611704565b906117869165ffffffffffff6117959496956060976040519463130f67dd60e31b6020870152602486015260018060a01b031660448501521660648301526064825261178182610663565b612238565b60208082518301019101611715565b9061179d5750565b90915063ffffffff604051911660208201526020815261076b81610628565b5f9081526005602090815260408083206001600160a01b0390941683529290522061076b92919061242d565b9081602091031261035a5761076b906116f7565b6040513d5f823e3d90fd5b81601f8201121561035a5780519061181e826106bb565b9261182c604051948561067e565b8284526020838301011161035a57815f9260208093018386015e8301015290565b9060208282031261035a5781516001600160401b03811161035a5761076b9201611807565b9081602091031261035a575161076b8161042a565b9061076b91602081526118a6825160a0602084015260c08301906104a4565b9060a060806118f46118e16118cd602088015196601f1997888883030160408901526104a4565b6040880151878783030160608801526104a4565b60608701518686830301848701526104a4565b94015192828503019101526104a4565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491935f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa948515610979575f95611b18575b5060405163fbfa77cf60e01b8152602081600481888d165afa908115610979576119ea995f9285928491611af9575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa978815610979575f98611acf575b509081611a3b82611a3381611a419689611c28565b958388611736565b94611bde565b90835115801590611ac5575b8015611abb575b8015611ab1575b8015611aa7575b611a6f5750505050909150565b6110f6955061076b9496611a8161069f565b948552602085015260408401526060830152608082015260405192839160208301611887565b5081511515611a62565b5082511515611a5b565b5080511515611a54565b5086511515611a4d565b611a4192919850611af1903d805f833e611ae9818361067e565b81019061184d565b979091611a1e565b611b12915060203d6020116115cd576115be818361067e565b5f6119ad565b611b2d9195503d805f833e611ae9818361067e565b935f61197e565b9061076b92915f52600360205260405f2061242d565b9061076b92915f52600460205260405f2061242d565b3d15611b8a573d90611b71826106bb565b91611b7f604051938461067e565b82523d5f602084013e565b606090565b634e487b7160e01b5f52601160045260245ffd5b5f19810191908211611bb157565b611b8f565b91908203918211611bb157565b9060018201809211611bb157565b91908201809211611bb157565b60405163ed4d89e560e01b6020820152602481019290925265ffffffffffff909216604482015260609291611795916117869161178182606481015b03601f19810184528361067e565b604051630cbd53f560e11b6020820152602481019290925265ffffffffffff90921660448201526060929161179591611786916117818260648101611c1a565b60405190611c7582610628565b60606020838281520152565b9060208282031261035a5781516001600160401b039283821161035a57019060408282031261035a5760405192611cb784610628565b825181811161035a5782611ccc918501611807565b8452602083015190811161035a57611ce49201611807565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261076b929101906104a4565b92611d3490929192828486612bb5565b929093611d3f611c68565b93805180611e92575b50508415938415611dfc575b8415611d6b575b50505050611d665790565b505f90565b602080949550611d96910151604051958694859463530e1d4360e01b865260601c9060048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611ddd575b50155f808080611d5b565b611df6915060203d60201161097257610964818361067e565b5f611dd2565b5f549094506001600160a01b0316602084865192611e2f604051948593849363530e1d4360e01b85528960048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611e73575b501593611d54565b611e8c915060203d60201161097257610964818361067e565b5f611e6b565b611ea6929550602080918301019101611c81565b925f80611d48565b919360a09361076b969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906104a4565b8115611ef0570490565b634e487b7160e01b5f52601260045260245ffd5b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610979575f91612011575b5015918215611f8d575b50509050611f875761076b91612ccb565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610979575f92611ff4575b505015805f80611f76565b61200a9250803d1061097257610964818361067e565b5f80611fe9565b6120289150843d861161097257610964818361067e565b5f611f6c565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b541615610b8a5750565b335f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846259060ff90612080565b5f8181525f805160206135a283398151915260209081526040808320338452909152902060ff90612080565b634e487b7160e01b5f52603260045260245ffd5b8054821015612136575f5260205f2001905f90565b61210d565b90815491600160401b831015610643578261215e9160016106ac95018155612121565b90919082549060031b91821b915f19901b1916179055565b90929192600182019081548015612208575b508461219384612dc0565b509490928454936121a3836128d7565b96816121f3575b50156121d0575050505f198101908111611bb15761215e85916121cc93612121565b9190565b6121cc9492936121ec926001600160d01b039091169190613486565b505061213b565b65ffffffffffff83811691161490505f6121aa565b600160401b811015610643578060016122249201845583612121565b8154905f199060031b1b191690555f612188565b5f9190829160405161226d816110f66020820194639f86fd8560e01b86523060248401526040604484015260648301906104a4565b51915afa5061227a611b60565b8051810160408282031261035a57612294602083016116f7565b916040810151916001600160401b03831161035a576122ba926020809201920101611807565b90156122c35790565b805190811561035a57602001fd5b906040516122de81610628565b915465ffffffffffff8116835260301c6020830152565b91908254905f82916005841161239d575b612311935085612f24565b9081156123915761238a61238161237b61237161234361233e61233388611ba3565b895f5260205f200190565b6122d1565b96600161236a602061235b8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101612121565b90549060031b1c90565b93611ba3565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926123a881612df9565b8103908111611bb15761231193865f526123dc6123d18360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff851610156123f2575091612306565b9291506123fe90611bc3565b90612306565b9081602091031261035a5761076b90611704565b90600163ffffffff80931601918211611bb157565b918051156124fb578060208061244893518301019101612404565b916124538382613056565b92612464845165ffffffffffff1690565b9065ffffffffffff80851692168281146124ef578211918261249a575b50506124915761076b9250612f86565b50506020015190565b9091506124a78354611ba3565b63ffffffff8316149182156124c0575b50505f80612481565b6124e79192506124db6124d56123d192612418565b85613056565b5165ffffffffffff1690565b115f806124b7565b50505050506020015190565b5061076b91612f86565b5f805160206135c283398151915260028154146125225760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161254b82612dc0565b9193905083156125a95761256b916001600160d01b031690600101612121565b90549060031b1c5b8261259f575b5050612583575050565b61259b915f52600360205260405f206103ef42612d8e565b5050565b119050815f612579565b50505f612573565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206135a28339815191529060ff16611f87575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206135a28339815191529060ff905b541661272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f805160206135a28339815191529060ff906126c7565b6001600160a01b0381165f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b5584625905f805160206135a28339815191529060ff906126c7565b5f8181525f805160206135a2833981519152602081815260408084206001600160a01b038716855290915290912060ff906126c7565b5f8181525f805160206135a2833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b8054806128fc57505f5b6001600160d01b03811615611f875760016123719201612121565b5f19908082810111611bb157825f5260205f2001015460301c6128e1565b91909160408184031261035a5780356129328161042a565b9260208201356001600160401b03811161035a5761076b92016106d6565b61295c9181019061291a565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610979575f91612a6f575b5015612a5d576129f16040916129ec612a37946129d16130be565b60018060a01b03166001600160601b0360a01b5f5416175f55565b61323e565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116612a4d575b5001516001600160a01b031690565b908116612a415750565b612a4a9061265c565b50565b612a56906125b1565b505f612a28565b6040516362df054560e01b8152600490fd5b612a88915060203d60201161097257610964818361067e565b5f6129b6565b6040519060a082018281106001600160401b038211176106435760405281608060609182815282602082015282604082015282808201520152565b9060208282031261035a5781516001600160401b039283821161035a57019060a08282031261035a57612afa61069f565b92825181811161035a5782612b10918501611807565b8452602083015181811161035a5782612b2a918501611807565b6020850152604083015181811161035a5782612b47918501611807565b6040850152606083015181811161035a5782612b64918501611807565b6060850152608083015190811161035a57612b7f9201611807565b608082015290565b9081602091031261035a575190565b60409065ffffffffffff61076b949316815281602082015201906104a4565b91939293612bc1612a8e565b94805180612caf575b5050612bdb60608601518285611b4a565b9182612bed57505050509051905f9190565b612c01612c3b9183608089015191876117bc565b916020612c1a6114586114585f5460018060a01b031690565b8189015190604051808096819463810da75d60e01b83528760048401612b96565b03915afa801561097957612c7795612c71935f92612c7c575b50612c65919260408a015191611b34565b90818082109118021890565b9061339e565b915190565b612c659250612ca29060203d602011612ca8575b612c9a818361067e565b810190612b87565b91612c54565b503d612c90565b612cc3929650602080918301019101612ac9565b935f80612bca565b612ce0610c18825f52600460205260405f2090565b9081612ced575050505f90565b612d08610c1860049461120b845f52600560205260405f2090565b5f5460405163bd49c35f60e01b81529491929160209186919082906001600160a01b03165afa9081156109795761076b945f92612d65575b50610c18612d56915f52600360205260405f2090565b9081808210911802189061339e565b612d56919250612d86610c189160203d602011612ca857612c9a818361067e565b929150612d40565b65ffffffffffff90818111612da1571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612dd15750505f905f905f90565b5f19918183810111611bb1575f5260205f2001015460019165ffffffffffff82169160301c90565b600181111561076b57600181600160801b811015612f12575b612eba612eb0612ea6612e9c612e92612e88612ec697600488600160401b612ec19a1015612f05575b640100000000811015612ef8575b62010000811015612eeb575b610100811015612edf575b6010811015612ed3575b1015612ecb575b60030260011c612e81818b611ee6565b0160011c90565b612e81818a611ee6565b612e818189611ee6565b612e818188611ee6565b612e818187611ee6565b612e818186611ee6565b8093611ee6565b821190565b900390565b60011b612e71565b811c9160021b91612e6a565b60081c91811b91612e60565b60101c9160081b91612e55565b60201c9160101b91612e49565b60401c9160201b91612e3b565b50600160401b9050608082901c612e12565b91905b838210612f345750505090565b909192808316906001818518811c8301809311611bb157855f5265ffffffffffff808460205f20015416908516105f14612f73575050925b9190612f27565b909493508101809111611bb15791612f6c565b908154905f829160058411612ff0575b612fa1935084612f24565b80612fc957505f905b6001600160d01b03821615611f875761076b9160016123719201612121565b612fe3612fd8612fea92611ba3565b835f5260205f200190565b5460301c90565b90612faa565b9192612ffb81612df9565b8103908111611bb157612fa193855f5265ffffffffffff808360205f20015416908516105f1461302c575091612f96565b92915061303890611bc3565b90612f96565b6040519061304b82610628565b5f6020838281520152565b9061307f6130796130a09261306961303e565b5061307261303e565b5084612121565b506122d1565b91600165ffffffffffff845116936020828060d01b03910151169101612121565b905490604051926130b084610628565b835260031b1c602082015290565b6130c6613563565b6130ce613563565b60015f805160206135c283398151915255565b604051906130ee82610648565b5f6040838281528260208201520152565b81601f8201121561035a578051916020916001600160401b038411610643578360051b90604051946131338584018761067e565b8552838086019282010192831161035a578301905b828210613156575050505090565b83809183516131648161042a565b815201910190613148565b9060208282031261035a5781516001600160401b039283821161035a5701908181039260a0841261035a576060604051946131a986610648565b1261035a576040516131ba81610648565b83516131c58161042a565b815260208401516131d58161042a565b602082015260408401516131e88161042a565b60408201528452606083015181811161035a57826132079185016130ff565b6020850152608083015190811161035a5761322292016130ff565b604082015290565b80518210156121365760209160051b010190565b61325a9061324a6130e1565b506020808251830101910161316f565b8051519091906001600160a01b03161580613384575b613372579060208101905f5b825180518210156132f657611458613297836132a49361322a565b516001600160a01b031690565b156132e4576132c66132c26132bd61329784875161322a565b612732565b1590565b6132d25760010161327c565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015613369576114586132978361331d9361322a565b156133585761333b6132c261333661329784875161322a565b6127a0565b61334757600101613302565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b506020820151511580613270575060408201515115613270565b91818302915f198185099383808610950394808603951461341e57848311156134115790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b8215600302601118613591565b50509061076b9250611ee6565b8054600160401b8110156106435761344891600182018155612121565b61347357815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939280156135395761349d6134a891611ba3565b825f5260205f200190565b9182549265ffffffffffff91828516928116808411613527578793036134ee57506134e792509065ffffffffffff82549181199060301b169116179055565b60301c9190565b9150506135229161350e6135006106ae565b65ffffffffffff9093168352565b6001600160d01b038616602083015261342b565b6134e7565b604051632520601d60e01b8152600490fd5b509061355e9161354a6135006106ae565b6001600160d01b038516602083015261342b565b5f9190565b60ff5f805160206135e28339815191525460401c161561357f57565b604051631afcd79f60e31b8152600490fd5b634e487b715f526020526024601cfdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220278ef6df078adf247d007f766b46a6e6ede134c1188c299ae823db920d132be464736f6c634300081900336101c0346101c857601f61351f38819003918201601f19168301916001600160401b0391828411858510176101cc5781606092869260409687528339810103126101c85761004c836101e0565b926100648361005d602084016101e0565b92016101e0565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101b7578080831603610173575b5050505f60a0525f60c0525f60e052610100935f8552610120935f8552610140905f82526101609283526101809384526101a0948552519461332a96876101f58839608051878181610696015261148c015260a0518761092d015260c0518761114b015260e0518781816107a101526111840152518681816104e2015261266601525185818161064c01528181611be00152611d0f01525184818161071f01528181611b470152611d8d015251838181610ebc015261179a015251828181610c8f015261183b0152518161104f0152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101c85756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146102c4578063020cf0c2146102bf57806302145348146102ba578063103f2907146102b557806310a28b5d146102b057806311422095146102ab578063128e5d82146102a6578063197aa7ea146102a15780631a80e5001461029c57806323f752d514610297578063248a9ca31461029257806325dc97081461028d5780632dd31000146102885780632f2ff15d1461028357806336568abe1461027e5780633dfd3873146102795780633eb22c0f14610274578063439fab911461026f57806345e78fcb1461026a578063518504ba14610265578063557cab44146102605780635d32a1c91461025b5780636679191e1461025657806379d89614146102515780637d24bb271461024c5780637f5a7c7b1461024757806391d148541461024257806394d2558a1461023d5780639b656b22146102385780639f86fd8514610233578063a217fddf1461022e578063bb24fe8a14610229578063c0cd7c3e14610224578063d15b740e1461021f578063d547741f1461021a578063da749d2b14610215578063e02f693714610210578063e49561ee1461020b578063f7b0554714610206578063fbfa77cf14610201578063fd4d447c146101fc578063ff54740f146101f75763ffa1ad74146101f2575f80fd5b611557565b61153a565b611510565b6114e9565b611465565b61127a565b61125e565b611229565b6111dd565b6111b3565b61116f565b61112c565b611112565b61107e565b61103a565b610ffc565b610f4c565b610f24565b610eeb565b610ea7565b610e6d565b610e1c565b610cf8565b610cbe565b610c7a565b610b42565b610aec565b6109f3565b6109a8565b61095c565b610918565b6108fb565b6108c2565b61074e565b61070a565b61067b565b610637565b6105e8565b6105b3565b6104cd565b610410565b61032f565b3461031a57602036600319011261031a5760043563ffffffff60e01b811680910361031a57602090637965db0b60e01b8114908115610309575b506040519015158152f35b6301ffc9a760e01b1490505f6102fe565b5f80fd5b6001600160a01b0381160361031a57565b3461031a57606036600319011261031a5760243560043561034f8261031e565b6044359161035b611e02565b815f526004602052826103896103848360405f209060018060a01b03165f5260205260405f2090565b6120b3565b146103fe5760207ffc9545f07ffadfb668efd0144cdcaf2d6e2c8192dce1ea9fc131934f9c90fc7e91835f52600482526103e9856103da8360405f209060018060a01b03165f5260205260405f2090565b6103e342612b1e565b90611f58565b50506040519485526001600160a01b031693a3005b60405163a741a04560e01b8152600490fd5b3461031a5760408060031936011261031a576004359060243590610432611e5f565b825f526002602052805f205482116104bd57825f52600360205281610458825f206120b3565b146104ad57816104a8916104987e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103da875f52600360205260405f2090565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6024359065ffffffffffff8216820361031a57565b6044359065ffffffffffff8216820361031a57565b6064359065ffffffffffff8216820361031a57565b608090600319011261031a576004356105688161031e565b90602435906044356105798161031e565b9060643565ffffffffffff8116810361031a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461031a576105e46105d06105c736610550565b929190916115b1565b60405191829160208352602083019061058f565b0390f35b3461031a57604036600319011261031a57602061062f61038460243561060d8161031e565b6004355f526004845260405f209060018060a01b03165f5260205260405f2090565b604051908152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a57610694610511565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576106db906004355f52600360205260405f20612124565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a576004356001600160601b038116810361031a576024359061077e612229565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108bd575f9161088e575b501561087c576001600160601b03166bffffffffffffffffffffffff193360601b16179080610808835f52600260205260405f2090565b54146103fe57610861817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610846855f52600260205260405f2090565b556108518185612258565b6040519081529081906020820190565b0390a261087a60015f805160206132b583398151915255565b005b6040516323d53b9760e21b8152600490fd5b6108b0915060203d6020116108b6575b6108a88183610d7e565b810190611649565b5f6107d1565b503d61089e565b61165d565b3461031a57602036600319011261031a576004355f525f805160206132958339815191526020526020600160405f200154604051908152f35b3461031a576105e46105d061090f36610550565b9291909161174e565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5761087a60243560043561097f8261031e565b805f525f805160206132958339815191526020526109a3600160405f200154611eb5565b612533565b3461031a57604036600319011261031a576024356109c58161031e565b336001600160a01b038216036109e15761087a90600435612569565b60405163334bd91960e11b8152600490fd5b3461031a57602036600319011261031a57600435610a108161031e565b610a18612229565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610ace57506001546001600160a01b0391821691811682146103fe576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f805160206132b583398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461031a57602036600319011261031a576004355f526003602052602061062f60405f206120b3565b9181601f8401121561031a578235916001600160401b03831161031a576020838186019501011161031a57565b3461031a57602036600319011261031a576001600160401b0360043581811161031a57610b73903690600401610b15565b5f805160206132d5833981519152549260ff8460401c1615931680159081610c72575b6001149081610c68575b159081610c5f575b50610c4d575f805160206132d5833981519152805467ffffffffffffffff19166001179055610bdb9183610c2957612631565b610be157005b5f805160206132d5833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f805160206132d5833981519152805460ff60401b1916600160401b179055612631565b60405163f92ee8a960e01b8152600490fd5b9050155f610ba8565b303b159150610ba0565b849150610b96565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a38152f35b3461031a575f36600319011261031a576020604051614e208152f35b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610d4357604052565b610d14565b606081019081106001600160401b03821117610d4357604052565b608081019081106001600160401b03821117610d4357604052565b90601f801991011681019081106001600160401b03821117610d4357604052565b60405190610dac82610d63565b565b60405190610dac82610d28565b6001600160401b038111610d4357601f01601f191660200190565b81601f8201121561031a57803590610ded82610dbb565b92610dfb6040519485610d7e565b8284526020838301011161031a57815f926020809301838601378301015290565b3461031a57606036600319011261031a57610e35610511565b6044356001600160401b03811161031a57602091610e5a61062f923690600401610dd6565b906004355f526003845260405f20612798565b3461031a575f36600319011261031a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461031a575f36600319011261031a576001546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602060ff610f9e602435610f708161031e565b6004355f525f80516020613295833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b90608060031983011261031a5760043591602435610fc78161031e565b9160443565ffffffffffff8116810361031a5791606435906001600160401b03821161031a57610ff991600401610dd6565b90565b3461031a57602061062f61103561101236610faa565b939190925f526004865260405f209060018060a01b03165f5260205260405f2090565b612798565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5760043561109b8161031e565b6024356001600160401b03811161031a575f916110bd83923690600401610b15565b90816040519283928337810184815203915af461110a6110db6119a3565b916110fc60405193849215156020840152604080840152606083019061058f565b03601f198101835282610d7e565b805190602001fd5b3461031a575f36600319011261031a5760206040515f8152f35b3461031a575f36600319011261031a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57602036600319011261031a576004355f526002602052602060405f2054604051908152f35b3461031a57604036600319011261031a5761087a6024356004356112008261031e565b805f525f80516020613295833981519152602052611224600160405f200154611eb5565b612569565b3461031a57606036600319011261031a576105e46105d060043561124c8161031e565b611254610526565b90602435906119d2565b3461031a57602061062f61127136610faa565b92919091611ad1565b3461031a5760a036600319011261031a5760243560043561129a8261031e565b604435916112a661053b565b90608435906001600160401b03821161031a576112c860049236908401610dd6565b6112d0612229565b5f546020906112f5906112e9906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156108bd575f93611434575b506001600160a01b039283163303611422576001546001600160a01b0316838116611397575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361087a60015f805160206132b583398151915255565b9093604051946113ce866113c0602082019363724ab0f760e11b8552858c898d60248701611c5b565b03601f198101885287610d7e565b62042e305a10611410575f61137e938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f1509361133d565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61145791935060203d60201161145e575b61144f8183610d7e565b8101906116d3565b915f611317565b503d611445565b3461031a57606036600319011261031a576024356114828161031e565b61148a610526565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576114e46106db926004355f52600460205260405f209060018060a01b03165f5260205260405f2090565b612124565b3461031a575f36600319011261031a575f546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602061062f6024356115328161031e565b600435611cd8565b3461031a575f36600319011261031a5760206040516203d0908152f35b3461031a575f36600319011261031a57602060405160018152f35b5190811515820361031a57565b519063ffffffff8216820361031a57565b919082604091031261031a57610ff960206115aa84611572565b930161157f565b91939265ffffffffffff906060956040519363f7b0554760e01b6020860152602485015260018060a01b031660448401521660648201526064815260a08101908082106001600160401b03831117610d4357611622926116139260405261201a565b60208082518301019101611590565b9061162a5750565b90915063ffffffff6040519116602082015260208152610ff981610d28565b9081602091031261031a57610ff990611572565b6040513d5f823e3d90fd5b81601f8201121561031a5780519061167f82610dbb565b9261168d6040519485610d7e565b8284526020838301011161031a57815f9260208093018386015e8301015290565b9060208282031261031a5781516001600160401b03811161031a57610ff99201611668565b9081602091031261031a5751610ff98161031e565b90610ff9916020815261170782516080602084015260a083019061058f565b906080606061173e61172b602087015195601f19968787830301604088015261058f565b604087015186868303018487015261058f565b940151928285030191015261058f565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491939091905f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa9485156108bd575f95611945575b5060405163fbfa77cf60e01b8152602081600481888d165afa9081156108bd57611837995f9286928491611926575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9788156108bd575f986118fa575b50908161187d846118839594876119d2565b946115b1565b908251158015906118f0575b80156118e6575b80156118dc575b6118a957505050909150565b6110fc9450610ff993956118bb610d9f565b938452602084015260408301526060820152604051928391602083016116e8565b508151151561189d565b5080511515611896565b508551151561188f565b611883939291985061191d903d805f833e6119158183610d7e565b8101906116ae565b9790919261186b565b61193f915060203d60201161145e5761144f8183610d7e565b5f6117fa565b61195a9195503d805f833e6119158183610d7e565b935f6117cb565b90610ff992915f52600360205260405f20612798565b5f9081526004602090815260408083206001600160a01b03909416835292905220610ff9929190612798565b3d156119cd573d906119b482610dbb565b916119c26040519384610d7e565b82523d5f602084013e565b606090565b611622916116139194939465ffffffffffff60609660405193630cbd53f560e11b6020860152602485015216604483015260448252611a1082610d63565b61201a565b60405190611a2282610d28565b60606020838281520152565b9060208282031261031a5781516001600160401b039283821161031a57019060408282031261031a5760405192611a6484610d28565b825181811161031a5782611a79918501611668565b8452602083015190811161031a57611a919201611668565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff9091166040820152608060608201819052610ff99291019061058f565b92611ae190929192828486612973565b929093611aec611a15565b93805180611c3f575b50508415938415611ba9575b8415611b18575b50505050611b135790565b505f90565b602080949550611b43910151604051958694859463530e1d4360e01b865260601c9060048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611b8a575b50155f808080611b08565b611ba3915060203d6020116108b6576108a88183610d7e565b5f611b7f565b5f549094506001600160a01b0316602084865192611bdc604051948593849363530e1d4360e01b85528960048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611c20575b501593611b01565b611c39915060203d6020116108b6576108a88183610d7e565b5f611c18565b611c53929550602080918301019101611a2e565b925f80611af5565b919360a093610ff9969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061058f565b634e487b7160e01b5f52601160045260245ffd5b8115611cb1570490565b634e487b7160e01b5f52601260045260245ffd5b9060018201809211611cd357565b611c93565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156108bd575f91611de5575b5015918215611d61575b50509050611d5b57610ff991612a6e565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156108bd575f92611dc8575b505015805f80611d4a565b611dde9250803d106108b6576108a88183610d7e565b5f80611dbd565b611dfc9150843d86116108b6576108a88183610d7e565b5f611d40565b335f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a39060ff905b541615610ace5750565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff90611e55565b5f8181525f8051602061329583398151915260209081526040808320338452909152902060ff90611e55565b634e487b7160e01b5f52603260045260245ffd5b8054821015611f0a575f5260205f2001905f90565b611ee1565b90815491600160401b831015610d435782611f32916001610dac95018155611ef5565b90919082549060031b91821b915f19901b1916179055565b5f19810191908211611cd357565b90929192600182019081548015611fea575b5084611f7584612b50565b50949092845493611f85836120b3565b9681611fd5575b5015611fb2575050505f198101908111611cd357611f328591611fae93611ef5565b9190565b611fae949293611fce926001600160d01b039091169190613189565b5050611f0f565b65ffffffffffff83811691161490505f611f8c565b600160401b811015610d43578060016120069201845583611ef5565b8154905f199060031b1b191690555f611f6a565b5f9190829160405161204f816110fc6020820194639f86fd8560e01b865230602484015260406044840152606483019061058f565b51915afa5061205c6119a3565b8051810160408282031261031a5761207660208301611572565b916040810151916001600160401b03831161031a5761209c926020809201920101611668565b90156120a55790565b805190811561031a57602001fd5b8054806120e257505f5b6001600160d01b03811615611d5b5760016120d89201611ef5565b90549060031b1c90565b5f19908082810111611cd357825f5260205f2001015460301c6120bd565b9060405161210d81610d28565b915465ffffffffffff8116835260301c6020830152565b91908254905f8291600584116121c2575b612140935085612cb4565b9081156121b6576121af6121a66121a06120d861217261216d61216288611f4a565b895f5260205f200190565b612100565b966001612199602061218a8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101611ef5565b93611f4a565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926121cd81612b89565b8103908111611cd35761214093865f526122016121f68360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff85161015612217575091612135565b92915061222390611cc5565b90612135565b5f805160206132b583398151915260028154146122465760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161226f82612b50565b9193905083156122cd5761228f916001600160d01b031690600101611ef5565b90549060031b1c5b826122c3575b50506122a7575050565b6122bf915f52600360205260405f206103e342612b1e565b5050565b119050815f61229d565b50505f612297565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206132958339815191529060ff16611d5b575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206132958339815191529060ff905b541661244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f805160206132958339815191529060ff906123eb565b6001600160a01b0381165f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a3905f805160206132958339815191529060ff906123eb565b5f8181525f80516020613295833981519152602081815260408084206001600160a01b038716855290915290912060ff906123eb565b5f8181525f80516020613295833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261031a5780356126138161031e565b9260208201356001600160401b03811161031a57610ff99201610dd6565b61263d918101906125fb565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156108bd575f91612750575b501561273e576126d26040916126cd612718946126b2612d16565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612e96565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661272e575b5001516001600160a01b031690565b9081166127225750565b61272b90612380565b50565b612737906122d5565b505f612709565b6040516362df054560e01b8152600490fd5b612769915060203d6020116108b6576108a88183610d7e565b5f612697565b9081602091031261031a57610ff99061157f565b90600163ffffffff80931601918211611cd357565b9180511561286657806020806127b39351830101910161276f565b916127be83826130c6565b926127cf845165ffffffffffff1690565b9065ffffffffffff808516921682811461285a5782119182612805575b50506127fc57610ff99250612ff6565b50506020015190565b9091506128128354611f4a565b63ffffffff83161491821561282b575b50505f806127ec565b6128529192506128466128406121f692612783565b856130c6565b5165ffffffffffff1690565b115f80612822565b50505050506020015190565b50610ff991612ff6565b60405190608082018281106001600160401b03821117610d4357604052606080838181528160208201528160408201520152565b9060208282031261031a5781516001600160401b039283821161031a57019060808282031261031a576128d5610d9f565b92825181811161031a57826128eb918501611668565b8452602083015181811161031a5782612905918501611668565b6020850152604083015181811161031a5782612922918501611668565b6040850152606083015190811161031a5761293d9201611668565b606082015290565b9081602091031261031a575190565b60409065ffffffffffff610ff99493168152816020820152019061058f565b9391909361297f612870565b93805180612a4e575b50506129c992939460206129a86112e96112e95f5460018060a01b031690565b8188015190604051808098819463810da75d60e01b83528960048401612954565b03915afa9182156108bd57612a10945f93612a15575b50612a0490612a0493946129f860408a01518284611961565b9360608a015192611977565b90818082109118021890565b915190565b612a04935090612a3f612a049260203d602011612a47575b612a378183610d7e565b810190612945565b9350906129df565b503d612a2d565b6129c994955090602080612a669383010191016128a4565b93925f612988565b5f5460405163bd49c35f60e01b81529290602090849060049082906001600160a01b03165afa9283156108bd575f93612af5575b50610384612ae091612abf610384855f52600360205260405f2090565b935f52600460205260405f209060018060a01b03165f5260205260405f2090565b90818082109118021890818082109118021890565b612ae0919350612b166103849160203d602011612a4757612a378183610d7e565b939150612aa2565b65ffffffffffff90818111612b31571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612b615750505f905f905f90565b5f19918183810111611cd3575f5260205f2001015460019165ffffffffffff82169160301c90565b6001811115610ff957600181600160801b811015612ca2575b612c4a612c40612c36612c2c612c22612c18612c5697600488600160401b612c519a1015612c95575b640100000000811015612c88575b62010000811015612c7b575b610100811015612c6f575b6010811015612c63575b1015612c5b575b60030260011c612c11818b611ca7565b0160011c90565b612c11818a611ca7565b612c118189611ca7565b612c118188611ca7565b612c118187611ca7565b612c118186611ca7565b8093611ca7565b821190565b900390565b60011b612c01565b811c9160021b91612bfa565b60081c91811b91612bf0565b60101c9160081b91612be5565b60201c9160101b91612bd9565b60401c9160201b91612bcb565b50600160401b9050608082901c612ba2565b91905b838210612cc45750505090565b909192808316906001818518811c8301809311611cd357855f5265ffffffffffff808460205f20015416908516105f14612d03575050925b9190612cb7565b909493508101809111611cd35791612cfc565b612d1e613266565b612d26613266565b60015f805160206132b583398151915255565b60405190612d4682610d48565b5f6040838281528260208201520152565b81601f8201121561031a578051916020916001600160401b038411610d43578360051b9060405194612d8b85840187610d7e565b8552838086019282010192831161031a578301905b828210612dae575050505090565b8380918351612dbc8161031e565b815201910190612da0565b9060208282031261031a5781516001600160401b039283821161031a5701908181039260a0841261031a57606060405194612e0186610d48565b1261031a57604051612e1281610d48565b8351612e1d8161031e565b81526020840151612e2d8161031e565b60208201526040840151612e408161031e565b60408201528452606083015181811161031a5782612e5f918501612d57565b6020850152608083015190811161031a57612e7a9201612d57565b604082015290565b8051821015611f0a5760209160051b010190565b612eb290612ea2612d39565b5060208082518301019101612dc7565b8051519091906001600160a01b03161580612fdc575b612fca579060208101905f5b82518051821015612f4e576112e9612eef83612efc93612e82565b516001600160a01b031690565b15612f3c57612f1e612f1a612f15612eef848751612e82565b612456565b1590565b612f2a57600101612ed4565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015612fc1576112e9612eef83612f7593612e82565b15612fb057612f93612f1a612f8e612eef848751612e82565b6124c4565b612f9f57600101612f5a565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b506020820151511580612ec8575060408201515115612ec8565b908154905f829160058411613060575b613011935084612cb4565b8061303957505f905b6001600160d01b03821615611d5b57610ff99160016120d89201611ef5565b61305361304861305a92611f4a565b835f5260205f200190565b5460301c90565b9061301a565b919261306b81612b89565b8103908111611cd35761301193855f5265ffffffffffff808360205f20015416908516105f1461309c575091613006565b9291506130a890611cc5565b90613006565b604051906130bb82610d28565b5f6020838281520152565b906130ef6130e9613110926130d96130ae565b506130e26130ae565b5084611ef5565b50612100565b91600165ffffffffffff845116936020828060d01b03910151169101611ef5565b9054906040519261312084610d28565b835260031b1c602082015290565b8054600160401b811015610d435761314b91600182018155611ef5565b61317657815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b8054929392801561323c576131a06131ab91611f4a565b825f5260205f200190565b9182549265ffffffffffff9182851692811680841161322a578793036131f157506131ea92509065ffffffffffff82549181199060301b169116179055565b60301c9190565b91505061322591613211613203610dae565b65ffffffffffff9093168352565b6001600160d01b038616602083015261312e565b6131ea565b604051632520601d60e01b8152600490fd5b50906132619161324d613203610dae565b6001600160d01b038516602083015261312e565b5f9190565b60ff5f805160206132d58339815191525460401c161561328257565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220a7ecdea8d9b7feed4e2f0435b6284fc7fc6b2d0b98165e4c0e462e7440ce901364736f6c63430008190033","sourceMap":"765:2461:94:-:0;;;;;-1:-1:-1;;;;;765:2461:94;;;;;;;;-1:-1:-1;;765:2461:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;348:4:95;;332:21;;8837:64:26;765:2461:94;;;;;;;7896:76:26;;765:2461:94;;;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:82;;;-1:-1:-1;525:17:82;;-1:-1:-1;552:12:82;;-1:-1:-1;2360:34:89;;2404:28;;-1:-1:-1;2404:28:89;;2442:57;;-1:-1:-1;2442:57:89;;2509:61;;-1:-1:-1;2509:61:89;;1248:40:94;;;;;765:2461;;1352:79;;;;;;;;;;;;;;;;;;;;;;;348:4:95;765:2461:94;;-1:-1:-1;;;;;765:2461:94;;;;;;;;;;;;;;;;;1352:79;;;-1:-1:-1;1352:79:94;;;;;;765:2461;;;;;1298:134;;;765:2461;;1298:134;;765:2461;;1493:76;;;;;;;;;;;;;;;;;;;;;;;348:4:95;765:2461:94;;-1:-1:-1;;;;;765:2461:94;;;;;;;;;;;;;;;;;1493:76;;;-1:-1:-1;1493:76:94;;;;;;1442:128;765:2461;;1442:128;;765:2461;;;;;;;;332:21:95;765:2461:94;;;;525:17:82;765:2461:94;;;;;552:12:82;765:2461:94;;;;;2360:34:89;765:2461:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1493:76;765:2461;;;-1:-1:-1;765:2461:94;;;;;1493:76;765:2461;;;-1:-1:-1;765:2461:94;;;;;-1:-1:-1;765:2461:94;1352:79;765:2461;;;-1:-1:-1;765:2461:94;;;;;7981:146:26;-1:-1:-1;;;;;;765:2461:94;;;;;;;;;8087:29:26;;765:2461:94;;8087:29:26;7981:146;;;;;7896:76;765:2461:94;;-1:-1:-1;;;7938:23:26;;;;;765:2461:94;-1:-1:-1;765:2461:94;;;;;-1:-1:-1;;;;;765:2461:94;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610214578063075db0361461020f578063103f29071461020a578063128e5d82146102055780631a80e500146102005780631bf10a3e146101fb57806323f752d5146101f6578063248a9ca3146101f157806325dc9708146101ec5780632dd31000146101e75780632f2ff15d146101e257806336568abe146101dd5780633dfd3873146101d8578063439fab91146101d3578063557cab44146101ce5780636679191e146101c95780637f5a7c7b146101c457806391d14854146101bf5780639b656b22146101ba5780639f86fd85146101b5578063a217fddf146101b0578063bb24fe8a146101ab578063c0cd7c3e146101a6578063d15b740e146101a1578063d547741f1461019c578063e02f693714610197578063e102831a14610192578063e49561ee1461018d578063fbfa77cf14610188578063fd4d447c14610183578063ff54740f1461017e5763ffa1ad7414610179575f80fd5b61108a565b61106d565b61103b565b611014565b610e29565b610de5565b610d02565b610bf1565b610bc7565b610b83565b610b40565b610b26565b610a6c565b610a28565b6109ca565b6109a2565b610968565b61094c565b61080f565b6106e9565b61069e565b610652565b61060e565b6105f1565b6105b8565b61043c565b610407565b61033a565b6102f6565b6102b2565b61026e565b3461026a57602036600319011261026a5760043563ffffffff60e01b811680910361026a57602090637965db0b60e01b8114908115610259575b506040519015158152f35b6301ffc9a760e01b1490505f61024e565b5f80fd5b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b0381160361026a57565b6064359065ffffffffffff8216820361026a57565b608090600319011261026a576004356103bc8161037e565b90602435906044356103cd8161037e565b9060643565ffffffffffff8116810361026a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461026a5761043861042461041b366103a4565b92919091611168565b6040519182916020835260208301906103e3565b0390f35b3461026a57604036600319011261026a576004356001600160601b038116810361026a576024359061046c611732565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f91610584575b5015610572576001600160601b03166bffffffffffffffffffffffff193360601b161790806104f6835f52600260205260405f2090565b541461056057610545817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610534855f52600260205260405f2090565b556040519081529081906020820190565b0390a261055e60015f80516020611bf383398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6105a6915060203d6020116105ac575b61059e8183610c71565b8101906113b9565b5f6104bf565b503d610594565b6110bd565b3461026a57602036600319011261026a576004355f525f80516020611bd38339815191526020526020600160405f200154604051908152f35b3461026a57610438610424610605366103a4565b929190916113f0565b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a57604036600319011261026a5761055e6024356004356106758261037e565b805f525f80516020611bd3833981519152602052610699600160405f200154611761565b611918565b3461026a57604036600319011261026a576024356106bb8161037e565b336001600160a01b038216036106d75761055e9060043561194e565b60405163334bd91960e11b8152600490fd5b3461026a57602036600319011261026a576004356107068161037e565b61070e611732565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156107c457506001546001600160a01b039182169181168214610560576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020611bf383398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b9181601f8401121561026a578235916001600160401b03831161026a576020838186019501011161026a57565b3461026a57602036600319011261026a576001600160401b0360043581811161026a576108409036906004016107e2565b5f80516020611c13833981519152549260ff8460401c1615931680159081610944575b600114908161093a575b159081610931575b5061091f575f80516020611c13833981519152805467ffffffffffffffff191660011790556108a891836108f657611a16565b6108ae57005b5f80516020611c13833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611c13833981519152805460ff60401b191668010000000000000000179055611a16565b60405163f92ee8a960e01b8152600490fd5b9050155f610875565b303b15915061086d565b849150610863565b3461026a575f36600319011261026a576020604051614e208152f35b3461026a575f36600319011261026a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461026a575f36600319011261026a576001546040516001600160a01b039091168152602090f35b3461026a57604036600319011261026a57602060ff610a1c6024356109ee8161037e565b6004355f525f80516020611bd3833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a5760408060031936011261026a57600435610a8a8161037e565b602435906001600160401b03821161026a575f8091610ab0610b149436906004016107e2565b908187519283928337810184815203915af43d15610b1c57610b063d610ad581610ca1565b90610ae286519283610c71565b81523d5f602083013e5b8451948593151560208501528084015260608301906103e3565b03601f198101835282610c71565b805190602001fd5b610b066060610aec565b3461026a575f36600319011261026a5760206040515f8152f35b3461026a575f36600319011261026a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a57602036600319011261026a576004355f526002602052602060405f2054604051908152f35b3461026a57604036600319011261026a5761055e602435600435610c148261037e565b805f525f80516020611bd3833981519152602052610c38600160405f200154611761565b61194e565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610c6c57604052565b610c3d565b90601f801991011681019081106001600160401b03821117610c6c57604052565b60405190610c9f82610c51565b565b6001600160401b038111610c6c57601f01601f191660200190565b81601f8201121561026a57803590610cd382610ca1565b92610ce16040519485610c71565b8284526020838301011161026a57815f926020809301838601378301015290565b3461026a5760808060031936011261026a57610d1f60243561037e565b60443565ffffffffffff81160361026a576001600160401b0360643581811161026a57610d50903690600401610cbc565b5060606020604051610d6181610c51565b828152015260605180610d79575b60206040515f8152f35b8281016020821261026a5783519183831161026a5782604091031261026a5760405193610da585610c51565b8281015184811161026a578282610dbe928601016110c8565b855260a083015193841161026a57602093610dda9301016110c8565b9101525f8080610d6f565b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a5760a036600319011261026a57602435600435610e498261037e565b60443591610e5561038f565b90608435906001600160401b03821161026a57610e7760049236908401610cbc565b610e7f611732565b5f54602090610ea490610e98906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156105b3575f93610fe3575b506001600160a01b039283163303610fd1576001546001600160a01b0316838116610f46575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361055e60015f80516020611bf383398151915255565b909360405194610f7d86610f6f602082019363724ab0f760e11b8552858c898d602487016115d0565b03601f198101885287610c71565b62042e305a10610fbf575f610f2d938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093610eec565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61100691935060203d60201161100d575b610ffe8183610c71565b8101906110a5565b915f610ec6565b503d610ff4565b3461026a575f36600319011261026a575f546040516001600160a01b039091168152602090f35b3461026a57604036600319011261026a57602061106560243561105d8161037e565b600435611608565b604051908152f35b3461026a575f36600319011261026a5760206040516203d0908152f35b3461026a575f36600319011261026a57602060405160018152f35b9081602091031261026a57516110ba8161037e565b90565b6040513d5f823e3d90fd5b81601f8201121561026a578051906110df82610ca1565b926110ed6040519485610c71565b8284526020838301011161026a57815f9260208093018386015e8301015290565b9060208282031261026a5781516001600160401b03811161026a576110ba92016110c8565b906110ba91602081526020611153835160408385015260608401906103e3565b920151906040601f19828503019101526103e3565b604080516309472ec160e11b8152606096956001600160a01b039384169591946020949192917f0000000000000000000000000000000000000000000000000000000000000000169085876004818b5afa9687156105b3575f9761139a575b50845163fbfa77cf60e01b81529686886004818c5afa80156105b357855f9161123b9a839161137d575b508851636a531c3160e11b8082526001600160a01b039586166004830152858916602483015294909116604482015265ffffffffffff909116606482015298899081906084820190565b0381865afa9788156105b3575f98611358575b508686979899600496975196878092621a80e560e81b82525afa9485156105b3575f95611335575b5086519081526001600160a01b03948516600482015293909216602484015260609190911c604483015265ffffffffffff9092166064820152905f9082908180608481015b03915afa9081156105b3575f91611313575b50835115801590611309575b6112e35750505050565b6110ba9394955090610b06916112f7610c92565b95865283860152519384928301611133565b50805115156112d9565b61132f91503d805f833e6113278183610c71565b81019061110e565b5f6112cd565b5f95506113516112bb918a3d8c1161100d57610ffe8183610c71565b9550611276565b8798509661137360049697983d805f833e6113278183610c71565b989796955061124e565b61139491508a3d8c1161100d57610ffe8183610c71565b5f6111f1565b6113b2919750863d881161100d57610ffe8183610c71565b955f6111c7565b9081602091031261026a5751801515810361026a5790565b9081602091031261026a57516001600160401b038116810361026a5790565b604051635d927f4560e11b8082526060969594936001600160a01b03939092909160209190858416908383600481855afa9283156105b3575f936115b1575b506001600160401b039283166114d65750506040516304bb92e160e31b81526001600160a01b0393841660048201526024810194909452505092909216604483015265ffffffffffff9290921660648201529192505f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f916114c2575090565b6110ba91503d805f833e6113278183610c71565b839060046040518094819382525afa9081156105b3576001935f92611584575b50501614611505575050505050565b6040516304bb92e160e31b81526001600160a01b039182166004820152602481019290925292909216604483015265ffffffffffff9290921660648201529192505f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f916114c2575090565b6115a39250803d106115aa575b61159b8183610c71565b8101906113d1565b5f806114f6565b503d611591565b6115c9919350843d86116115aa5761159b8183610c71565b915f61142f565b919360a0936110ba969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906103e3565b5f546040516308834cb560e21b8082526001600160a01b038581166004840152928316602483015293602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156105b3575f91611715575b501593841561168a575b505050509050611686575f90565b5f90565b6040519586526001600160a01b0392909216600486015260609190911c6024850152909291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156105b3575f926116f8575b505015805f808080611678565b61170e9250803d106105ac5761059e8183610c71565b5f806116eb565b61172c9150843d86116105ac5761059e8183610c71565b5f61166e565b5f80516020611bf3833981519152600281541461174f5760029055565b604051633ee5aeb560e01b8152600490fd5b5f8181525f80516020611bd38339815191526020908152604080832033845290915290205460ff16156107c45750565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020611bd38339815191529060ff1661183c575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020611bd38339815191529060ff905b5416611911575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b5f8181525f80516020611bd3833981519152602081815260408084206001600160a01b038716855290915290912060ff906118ad565b5f8181525f80516020611bd3833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611911575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261026a5780356119f88161037e565b9260208201356001600160401b03811161026a576110ba9201610cbc565b611a22918101906119e0565b506040516302910f8b60e31b81526001600160a01b0391821660048201819052906020816024817f000000000000000000000000000000000000000000000000000000000000000087165afa9081156105b3575f91611b34575b5015611b2257611aa990611a8e611b53565b60018060a01b03166001600160601b0360a01b5f5416175f55565b611afc6040611ab6611b76565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611b12575b5001516001600160a01b031690565b908116611b065750565b611b0f90611842565b50565b611b1b90611791565b505f611aed565b6040516362df054560e01b8152600490fd5b611b4d915060203d6020116105ac5761059e8183610c71565b5f611a7c565b611b5b611ba4565b611b63611ba4565b60015f80516020611bf383398151915255565b60405190606082018281106001600160401b03821117610c6c576040525f6040838281528260208201520152565b60ff5f80516020611c138339815191525460401c1615611bc057565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122092d0a50899b379fa072f62aaa0227955a522327ec4ec96b1f787d39eeaafbf9c64736f6c63430008190033","sourceMap":"765:2461:94:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;765:2461:94;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;765:2461:94;;;;;;;;;;3551:87:23;-1:-1:-1;;;1134:40:32;;-1:-1:-1;3551:87:23;;;765:2461:94;-1:-1:-1;765:2461:94;;;;;;;;-1:-1:-1;;765:2461:94;;;;;;957:56;-1:-1:-1;;;;;765:2461:94;;;;;;;;;;;;-1:-1:-1;;765:2461:94;;;;;;1537:38:89;-1:-1:-1;;;;;765:2461:94;;;;;;;;;;;;-1:-1:-1;;765:2461:94;;;;;;1632:54:89;-1:-1:-1;;;;;765:2461:94;;;;;;;;;;;;-1:-1:-1;;765:2461:94;;;;;;1743:56:89;-1:-1:-1;;;;;765:2461:94;;;;;;;-1:-1:-1;;;;;765:2461:94;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;765:2461:94;;;;;;;;-1:-1:-1;;765:2461:94;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;765:2461:94;;;;;;-1:-1:-1;;;;;765:2461:94;;;;;;;;3361:103:30;;;:::i;:::-;765:2461:94;;-1:-1:-1;;;4285:48:89;;4322:10;765:2461:94;4285:48:89;;765:2461:94;;;;;-1:-1:-1;;;;;4295:16:89;765:2461:94;4285:48:89;;;;;;;-1:-1:-1;4285:48:89;;;765:2461:94;4284:49:89;;4280:99;;-1:-1:-1;;;;;765:2461:94;-1:-1:-1;;4322:10:89;297:2:101;765:2461:94;;267:46:101;4459:27:89;;;;765:2461:94;;4459:15:89;765:2461:94;;;;;;;4459:27:89;765:2461:94;4459:37:89;4455:87;;4654:38;4552:27;4654:38;4552:27;;;765:2461:94;;4459:15:89;765:2461:94;;;;;;;4552:27:89;765:2461:94;;;;;;;;;;;;;;4654:38:89;;;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;765:2461:94;3860:283:30;3426:1;765:2461:94;4455:87:89;765:2461:94;;-1:-1:-1;;;4519:12:89;;765:2461:94;;4519:12:89;4280:99;765:2461:94;;-1:-1:-1;;;4356:12:89;;765:2461:94;;4356:12:89;4285:48;;;;765:2461:94;4285:48:89;765:2461:94;4285:48:89;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;765:2461:94:-;;;;;;-1:-1:-1;;765:2461:94;;;;;;-1:-1:-1;765:2461:94;-1:-1:-1;;;;;;;;;;;765:2461:94;;;4919:24:23;765:2461:94;-1:-1:-1;765:2461:94;4919:24:23;765:2461:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;765:2461:94;;;;;;322:32:82;-1:-1:-1;;;;;765:2461:94;;;;;;;;;;;;-1:-1:-1;;765:2461:94;;;;5350:25:23;765:2461:94;;;;;;;:::i;:::-;;-1:-1:-1;765:2461:94;-1:-1:-1;;;;;;;;;;;765:2461:94;;3202:4:23;4919:24;765:2461:94;-1:-1:-1;765:2461:94;4919:24:23;765:2461:94;3202:4:23;:::i;:::-;5350:25;:::i;765:2461:94:-;;;;;;-1:-1:-1;;765:2461:94;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;765:2461:94;;6441:34:23;6437:102;;6549:37;765:2461:94;;;6549:37:23;:::i;6437:102::-;765:2461:94;;-1:-1:-1;;;6498:30:23;;765:2461:94;;6498:30:23;765:2461:94;;;;;;-1:-1:-1;;765:2461:94;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;966:10:28;-1:-1:-1;765:2461:94;;;;;;;;;;1356:26:89;;765:2461:94;;4468:23:23;4464:108;;-1:-1:-1;4861:4:89;765:2461:94;-1:-1:-1;;;;;765:2461:94;;;;;;4861:13:89;;4857:63;;-1:-1:-1;;;;;;765:2461:94;;;4861:4:89;765:2461:94;4958:14:89;-1:-1:-1;;4958:14:89;4861:4;-1:-1:-1;;;;;;;;;;;765:2461:94;;4464:108:23;765:2461:94;;;;4514:47:23;;;;;;966:10:28;765:2461:94;4514:47:23;;765:2461:94;;;;;4514:47:23;765:2461:94;;;;;;;;;;;;;-1:-1:-1;;;;;765:2461:94;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;765:2461:94;;;;-1:-1:-1;;;;;765:2461:94;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;765:2461:94;;;;;;;4301:16:26;765:2461:94;;4726:16:26;;:34;;;;765:2461:94;4805:1:26;4790:16;:50;;;;765:2461:94;4855:13:26;:30;;;;765:2461:94;4851:91:26;;;-1:-1:-1;;;;;;;;;;;765:2461:94;;-1:-1:-1;;765:2461:94;;;;;718:4:82;;4951:18:26;4979:67;;718:4:82;:::i;:::-;5066:101:26;;765:2461:94;5066:101:26;-1:-1:-1;;;;;;;;;;;765:2461:94;;-1:-1:-1;;;;765:2461:94;;;;;-1:-1:-1;765:2461:94;;5142:14:26;;765:2461:94;;5142:14:26;765:2461:94;4979:67:26;-1:-1:-1;;;;;;;;;;;765:2461:94;;-1:-1:-1;;;;765:2461:94;;;;;718:4:82;:::i;4851:91:26:-;765:2461:94;;-1:-1:-1;;;4908:23:26;;765:2461:94;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;765:2461:94;;;;;;-1:-1:-1;;765:2461:94;;;;;;;1253:6:89;765:2461:94;;;;;;;;;-1:-1:-1;;765:2461:94;;;;;;;1356:26:89;765:2461:94;;;;;;;;;-1:-1:-1;;765:2461:94;;;;;;;;-1:-1:-1;;;;;765:2461:94;;;;;;;;;;;;;;-1:-1:-1;;765:2461:94;;;;;;3901:31:23;765:2461:94;;;;;:::i;:::-;;;-1:-1:-1;765:2461:94;-1:-1:-1;;;;;;;;;;;765:2461:94;;;-1:-1:-1;765:2461:94;;;;;;;;;;;;;;;;;3901:31:23;765:2461:94;;;;;;;;;;;;;;;;-1:-1:-1;;765:2461:94;;;;;;906:45;-1:-1:-1;;;;;765:2461:94;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;765:2461:94;;;;-1:-1:-1;765:2461:94;;;477:31:88;765:2461:94;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:88;;;;765:2461:94;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;765:2461:94;;;;;;;;;;;;;477:31:88;;765:2461:94;;;;;;;;;;:::i;:::-;477:31:88;765:2461:94;;477:31:88;;;;;;:::i;:::-;518:79;;;765:2461:94;518:79:88;;765:2461:94;;;;;;;;;;;-1:-1:-1;;765:2461:94;;;;;;;;;;;;;;;;;-1:-1:-1;;765:2461:94;;;;;;;-1:-1:-1;;;;;404:28:82;765:2461:94;;;;;;;;;;-1:-1:-1;;765:2461:94;;;;;;1439:41:89;-1:-1:-1;;;;;765:2461:94;;;;;;;;;;;;-1:-1:-1;;765:2461:94;;;;;;-1:-1:-1;765:2461:94;2009:67:89;765:2461:94;;;;-1:-1:-1;765:2461:94;;;;;;;;;;;;;;-1:-1:-1;;765:2461:94;;;;5767:26:23;765:2461:94;;;;;;;:::i;:::-;;-1:-1:-1;765:2461:94;-1:-1:-1;;;;;;;;;;;765:2461:94;;3202:4:23;4919:24;765:2461:94;-1:-1:-1;765:2461:94;4919:24:23;765:2461:94;3202:4:23;:::i;:::-;5767:26;:::i;765:2461:94:-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;765:2461:94;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;765:2461:94;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;765:2461:94;;;;;;-1:-1:-1;;765:2461:94;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;765:2461:94;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;765:2461:94;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;3086:20:89;3082:107;;765:2461:94;;;;-1:-1:-1;765:2461:94;;;3082:107:89;3139:39;;;765:2461:94;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;3082:107:89;;;;;765:2461:94;;;;;;-1:-1:-1;;765:2461:94;;;;;;1019:53;-1:-1:-1;;;;;765:2461:94;;;;;;;;;;;;-1:-1:-1;;765:2461:94;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;765:2461:94;;;;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;-1:-1:-1;765:2461:94;;;5246:21:89;;:13;;-1:-1:-1;;;;;765:2461:94;5246:13:89;765:2461:94;;-1:-1:-1;;;;;765:2461:94;;;5246:21:89;765:2461:94;;-1:-1:-1;;;5246:23:89;;765:2461:94;;;;;5246:23:89;;;;;;;-1:-1:-1;5246:23:89;;;765:2461:94;-1:-1:-1;;;;;;765:2461:94;;;5232:10:89;:37;5228:87;;5341:4;765:2461:94;-1:-1:-1;;;;;765:2461:94;;;;5355:469:89;;765:2461:94;-1:-1:-1;;765:2461:94;;;;;;;;;;;;;;;;5839:55:89;;765:2461:94;;;;5839:55:89;;;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;765:2461:94;3860:283:30;5355:469:89;765:2461:94;;;;5435:94:89;;;;765:2461:94;5435:94:89;;;;;;;;;;;;765:2461:94;5435:94:89;;;:::i;:::-;;765:2461:94;;5435:94:89;;;;;;:::i;:::-;765:2461:94;5548:9:89;:51;5544:118;;-1:-1:-1;5839:55:89;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;765:2461:94;;-1:-1:-1;;;5626:21:89;;765:2461:94;;5626:21:89;5228:87;765:2461:94;;-1:-1:-1;;;5292:12:89;;765:2461:94;;5292:12:89;5246:23;;;;;765:2461:94;5246:23:89;765:2461:94;5246:23:89;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;765:2461:94;;;;;;-1:-1:-1;;765:2461:94;;;;;;;;-1:-1:-1;;;;;765:2461:94;;;;;;;;;;;;;;-1:-1:-1;;765:2461:94;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;765:2461:94;;;;;;;1150:7:89;765:2461:94;;;;;;;;;-1:-1:-1;;765:2461:94;;;;;;;2700:1:89;765:2461:94;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;765:2461:94;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;765:2461:94;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;2213:1011::-;765:2461;;;-1:-1:-1;;;2498:56:94;;765:2461;;2213:1011;-1:-1:-1;;;;;765:2461:94;;;;;;2498:56;;2213:1011;;;2453:20;765:2461;;2498:56;765:2461;2498:56;765:2461;;2498:56;;;;;;;;;;;2213:1011;-1:-1:-1;765:2461:94;;-1:-1:-1;;;2590:32:94;;765:2461;2590:32;765:2461;2498:56;765:2461;2590:32;;;;;;;;2498:56;2590:32;2435:220;2590:32;;;;;2213:1011;-1:-1:-1;765:2461:94;;-1:-1:-1;;;2435:220:94;;;-1:-1:-1;;;;;765:2461:94;;;2498:56;2435:220;;765:2461;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2435:220;;;;;;;;;;;2498:56;2435:220;;;2213:1011;765:2461;;;;;;2498:56;765:2461;;;;;;;;;;2768:58;;;;;;;;;2498:56;2768:58;;;2213:1011;-1:-1:-1;765:2461:94;;2705:174;;;-1:-1:-1;;;;;765:2461:94;;;2498:56;2705:174;;765:2461;;;;;;;;;;;;;;;;;;;;;;;;;;;2498:56;;765:2461;;;;;;;2705:174;;;;;;;;;;2498:56;2705:174;;;2213:1011;765:2461;;;2894:34;;;:74;;;2213:1011;2890:328;;2213:1011;;;;:::o;2890:328::-;2991:216;765:2461;;;;;2991:216;765:2461;;;:::i;:::-;;;;3019:174;;;765:2461;;2991:216;;;;;;:::i;2894:74::-;765:2461;;;2932:36;;2894:74;;2705:174;;;;;;2498:56;2705:174;;;;;;:::i;:::-;;;;;:::i;:::-;;;;2768:58;2498:56;2768:58;;;2705:174;2768:58;;;;;;;;;;;:::i;:::-;;;;;2435:220;;;;;;2498:56;2435:220;;;;;2498:56;2435:220;;;;;;:::i;:::-;;;;;;;;2590:32;;;;;;;;;;;;;;:::i;:::-;;;;2498:56;;;;;;;;;;;;;;;:::i;:::-;;;;;765:2461;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;765:2461:94;;;;;;;:::o;1583:624::-;765:2461;;-1:-1:-1;;;1765:31:94;;;765:2461;;1583:624;;;-1:-1:-1;;;;;765:2461:94;1583:624;;;;1765:31;;765:2461;;;;;1765:31;765:2461;1765:31;765:2461;;1765:31;;;;;;;;;;;1583:624;-1:-1:-1;;;;;;765:2461:94;;;;;-1:-1:-1;;765:2461:94;;-1:-1:-1;;;1824:146:94;;-1:-1:-1;;;;;765:2461:94;;;1765:31;1824:146;;765:2461;;;;;;;;-1:-1:-1;;765:2461:94;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;765:2461:94;;;;;;1853:31;765:2461;1824:146;;;;;;;1765:31;1824:146;;;1817:153;;:::o;1824:146::-;;;;;;1765:31;1824:146;;;;;;:::i;1761:440::-;765:2461;;1765:31;765:2461;;1991:31;;;;;;;;;;;;;2026:1;1991:31;1765;1991;;;1761:440;765:2461;;;1991:36;1987:214;;1761:440;;;;;1583:624::o;1987:214::-;765:2461;;-1:-1:-1;;;2050:140:94;;-1:-1:-1;;;;;765:2461:94;;;1765:31;2050:140;;765:2461;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;765:2461:94;;;;;;2076:28;765:2461;2050:140;;;;;;;1765:31;2050:140;;;2043:147;;:::o;1991:31::-;;;;;;-1:-1:-1;1991:31:94;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1765;;;;;;;;;;;;;;;:::i;:::-;;;;;765:2461;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3740:389:89:-;3918:5;765:2461:94;;;-1:-1:-1;;;3853:71:89;;;-1:-1:-1;;;;;765:2461:94;;;3853:71:89;;;765:2461:94;;;;;;;;;3853:71:89;;765:2461:94;;3853:71:89;765:2461:94;;;3867:29:89;765:2461:94;;3853:71:89;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;765:2461:94;;;3852:181:89;;3740:389;3835:242;;;;;;;;3918:5;3740:389;:::o;3835:242::-;3918:5;4058:8;:::o;3852:181::-;765:2461:94;;3945:88:89;;;-1:-1:-1;;;;;765:2461:94;;;;3853:71:89;3945:88;;765:2461:94;467:2:101;765:2461:94;;;;;;;;;;;-1:-1:-1;765:2461:94;;;;;;;;3959:31:89;765:2461:94;3945:88:89;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;;;3945:88;;;;;;-1:-1:-1;3945:88:89;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;3470:384:30;-1:-1:-1;;;;;;;;;;;1991:1:30;765:2461:94;;3670:20:30;3666:88;;1991:1;765:2461:94;;3470:384:30:o;3666:88::-;765:2461:94;;-1:-1:-1;;;3713:30:30;;;;;4148:103:23;-1:-1:-1;765:2461:94;;;-1:-1:-1;;;;;;;;;;;765:2461:94;;;;;;;;966:10:28;765:2461:94;;;;;;;;;;4468:23:23;4464:108;;4148:103;:::o;7270:387::-;-1:-1:-1;;;;;765:2461:94;;-1:-1:-1;765:2461:94;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;765:2461:94;;;;-1:-1:-1;765:2461:94;;;;;;;;;;;-1:-1:-1;;;;;765:2461:94;;;;;;;;;;-1:-1:-1;;765:2461:94;7509:4:23;765:2461:94;;;966:10:28;;-1:-1:-1;;;;;765:2461:94;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;765:2461:94;;-1:-1:-1;765:2461:94;;;;;;;;;1356:26:89;;-1:-1:-1;;;;;;;;;;;2887:71:23;765:2461:94;;3901:31:23;765:2461:94;;;;-1:-1:-1;765:2461:94;;;;;;;;;;;-1:-1:-1;;;;;765:2461:94;;;;;;;;;;-1:-1:-1;;765:2461:94;7509:4:23;765:2461:94;;;966:10:28;;-1:-1:-1;;;;;765:2461:94;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;765:2461:94;;;-1:-1:-1;;;;;;;;;;;765:2461:94;;;;;;;;-1:-1:-1;;;;;765:2461:94;;;;;;;;;;;;3901:31:23;765:2461:94;7892:388:23;-1:-1:-1;765:2461:94;;;-1:-1:-1;;;;;;;;;;;765:2461:94;;;;;;;;-1:-1:-1;;;;;765:2461:94;;;;;;;;;;;;;;;;-1:-1:-1;765:2461:94;;;;;;;;;;;-1:-1:-1;;;;;765:2461:94;;;;;;;;;;-1:-1:-1;;765:2461:94;;;966:10:28;;-1:-1:-1;;;;;765:2461:94;;8155:40:23;-1:-1:-1;;8155:40:23;765:2461:94;8209:11:23;:::o;765:2461:94:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;765:2461:94;;;;;;;;:::i;5907:716:89:-;6030:34;5907:716;6030:34;;;;:::i;:::-;-1:-1:-1;765:2461:94;;-1:-1:-1;;;6080:41:89;;-1:-1:-1;;;;;765:2461:94;;;6080:41:89;;;765:2461:94;;;;6080:41:89;765:2461:94;;;6090:13:89;765:2461:94;;6080:41:89;;;;;;;-1:-1:-1;6080:41:89;;;5907:716;6079:42;;6075:90;;6210:14;2684:111:30;;;:::i;:::-;765:2461:94;;;;;;-1:-1:-1;;;;;765:2461:94;;-1:-1:-1;765:2461:94;;;-1:-1:-1;765:2461:94;;6210:14:89;765:2461:94;;;;:::i;:::-;6080:41:89;6311:15;;765:2461:94;;;;-1:-1:-1;;;;;;765:2461:94;-1:-1:-1;;;;;765:2461:94;;;;;;;;;;;-1:-1:-1;;;;;765:2461:94;;;;6337:143:89;;5907:716;-1:-1:-1;6493:28:89;765:2461:94;-1:-1:-1;;;;;765:2461:94;;;;;;;6489:128:89;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;765:2461:94;;-1:-1:-1;;;6144:10:89;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;6893:76:26;;;:::i;:::-;;;:::i;:::-;1949:1:30;-1:-1:-1;;;;;;;;;;;765:2461:94;6893:76:26:o;765:2461:94:-;;;;;;;;;;-1:-1:-1;;;;;765:2461:94;;;;;;;-1:-1:-1;765:2461:94;;;;;;;;;;;;:::o;7084:141:26:-;765:2461:94;-1:-1:-1;;;;;;;;;;;765:2461:94;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;765:2461:94;;-1:-1:-1;;;7191:17:26;;;;","linkReferences":{},"immutableReferences":{"60120":[{"start":1571,"length":32}],"60123":[{"start":2911,"length":32}],"61074":[{"start":1167,"length":32},{"start":2968,"length":32}],"61077":[{"start":711,"length":32},{"start":6731,"length":32}],"61080":[{"start":779,"length":32},{"start":5693,"length":32}],"61083":[{"start":847,"length":32},{"start":5819,"length":32}],"63393":[{"start":2621,"length":32},{"start":4496,"length":32}],"63395":[{"start":643,"length":32},{"start":5263,"length":32}],"63397":[{"start":3578,"length":32},{"start":5457,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","FULL_RESTAKE_DELEGATOR_HINTS()":"e102831a","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_REGISTRY()":"c0cd7c3e","NETWORK_RESTAKE_DELEGATOR_HINTS()":"075db036","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","OPT_IN_SERVICE_HINTS()":"9b656b22","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","stakeBaseHints(address,bytes32,address,uint48)":"1bf10a3e","stakeHints(address,bytes32,address,uint48)":"25dc9708","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"optInServiceHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultHints_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FULL_RESTAKE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_RESTAKE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPT_IN_SERVICE_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeBaseHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/DelegatorHints.sol\":\"BaseDelegatorHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf\",\"dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x4aaaf1c0737dd16e81f0d2b9833c549747a5ede6873bf1444bc72aa572d03e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eada27d7668eebaea16c3b890aa1b38ffc53965292e26c96f7c44834623f4710\",\"dweb:/ipfs/QmVSWuLtxyCqNbLyY89ptxkvsk4CLLKDQYigEne5Qj8k1L\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a\",\"dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c\",\"dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e\",\"dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0xbdc3bb48ccedb818cd75a6d74a16df55a822e9f6d3cc54c59f576f10aab67b5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2284f25f2478f419d7781573b17a89d0e7c5589a865d55e2d6ed5163aee23aa8\",\"dweb:/ipfs/QmNsr2625APBQiNKpYnX5VcSnYgfUHR9Uzzp9pRXjoDqK7\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44\",\"dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0xd71e9102e99a25ee8b5435779f011a24558f56074aa2b16c18b623b57754ae97\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://29db5552e55dab51bea1ae40ba00ca674cb50fcb10997999a72a94527b6eb591\",\"dweb:/ipfs/QmQrYyTPx73ubNxMhYWJCkprCVFVtuTFcKaabYiKTe71tY\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"optInServiceHints","type":"address"},{"internalType":"address","name":"vaultHints_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FULL_RESTAKE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_RESTAKE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPT_IN_SERVICE_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeBaseHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/DelegatorHints.sol":"BaseDelegatorHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866","urls":["bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf","dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab","urls":["bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89","dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606","urls":["bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1","dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x4aaaf1c0737dd16e81f0d2b9833c549747a5ede6873bf1444bc72aa572d03e98","urls":["bzz-raw://eada27d7668eebaea16c3b890aa1b38ffc53965292e26c96f7c44834623f4710","dweb:/ipfs/QmVSWuLtxyCqNbLyY89ptxkvsk4CLLKDQYigEne5Qj8k1L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol":{"keccak256":"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549","urls":["bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a","dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed","urls":["bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0","dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d","urls":["bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c","dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575","urls":["bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e","dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0xbdc3bb48ccedb818cd75a6d74a16df55a822e9f6d3cc54c59f576f10aab67b5f","urls":["bzz-raw://2284f25f2478f419d7781573b17a89d0e7c5589a865d55e2d6ed5163aee23aa8","dweb:/ipfs/QmNsr2625APBQiNKpYnX5VcSnYgfUHR9Uzzp9pRXjoDqK7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f","urls":["bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44","dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0xd71e9102e99a25ee8b5435779f011a24558f56074aa2b16c18b623b57754ae97","urls":["bzz-raw://29db5552e55dab51bea1ae40ba00ca674cb50fcb10997999a72a94527b6eb591","dweb:/ipfs/QmQrYyTPx73ubNxMhYWJCkprCVFVtuTFcKaabYiKTe71tY"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":94} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"optInServiceHints","type":"address","internalType":"address"},{"name":"vaultHints_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"FULL_RESTAKE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_RESTAKE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPT_IN_SERVICE_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeBaseHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"stakeHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]}],"bytecode":{"object":"0x6101c03461027157618c446001600160401b03601f38839003908101601f191684019082821185831017610202578085916040958694855283398101031261027157610056602061004f85610275565b9401610275565b90306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460ff81861c166102605780838080931603610220575b5050505f60a0525f60c0525f60e052610100935f8552610120935f8552610140905f82526101609280845281516138338082019082821088831117610202578389849361010093611ef286393081526001600160a01b0391821660208201529116604082015260600190565b03905ff09485156102165760018060a01b0396876101809716875283519261351f91828501938585109085111761020257849361015c9361572586393081526001600160a01b0391821660208201529116604082015260600190565b03905ff09485156101f8576101a0951685525194611c68968761028a883960805187505060a05187610623015260c05187610b5f015260e05187818161048f0152610b980152518681816102c70152611a4b01525185818161030b015261163d01525184818161034f01526116bb015251838181610a3d0152611190015251828181610283015261148f015251818181610dfa01526115510152f35b50513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b82513d5f823e3d90fd5b6001600160401b03191617905582518181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8181610094565b845163f92ee8a960e01b8152600490fd5b5f80fd5b51906001600160a01b03821682036102715756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610214578063075db0361461020f578063103f29071461020a578063128e5d82146102055780631a80e500146102005780631bf10a3e146101fb57806323f752d5146101f6578063248a9ca3146101f157806325dc9708146101ec5780632dd31000146101e75780632f2ff15d146101e257806336568abe146101dd5780633dfd3873146101d8578063439fab91146101d3578063557cab44146101ce5780636679191e146101c95780637f5a7c7b146101c457806391d14854146101bf5780639b656b22146101ba5780639f86fd85146101b5578063a217fddf146101b0578063bb24fe8a146101ab578063c0cd7c3e146101a6578063d15b740e146101a1578063d547741f1461019c578063e02f693714610197578063e102831a14610192578063e49561ee1461018d578063fbfa77cf14610188578063fd4d447c14610183578063ff54740f1461017e5763ffa1ad7414610179575f80fd5b61108a565b61106d565b61103b565b611014565b610e29565b610de5565b610d02565b610bf1565b610bc7565b610b83565b610b40565b610b26565b610a6c565b610a28565b6109ca565b6109a2565b610968565b61094c565b61080f565b6106e9565b61069e565b610652565b61060e565b6105f1565b6105b8565b61043c565b610407565b61033a565b6102f6565b6102b2565b61026e565b3461026a57602036600319011261026a5760043563ffffffff60e01b811680910361026a57602090637965db0b60e01b8114908115610259575b506040519015158152f35b6301ffc9a760e01b1490505f61024e565b5f80fd5b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b0381160361026a57565b6064359065ffffffffffff8216820361026a57565b608090600319011261026a576004356103bc8161037e565b90602435906044356103cd8161037e565b9060643565ffffffffffff8116810361026a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461026a5761043861042461041b366103a4565b92919091611168565b6040519182916020835260208301906103e3565b0390f35b3461026a57604036600319011261026a576004356001600160601b038116810361026a576024359061046c611732565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f91610584575b5015610572576001600160601b03166bffffffffffffffffffffffff193360601b161790806104f6835f52600260205260405f2090565b541461056057610545817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610534855f52600260205260405f2090565b556040519081529081906020820190565b0390a261055e60015f80516020611bf383398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6105a6915060203d6020116105ac575b61059e8183610c71565b8101906113b9565b5f6104bf565b503d610594565b6110bd565b3461026a57602036600319011261026a576004355f525f80516020611bd38339815191526020526020600160405f200154604051908152f35b3461026a57610438610424610605366103a4565b929190916113f0565b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a57604036600319011261026a5761055e6024356004356106758261037e565b805f525f80516020611bd3833981519152602052610699600160405f200154611761565b611918565b3461026a57604036600319011261026a576024356106bb8161037e565b336001600160a01b038216036106d75761055e9060043561194e565b60405163334bd91960e11b8152600490fd5b3461026a57602036600319011261026a576004356107068161037e565b61070e611732565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156107c457506001546001600160a01b039182169181168214610560576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020611bf383398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b9181601f8401121561026a578235916001600160401b03831161026a576020838186019501011161026a57565b3461026a57602036600319011261026a576001600160401b0360043581811161026a576108409036906004016107e2565b5f80516020611c13833981519152549260ff8460401c1615931680159081610944575b600114908161093a575b159081610931575b5061091f575f80516020611c13833981519152805467ffffffffffffffff191660011790556108a891836108f657611a16565b6108ae57005b5f80516020611c13833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611c13833981519152805460ff60401b191668010000000000000000179055611a16565b60405163f92ee8a960e01b8152600490fd5b9050155f610875565b303b15915061086d565b849150610863565b3461026a575f36600319011261026a576020604051614e208152f35b3461026a575f36600319011261026a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461026a575f36600319011261026a576001546040516001600160a01b039091168152602090f35b3461026a57604036600319011261026a57602060ff610a1c6024356109ee8161037e565b6004355f525f80516020611bd3833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a5760408060031936011261026a57600435610a8a8161037e565b602435906001600160401b03821161026a575f8091610ab0610b149436906004016107e2565b908187519283928337810184815203915af43d15610b1c57610b063d610ad581610ca1565b90610ae286519283610c71565b81523d5f602083013e5b8451948593151560208501528084015260608301906103e3565b03601f198101835282610c71565b805190602001fd5b610b066060610aec565b3461026a575f36600319011261026a5760206040515f8152f35b3461026a575f36600319011261026a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a57602036600319011261026a576004355f526002602052602060405f2054604051908152f35b3461026a57604036600319011261026a5761055e602435600435610c148261037e565b805f525f80516020611bd3833981519152602052610c38600160405f200154611761565b61194e565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610c6c57604052565b610c3d565b90601f801991011681019081106001600160401b03821117610c6c57604052565b60405190610c9f82610c51565b565b6001600160401b038111610c6c57601f01601f191660200190565b81601f8201121561026a57803590610cd382610ca1565b92610ce16040519485610c71565b8284526020838301011161026a57815f926020809301838601378301015290565b3461026a5760808060031936011261026a57610d1f60243561037e565b60443565ffffffffffff81160361026a576001600160401b0360643581811161026a57610d50903690600401610cbc565b5060606020604051610d6181610c51565b828152015260605180610d79575b60206040515f8152f35b8281016020821261026a5783519183831161026a5782604091031261026a5760405193610da585610c51565b8281015184811161026a578282610dbe928601016110c8565b855260a083015193841161026a57602093610dda9301016110c8565b9101525f8080610d6f565b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a5760a036600319011261026a57602435600435610e498261037e565b60443591610e5561038f565b90608435906001600160401b03821161026a57610e7760049236908401610cbc565b610e7f611732565b5f54602090610ea490610e98906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156105b3575f93610fe3575b506001600160a01b039283163303610fd1576001546001600160a01b0316838116610f46575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361055e60015f80516020611bf383398151915255565b909360405194610f7d86610f6f602082019363724ab0f760e11b8552858c898d602487016115d0565b03601f198101885287610c71565b62042e305a10610fbf575f610f2d938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093610eec565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61100691935060203d60201161100d575b610ffe8183610c71565b8101906110a5565b915f610ec6565b503d610ff4565b3461026a575f36600319011261026a575f546040516001600160a01b039091168152602090f35b3461026a57604036600319011261026a57602061106560243561105d8161037e565b600435611608565b604051908152f35b3461026a575f36600319011261026a5760206040516203d0908152f35b3461026a575f36600319011261026a57602060405160018152f35b9081602091031261026a57516110ba8161037e565b90565b6040513d5f823e3d90fd5b81601f8201121561026a578051906110df82610ca1565b926110ed6040519485610c71565b8284526020838301011161026a57815f9260208093018386015e8301015290565b9060208282031261026a5781516001600160401b03811161026a576110ba92016110c8565b906110ba91602081526020611153835160408385015260608401906103e3565b920151906040601f19828503019101526103e3565b604080516309472ec160e11b8152606096956001600160a01b039384169591946020949192917f0000000000000000000000000000000000000000000000000000000000000000169085876004818b5afa9687156105b3575f9761139a575b50845163fbfa77cf60e01b81529686886004818c5afa80156105b357855f9161123b9a839161137d575b508851636a531c3160e11b8082526001600160a01b039586166004830152858916602483015294909116604482015265ffffffffffff909116606482015298899081906084820190565b0381865afa9788156105b3575f98611358575b508686979899600496975196878092621a80e560e81b82525afa9485156105b3575f95611335575b5086519081526001600160a01b03948516600482015293909216602484015260609190911c604483015265ffffffffffff9092166064820152905f9082908180608481015b03915afa9081156105b3575f91611313575b50835115801590611309575b6112e35750505050565b6110ba9394955090610b06916112f7610c92565b95865283860152519384928301611133565b50805115156112d9565b61132f91503d805f833e6113278183610c71565b81019061110e565b5f6112cd565b5f95506113516112bb918a3d8c1161100d57610ffe8183610c71565b9550611276565b8798509661137360049697983d805f833e6113278183610c71565b989796955061124e565b61139491508a3d8c1161100d57610ffe8183610c71565b5f6111f1565b6113b2919750863d881161100d57610ffe8183610c71565b955f6111c7565b9081602091031261026a5751801515810361026a5790565b9081602091031261026a57516001600160401b038116810361026a5790565b604051635d927f4560e11b8082526060969594936001600160a01b03939092909160209190858416908383600481855afa9283156105b3575f936115b1575b506001600160401b039283166114d65750506040516304bb92e160e31b81526001600160a01b0393841660048201526024810194909452505092909216604483015265ffffffffffff9290921660648201529192505f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f916114c2575090565b6110ba91503d805f833e6113278183610c71565b839060046040518094819382525afa9081156105b3576001935f92611584575b50501614611505575050505050565b6040516304bb92e160e31b81526001600160a01b039182166004820152602481019290925292909216604483015265ffffffffffff9290921660648201529192505f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f916114c2575090565b6115a39250803d106115aa575b61159b8183610c71565b8101906113d1565b5f806114f6565b503d611591565b6115c9919350843d86116115aa5761159b8183610c71565b915f61142f565b919360a0936110ba969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906103e3565b5f546040516308834cb560e21b8082526001600160a01b038581166004840152928316602483015293602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156105b3575f91611715575b501593841561168a575b505050509050611686575f90565b5f90565b6040519586526001600160a01b0392909216600486015260609190911c6024850152909291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156105b3575f926116f8575b505015805f808080611678565b61170e9250803d106105ac5761059e8183610c71565b5f806116eb565b61172c9150843d86116105ac5761059e8183610c71565b5f61166e565b5f80516020611bf3833981519152600281541461174f5760029055565b604051633ee5aeb560e01b8152600490fd5b5f8181525f80516020611bd38339815191526020908152604080832033845290915290205460ff16156107c45750565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020611bd38339815191529060ff1661183c575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020611bd38339815191529060ff905b5416611911575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b5f8181525f80516020611bd3833981519152602081815260408084206001600160a01b038716855290915290912060ff906118ad565b5f8181525f80516020611bd3833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611911575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261026a5780356119f88161037e565b9260208201356001600160401b03811161026a576110ba9201610cbc565b611a22918101906119e0565b506040516302910f8b60e31b81526001600160a01b0391821660048201819052906020816024817f000000000000000000000000000000000000000000000000000000000000000087165afa9081156105b3575f91611b34575b5015611b2257611aa990611a8e611b53565b60018060a01b03166001600160601b0360a01b5f5416175f55565b611afc6040611ab6611b76565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611b12575b5001516001600160a01b031690565b908116611b065750565b611b0f90611842565b50565b611b1b90611791565b505f611aed565b6040516362df054560e01b8152600490fd5b611b4d915060203d6020116105ac5761059e8183610c71565b5f611a7c565b611b5b611ba4565b611b63611ba4565b60015f80516020611bf383398151915255565b60405190606082018281106001600160401b03821117610c6c576040525f6040838281528260208201520152565b60ff5f80516020611c138339815191525460401c1615611bc057565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212208c8cb609a14ad0196f2716730b417869a08c533b532b4fc28fabc1ee690e133164736f6c634300081900336101c0346101cf57601f61383338819003918201601f19168301916001600160401b0391828411858510176101d35781606092869260409687528339810103126101cf5761004c836101e7565b926100648361005d602084016101e7565b92016101e7565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101be57808083160361017a575b5050505f60a0525f60c0525f60e052610100935f8552610120935f8552610140905f82526101609283526101809384526101a0948552519461363796876101fc88396080518781816105a001528181610fd70152611629015260a051876109e9015260c051876112ac015260e05187818161084b01526112e5015251868181610512015261298501525185818161055601528181611e330152611f3b0152518481816107c901528181611d9a0152611fb9015251838181610e95015261194d015251828181610d9701526119ee015251816110490152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101cf5756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461030457806302145348146102ff57806307f9d5fd146102fa578063103f2907146102f5578063128e5d82146102f0578063197aa7ea146102eb5780631a7a7044146102e65780631a80e500146102e157806323f752d5146102dc578063248a9ca3146102d757806325dc9708146102d25780632dd31000146102cd5780632f2ff15d146102c857806336568abe146102c35780633dfd3873146102be5780633eb22c0f146102b957806342c53e33146102b4578063439fab91146102af57806345e78fcb146102aa578063557cab44146102a55780635d32a1c9146102a05780636679191e1461029b57806379d89614146102965780637d24bb27146102915780637f5a7c7b1461028c5780638b3f10b01461028757806391d1485414610282578063987b3ee81461027d5780639b656b22146102785780639f86fd8514610273578063a217fddf1461026e578063a33bc28714610269578063b549ef1f14610264578063bb24fe8a1461025f578063c0cd7c3e1461025a578063c43dc03f14610255578063d15b740e14610250578063d547741f1461024b578063da749d2b14610246578063e02f693714610241578063e49561ee1461023c578063e78eb6ae14610237578063ed4d89e514610232578063fbfa77cf1461022d578063fd4d447c14610228578063ff54740f146102235763ffa1ad741461021e575f80fd5b6116dc565b6116bf565b611695565b61166e565b61160e565b6115d4565b6113e9565b6113cd565b6113b3565b611367565b61133d565b611314565b6112d0565b61128d565b611273565b611126565b61110c565b611078565b611034565b610fa6565b610f48565b610f25565b610efd565b610ec4565b610e80565b610e46565b610e23565b610dc6565b610d82565b610c4a565b610bd1565b610ba8565b610aaf565b610a64565b610a18565b6109d4565b6109b7565b61097e565b6107f8565b6107b4565b61076e565b610585565b610541565b6104fd565b6104c8565b61035e565b3461035a57602036600319011261035a5760043563ffffffff60e01b811680910361035a57602090637965db0b60e01b8114908115610349575b506040519015158152f35b6301ffc9a760e01b1490505f61033e565b5f80fd5b3461035a5760408060031936011261035a57600435906024359061038061202e565b825f526002602052805f2054821161041a57825f526003602052816103a6825f206128d7565b1461040a5781610405916103f57e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103e6875f52600360205260405f2090565b6103ef42612d8e565b90612176565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b6001600160a01b0381160361035a57565b6024359065ffffffffffff8216820361035a57565b6064359065ffffffffffff8216820361035a57565b608090600319011261035a5760043561047d8161042a565b906024359060443561048e8161042a565b9060643565ffffffffffff8116810361035a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461035a576104f96104e56104dc36610465565b92919091611736565b6040519182916020835260208301906104a4565b0390f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a5761059e61043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600360205260405f206122f5565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761064357604052565b610614565b606081019081106001600160401b0382111761064357604052565b60a081019081106001600160401b0382111761064357604052565b90601f801991011681019081106001600160401b0382111761064357604052565b604051906106ac82610663565b565b604051906106ac82610628565b6001600160401b03811161064357601f01601f191660200190565b81601f8201121561035a578035906106ed826106bb565b926106fb604051948561067e565b8284526020838301011161035a57815f926020809301838601378301015290565b90608060031983011261035a57600435916024356107398161042a565b9160443565ffffffffffff8116810361035a5791606435906001600160401b03821161035a5761076b916004016106d6565b90565b3461035a5760206107ac6107a76107843661071c565b939190925f526005865260405f209060018060a01b03165f5260205260405f2090565b61242d565b604051908152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356001600160601b038116810361035a5760243590610828612505565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610979575f9161094a575b5015610938576001600160601b03166bffffffffffffffffffffffff193360601b161790806108b2835f52600260205260405f2090565b54146109265761090b817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c926108f0855f52600260205260405f2090565b556108fb8185612534565b6040519081529081906020820190565b0390a261092460015f805160206135c283398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b61096c915060203d602011610972575b610964818361067e565b8101906117e8565b5f61087b565b503d61095a565b6117fc565b3461035a57602036600319011261035a576004355f525f805160206135a28339815191526020526020600160405f200154604051908152f35b3461035a576104f96104e56109cb36610465565b92919091611904565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a57610924602435600435610a3b8261042a565b805f525f805160206135a2833981519152602052610a5f600160405f2001546120e1565b61280f565b3461035a57604036600319011261035a57602435610a818161042a565b336001600160a01b03821603610a9d5761092490600435612845565b60405163334bd91960e11b8152600490fd5b3461035a57602036600319011261035a57600435610acc8161042a565b610ad4612505565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610b8a57506001546001600160a01b039182169181168214610926576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f805160206135c283398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461035a57602036600319011261035a576004355f52600360205260206107ac60405f206128d7565b3461035a57604036600319011261035a5760206107ac610c18602435610bf68161042a565b6004355f526005845260405f209060018060a01b03165f5260205260405f2090565b6128d7565b9181601f8401121561035a578235916001600160401b03831161035a576020838186019501011161035a57565b3461035a57602036600319011261035a576001600160401b0360043581811161035a57610c7b903690600401610c1d565b5f805160206135e2833981519152549260ff8460401c1615931680159081610d7a575b6001149081610d70575b159081610d67575b50610d55575f805160206135e2833981519152805467ffffffffffffffff19166001179055610ce39183610d3157612950565b610ce957005b5f805160206135e2833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f805160206135e2833981519152805460ff60401b1916600160401b179055612950565b60405163f92ee8a960e01b8152600490fd5b9050155f610cb0565b303b159150610ca8565b849150610c9e565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576020604051614e208152f35b606060031982011261035a576004359160243565ffffffffffff8116810361035a5791604435906001600160401b03821161035a5761076b916004016106d6565b3461035a5760206107ac610e3636610de2565b915f526003845260405f2061242d565b3461035a575f36600319011261035a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461035a575f36600319011261035a576001546040516001600160a01b039091168152602090f35b3461035a5760206107ac610f3836610de2565b915f526004845260405f2061242d565b3461035a57604036600319011261035a57602060ff610f9a602435610f6c8161042a565b6004355f525f805160206135a2833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461035a57606036600319011261035a57602435610fc38161042a565b60443565ffffffffffff8116810361035a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106025761102f6105e5926004355f52600560205260405f209060018060a01b03165f5260205260405f2090565b6122f5565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356110958161042a565b6024356001600160401b03811161035a575f916110b783923690600401610c1d565b90816040519283928337810184815203915af46111046110d5611b60565b916110f66040519384921515602084015260408084015260608301906104a4565b03601f19810183528261067e565b805190602001fd5b3461035a575f36600319011261035a5760206040515f8152f35b3461035a57606036600319011261035a576024356004356111468261042a565b6044359161115261208a565b5f8281526005602090815260408083206001600160a01b0385168452909152902061117c906128d7565b838114610926577f739a5a3ec0ff71e2386d0013deac5f44e0935a98def2e2a5ddf9a709518c8294916111ef61123c92855f52600460205260405f20906111e9886111e46111c942612d8e565b936111df610c188c5f52600460205260405f2090565b611bb6565b611bd1565b91612176565b5050611220856103e68361120b885f52600560205260405f2090565b9060018060a01b03165f5260205260405f2090565b50506040519485526001600160a01b0316939081906020820190565b0390a3005b606090600319011261035a576004356112598161042a565b906024359060443565ffffffffffff8116810361035a5790565b3461035a576104f96104e561128736611241565b91611bde565b3461035a575f36600319011261035a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57602036600319011261035a576004355f52600460205260206107ac60405f206128d7565b3461035a57602036600319011261035a576004355f526002602052602060405f2054604051908152f35b3461035a57604036600319011261035a5761092460243560043561138a8261042a565b805f525f805160206135a28339815191526020526113ae600160405f2001546120e1565b612845565b3461035a576104f96104e56113c736611241565b91611c28565b3461035a5760206107ac6113e03661071c565b92919091611d24565b3461035a5760a036600319011261035a576024356004356114098261042a565b60443591611415610450565b90608435906001600160401b03821161035a57611437600492369084016106d6565b61143f612505565b5f5460209061146490611458906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa928315610979575f936115a3575b506001600160a01b039283163303611591576001546001600160a01b0316838116611506575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361092460015f805160206135c283398151915255565b90936040519461153d8661152f602082019363724ab0f760e11b8552858c898d60248701611eae565b03601f19810188528761067e565b62042e305a1061157f575f6114ed938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f150936114ac565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b6115c691935060203d6020116115cd575b6115be818361067e565b810190611872565b915f611486565b503d6115b4565b3461035a575f36600319011261035a5760206040517f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846258152f35b3461035a57604036600319011261035a5761162761043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600460205260405f206122f5565b3461035a575f36600319011261035a575f546040516001600160a01b039091168152602090f35b3461035a57604036600319011261035a5760206107ac6024356116b78161042a565b600435611f04565b3461035a575f36600319011261035a5760206040516203d0908152f35b3461035a575f36600319011261035a57602060405160018152f35b5190811515820361035a57565b519063ffffffff8216820361035a57565b919082604091031261035a5761076b602061172f846116f7565b9301611704565b906117869165ffffffffffff6117959496956060976040519463130f67dd60e31b6020870152602486015260018060a01b031660448501521660648301526064825261178182610663565b612238565b60208082518301019101611715565b9061179d5750565b90915063ffffffff604051911660208201526020815261076b81610628565b5f9081526005602090815260408083206001600160a01b0390941683529290522061076b92919061242d565b9081602091031261035a5761076b906116f7565b6040513d5f823e3d90fd5b81601f8201121561035a5780519061181e826106bb565b9261182c604051948561067e565b8284526020838301011161035a57815f9260208093018386015e8301015290565b9060208282031261035a5781516001600160401b03811161035a5761076b9201611807565b9081602091031261035a575161076b8161042a565b9061076b91602081526118a6825160a0602084015260c08301906104a4565b9060a060806118f46118e16118cd602088015196601f1997888883030160408901526104a4565b6040880151878783030160608801526104a4565b60608701518686830301848701526104a4565b94015192828503019101526104a4565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491935f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa948515610979575f95611b18575b5060405163fbfa77cf60e01b8152602081600481888d165afa908115610979576119ea995f9285928491611af9575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa978815610979575f98611acf575b509081611a3b82611a3381611a419689611c28565b958388611736565b94611bde565b90835115801590611ac5575b8015611abb575b8015611ab1575b8015611aa7575b611a6f5750505050909150565b6110f6955061076b9496611a8161069f565b948552602085015260408401526060830152608082015260405192839160208301611887565b5081511515611a62565b5082511515611a5b565b5080511515611a54565b5086511515611a4d565b611a4192919850611af1903d805f833e611ae9818361067e565b81019061184d565b979091611a1e565b611b12915060203d6020116115cd576115be818361067e565b5f6119ad565b611b2d9195503d805f833e611ae9818361067e565b935f61197e565b9061076b92915f52600360205260405f2061242d565b9061076b92915f52600460205260405f2061242d565b3d15611b8a573d90611b71826106bb565b91611b7f604051938461067e565b82523d5f602084013e565b606090565b634e487b7160e01b5f52601160045260245ffd5b5f19810191908211611bb157565b611b8f565b91908203918211611bb157565b9060018201809211611bb157565b91908201809211611bb157565b60405163ed4d89e560e01b6020820152602481019290925265ffffffffffff909216604482015260609291611795916117869161178182606481015b03601f19810184528361067e565b604051630cbd53f560e11b6020820152602481019290925265ffffffffffff90921660448201526060929161179591611786916117818260648101611c1a565b60405190611c7582610628565b60606020838281520152565b9060208282031261035a5781516001600160401b039283821161035a57019060408282031261035a5760405192611cb784610628565b825181811161035a5782611ccc918501611807565b8452602083015190811161035a57611ce49201611807565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261076b929101906104a4565b92611d3490929192828486612bb5565b929093611d3f611c68565b93805180611e92575b50508415938415611dfc575b8415611d6b575b50505050611d665790565b505f90565b602080949550611d96910151604051958694859463530e1d4360e01b865260601c9060048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611ddd575b50155f808080611d5b565b611df6915060203d60201161097257610964818361067e565b5f611dd2565b5f549094506001600160a01b0316602084865192611e2f604051948593849363530e1d4360e01b85528960048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611e73575b501593611d54565b611e8c915060203d60201161097257610964818361067e565b5f611e6b565b611ea6929550602080918301019101611c81565b925f80611d48565b919360a09361076b969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906104a4565b8115611ef0570490565b634e487b7160e01b5f52601260045260245ffd5b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610979575f91612011575b5015918215611f8d575b50509050611f875761076b91612ccb565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610979575f92611ff4575b505015805f80611f76565b61200a9250803d1061097257610964818361067e565b5f80611fe9565b6120289150843d861161097257610964818361067e565b5f611f6c565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b541615610b8a5750565b335f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846259060ff90612080565b5f8181525f805160206135a283398151915260209081526040808320338452909152902060ff90612080565b634e487b7160e01b5f52603260045260245ffd5b8054821015612136575f5260205f2001905f90565b61210d565b90815491600160401b831015610643578261215e9160016106ac95018155612121565b90919082549060031b91821b915f19901b1916179055565b90929192600182019081548015612208575b508461219384612dc0565b509490928454936121a3836128d7565b96816121f3575b50156121d0575050505f198101908111611bb15761215e85916121cc93612121565b9190565b6121cc9492936121ec926001600160d01b039091169190613486565b505061213b565b65ffffffffffff83811691161490505f6121aa565b600160401b811015610643578060016122249201845583612121565b8154905f199060031b1b191690555f612188565b5f9190829160405161226d816110f66020820194639f86fd8560e01b86523060248401526040604484015260648301906104a4565b51915afa5061227a611b60565b8051810160408282031261035a57612294602083016116f7565b916040810151916001600160401b03831161035a576122ba926020809201920101611807565b90156122c35790565b805190811561035a57602001fd5b906040516122de81610628565b915465ffffffffffff8116835260301c6020830152565b91908254905f82916005841161239d575b612311935085612f24565b9081156123915761238a61238161237b61237161234361233e61233388611ba3565b895f5260205f200190565b6122d1565b96600161236a602061235b8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101612121565b90549060031b1c90565b93611ba3565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926123a881612df9565b8103908111611bb15761231193865f526123dc6123d18360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff851610156123f2575091612306565b9291506123fe90611bc3565b90612306565b9081602091031261035a5761076b90611704565b90600163ffffffff80931601918211611bb157565b918051156124fb578060208061244893518301019101612404565b916124538382613056565b92612464845165ffffffffffff1690565b9065ffffffffffff80851692168281146124ef578211918261249a575b50506124915761076b9250612f86565b50506020015190565b9091506124a78354611ba3565b63ffffffff8316149182156124c0575b50505f80612481565b6124e79192506124db6124d56123d192612418565b85613056565b5165ffffffffffff1690565b115f806124b7565b50505050506020015190565b5061076b91612f86565b5f805160206135c283398151915260028154146125225760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161254b82612dc0565b9193905083156125a95761256b916001600160d01b031690600101612121565b90549060031b1c5b8261259f575b5050612583575050565b61259b915f52600360205260405f206103ef42612d8e565b5050565b119050815f612579565b50505f612573565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206135a28339815191529060ff16611f87575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206135a28339815191529060ff905b541661272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f805160206135a28339815191529060ff906126c7565b6001600160a01b0381165f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b5584625905f805160206135a28339815191529060ff906126c7565b5f8181525f805160206135a2833981519152602081815260408084206001600160a01b038716855290915290912060ff906126c7565b5f8181525f805160206135a2833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b8054806128fc57505f5b6001600160d01b03811615611f875760016123719201612121565b5f19908082810111611bb157825f5260205f2001015460301c6128e1565b91909160408184031261035a5780356129328161042a565b9260208201356001600160401b03811161035a5761076b92016106d6565b61295c9181019061291a565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610979575f91612a6f575b5015612a5d576129f16040916129ec612a37946129d16130be565b60018060a01b03166001600160601b0360a01b5f5416175f55565b61323e565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116612a4d575b5001516001600160a01b031690565b908116612a415750565b612a4a9061265c565b50565b612a56906125b1565b505f612a28565b6040516362df054560e01b8152600490fd5b612a88915060203d60201161097257610964818361067e565b5f6129b6565b6040519060a082018281106001600160401b038211176106435760405281608060609182815282602082015282604082015282808201520152565b9060208282031261035a5781516001600160401b039283821161035a57019060a08282031261035a57612afa61069f565b92825181811161035a5782612b10918501611807565b8452602083015181811161035a5782612b2a918501611807565b6020850152604083015181811161035a5782612b47918501611807565b6040850152606083015181811161035a5782612b64918501611807565b6060850152608083015190811161035a57612b7f9201611807565b608082015290565b9081602091031261035a575190565b60409065ffffffffffff61076b949316815281602082015201906104a4565b91939293612bc1612a8e565b94805180612caf575b5050612bdb60608601518285611b4a565b9182612bed57505050509051905f9190565b612c01612c3b9183608089015191876117bc565b916020612c1a6114586114585f5460018060a01b031690565b8189015190604051808096819463810da75d60e01b83528760048401612b96565b03915afa801561097957612c7795612c71935f92612c7c575b50612c65919260408a015191611b34565b90818082109118021890565b9061339e565b915190565b612c659250612ca29060203d602011612ca8575b612c9a818361067e565b810190612b87565b91612c54565b503d612c90565b612cc3929650602080918301019101612ac9565b935f80612bca565b612ce0610c18825f52600460205260405f2090565b9081612ced575050505f90565b612d08610c1860049461120b845f52600560205260405f2090565b5f5460405163bd49c35f60e01b81529491929160209186919082906001600160a01b03165afa9081156109795761076b945f92612d65575b50610c18612d56915f52600360205260405f2090565b9081808210911802189061339e565b612d56919250612d86610c189160203d602011612ca857612c9a818361067e565b929150612d40565b65ffffffffffff90818111612da1571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612dd15750505f905f905f90565b5f19918183810111611bb1575f5260205f2001015460019165ffffffffffff82169160301c90565b600181111561076b57600181600160801b811015612f12575b612eba612eb0612ea6612e9c612e92612e88612ec697600488600160401b612ec19a1015612f05575b640100000000811015612ef8575b62010000811015612eeb575b610100811015612edf575b6010811015612ed3575b1015612ecb575b60030260011c612e81818b611ee6565b0160011c90565b612e81818a611ee6565b612e818189611ee6565b612e818188611ee6565b612e818187611ee6565b612e818186611ee6565b8093611ee6565b821190565b900390565b60011b612e71565b811c9160021b91612e6a565b60081c91811b91612e60565b60101c9160081b91612e55565b60201c9160101b91612e49565b60401c9160201b91612e3b565b50600160401b9050608082901c612e12565b91905b838210612f345750505090565b909192808316906001818518811c8301809311611bb157855f5265ffffffffffff808460205f20015416908516105f14612f73575050925b9190612f27565b909493508101809111611bb15791612f6c565b908154905f829160058411612ff0575b612fa1935084612f24565b80612fc957505f905b6001600160d01b03821615611f875761076b9160016123719201612121565b612fe3612fd8612fea92611ba3565b835f5260205f200190565b5460301c90565b90612faa565b9192612ffb81612df9565b8103908111611bb157612fa193855f5265ffffffffffff808360205f20015416908516105f1461302c575091612f96565b92915061303890611bc3565b90612f96565b6040519061304b82610628565b5f6020838281520152565b9061307f6130796130a09261306961303e565b5061307261303e565b5084612121565b506122d1565b91600165ffffffffffff845116936020828060d01b03910151169101612121565b905490604051926130b084610628565b835260031b1c602082015290565b6130c6613563565b6130ce613563565b60015f805160206135c283398151915255565b604051906130ee82610648565b5f6040838281528260208201520152565b81601f8201121561035a578051916020916001600160401b038411610643578360051b90604051946131338584018761067e565b8552838086019282010192831161035a578301905b828210613156575050505090565b83809183516131648161042a565b815201910190613148565b9060208282031261035a5781516001600160401b039283821161035a5701908181039260a0841261035a576060604051946131a986610648565b1261035a576040516131ba81610648565b83516131c58161042a565b815260208401516131d58161042a565b602082015260408401516131e88161042a565b60408201528452606083015181811161035a57826132079185016130ff565b6020850152608083015190811161035a5761322292016130ff565b604082015290565b80518210156121365760209160051b010190565b61325a9061324a6130e1565b506020808251830101910161316f565b8051519091906001600160a01b03161580613384575b613372579060208101905f5b825180518210156132f657611458613297836132a49361322a565b516001600160a01b031690565b156132e4576132c66132c26132bd61329784875161322a565b612732565b1590565b6132d25760010161327c565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015613369576114586132978361331d9361322a565b156133585761333b6132c261333661329784875161322a565b6127a0565b61334757600101613302565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b506020820151511580613270575060408201515115613270565b91818302915f198185099383808610950394808603951461341e57848311156134115790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b8215600302601118613591565b50509061076b9250611ee6565b8054600160401b8110156106435761344891600182018155612121565b61347357815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939280156135395761349d6134a891611ba3565b825f5260205f200190565b9182549265ffffffffffff91828516928116808411613527578793036134ee57506134e792509065ffffffffffff82549181199060301b169116179055565b60301c9190565b9150506135229161350e6135006106ae565b65ffffffffffff9093168352565b6001600160d01b038616602083015261342b565b6134e7565b604051632520601d60e01b8152600490fd5b509061355e9161354a6135006106ae565b6001600160d01b038516602083015261342b565b5f9190565b60ff5f805160206135e28339815191525460401c161561357f57565b604051631afcd79f60e31b8152600490fd5b634e487b715f526020526024601cfdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220634e3b6b986f1093753acb2fce82d90613d9763273e8cb9fc5d156adf1a11ace64736f6c634300081900336101c0346101c857601f61351f38819003918201601f19168301916001600160401b0391828411858510176101cc5781606092869260409687528339810103126101c85761004c836101e0565b926100648361005d602084016101e0565b92016101e0565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101b7578080831603610173575b5050505f60a0525f60c0525f60e052610100935f8552610120935f8552610140905f82526101609283526101809384526101a0948552519461332a96876101f58839608051878181610696015261148c015260a0518761092d015260c0518761114b015260e0518781816107a101526111840152518681816104e2015261266601525185818161064c01528181611be00152611d0f01525184818161071f01528181611b470152611d8d015251838181610ebc015261179a015251828181610c8f015261183b0152518161104f0152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101c85756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146102c4578063020cf0c2146102bf57806302145348146102ba578063103f2907146102b557806310a28b5d146102b057806311422095146102ab578063128e5d82146102a6578063197aa7ea146102a15780631a80e5001461029c57806323f752d514610297578063248a9ca31461029257806325dc97081461028d5780632dd31000146102885780632f2ff15d1461028357806336568abe1461027e5780633dfd3873146102795780633eb22c0f14610274578063439fab911461026f57806345e78fcb1461026a578063518504ba14610265578063557cab44146102605780635d32a1c91461025b5780636679191e1461025657806379d89614146102515780637d24bb271461024c5780637f5a7c7b1461024757806391d148541461024257806394d2558a1461023d5780639b656b22146102385780639f86fd8514610233578063a217fddf1461022e578063bb24fe8a14610229578063c0cd7c3e14610224578063d15b740e1461021f578063d547741f1461021a578063da749d2b14610215578063e02f693714610210578063e49561ee1461020b578063f7b0554714610206578063fbfa77cf14610201578063fd4d447c146101fc578063ff54740f146101f75763ffa1ad74146101f2575f80fd5b611557565b61153a565b611510565b6114e9565b611465565b61127a565b61125e565b611229565b6111dd565b6111b3565b61116f565b61112c565b611112565b61107e565b61103a565b610ffc565b610f4c565b610f24565b610eeb565b610ea7565b610e6d565b610e1c565b610cf8565b610cbe565b610c7a565b610b42565b610aec565b6109f3565b6109a8565b61095c565b610918565b6108fb565b6108c2565b61074e565b61070a565b61067b565b610637565b6105e8565b6105b3565b6104cd565b610410565b61032f565b3461031a57602036600319011261031a5760043563ffffffff60e01b811680910361031a57602090637965db0b60e01b8114908115610309575b506040519015158152f35b6301ffc9a760e01b1490505f6102fe565b5f80fd5b6001600160a01b0381160361031a57565b3461031a57606036600319011261031a5760243560043561034f8261031e565b6044359161035b611e02565b815f526004602052826103896103848360405f209060018060a01b03165f5260205260405f2090565b6120b3565b146103fe5760207ffc9545f07ffadfb668efd0144cdcaf2d6e2c8192dce1ea9fc131934f9c90fc7e91835f52600482526103e9856103da8360405f209060018060a01b03165f5260205260405f2090565b6103e342612b1e565b90611f58565b50506040519485526001600160a01b031693a3005b60405163a741a04560e01b8152600490fd5b3461031a5760408060031936011261031a576004359060243590610432611e5f565b825f526002602052805f205482116104bd57825f52600360205281610458825f206120b3565b146104ad57816104a8916104987e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103da875f52600360205260405f2090565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6024359065ffffffffffff8216820361031a57565b6044359065ffffffffffff8216820361031a57565b6064359065ffffffffffff8216820361031a57565b608090600319011261031a576004356105688161031e565b90602435906044356105798161031e565b9060643565ffffffffffff8116810361031a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461031a576105e46105d06105c736610550565b929190916115b1565b60405191829160208352602083019061058f565b0390f35b3461031a57604036600319011261031a57602061062f61038460243561060d8161031e565b6004355f526004845260405f209060018060a01b03165f5260205260405f2090565b604051908152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a57610694610511565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576106db906004355f52600360205260405f20612124565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a576004356001600160601b038116810361031a576024359061077e612229565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108bd575f9161088e575b501561087c576001600160601b03166bffffffffffffffffffffffff193360601b16179080610808835f52600260205260405f2090565b54146103fe57610861817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610846855f52600260205260405f2090565b556108518185612258565b6040519081529081906020820190565b0390a261087a60015f805160206132b583398151915255565b005b6040516323d53b9760e21b8152600490fd5b6108b0915060203d6020116108b6575b6108a88183610d7e565b810190611649565b5f6107d1565b503d61089e565b61165d565b3461031a57602036600319011261031a576004355f525f805160206132958339815191526020526020600160405f200154604051908152f35b3461031a576105e46105d061090f36610550565b9291909161174e565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5761087a60243560043561097f8261031e565b805f525f805160206132958339815191526020526109a3600160405f200154611eb5565b612533565b3461031a57604036600319011261031a576024356109c58161031e565b336001600160a01b038216036109e15761087a90600435612569565b60405163334bd91960e11b8152600490fd5b3461031a57602036600319011261031a57600435610a108161031e565b610a18612229565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610ace57506001546001600160a01b0391821691811682146103fe576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f805160206132b583398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461031a57602036600319011261031a576004355f526003602052602061062f60405f206120b3565b9181601f8401121561031a578235916001600160401b03831161031a576020838186019501011161031a57565b3461031a57602036600319011261031a576001600160401b0360043581811161031a57610b73903690600401610b15565b5f805160206132d5833981519152549260ff8460401c1615931680159081610c72575b6001149081610c68575b159081610c5f575b50610c4d575f805160206132d5833981519152805467ffffffffffffffff19166001179055610bdb9183610c2957612631565b610be157005b5f805160206132d5833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f805160206132d5833981519152805460ff60401b1916600160401b179055612631565b60405163f92ee8a960e01b8152600490fd5b9050155f610ba8565b303b159150610ba0565b849150610b96565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a38152f35b3461031a575f36600319011261031a576020604051614e208152f35b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610d4357604052565b610d14565b606081019081106001600160401b03821117610d4357604052565b608081019081106001600160401b03821117610d4357604052565b90601f801991011681019081106001600160401b03821117610d4357604052565b60405190610dac82610d63565b565b60405190610dac82610d28565b6001600160401b038111610d4357601f01601f191660200190565b81601f8201121561031a57803590610ded82610dbb565b92610dfb6040519485610d7e565b8284526020838301011161031a57815f926020809301838601378301015290565b3461031a57606036600319011261031a57610e35610511565b6044356001600160401b03811161031a57602091610e5a61062f923690600401610dd6565b906004355f526003845260405f20612798565b3461031a575f36600319011261031a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461031a575f36600319011261031a576001546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602060ff610f9e602435610f708161031e565b6004355f525f80516020613295833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b90608060031983011261031a5760043591602435610fc78161031e565b9160443565ffffffffffff8116810361031a5791606435906001600160401b03821161031a57610ff991600401610dd6565b90565b3461031a57602061062f61103561101236610faa565b939190925f526004865260405f209060018060a01b03165f5260205260405f2090565b612798565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5760043561109b8161031e565b6024356001600160401b03811161031a575f916110bd83923690600401610b15565b90816040519283928337810184815203915af461110a6110db6119a3565b916110fc60405193849215156020840152604080840152606083019061058f565b03601f198101835282610d7e565b805190602001fd5b3461031a575f36600319011261031a5760206040515f8152f35b3461031a575f36600319011261031a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57602036600319011261031a576004355f526002602052602060405f2054604051908152f35b3461031a57604036600319011261031a5761087a6024356004356112008261031e565b805f525f80516020613295833981519152602052611224600160405f200154611eb5565b612569565b3461031a57606036600319011261031a576105e46105d060043561124c8161031e565b611254610526565b90602435906119d2565b3461031a57602061062f61127136610faa565b92919091611ad1565b3461031a5760a036600319011261031a5760243560043561129a8261031e565b604435916112a661053b565b90608435906001600160401b03821161031a576112c860049236908401610dd6565b6112d0612229565b5f546020906112f5906112e9906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156108bd575f93611434575b506001600160a01b039283163303611422576001546001600160a01b0316838116611397575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361087a60015f805160206132b583398151915255565b9093604051946113ce866113c0602082019363724ab0f760e11b8552858c898d60248701611c5b565b03601f198101885287610d7e565b62042e305a10611410575f61137e938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f1509361133d565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61145791935060203d60201161145e575b61144f8183610d7e565b8101906116d3565b915f611317565b503d611445565b3461031a57606036600319011261031a576024356114828161031e565b61148a610526565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576114e46106db926004355f52600460205260405f209060018060a01b03165f5260205260405f2090565b612124565b3461031a575f36600319011261031a575f546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602061062f6024356115328161031e565b600435611cd8565b3461031a575f36600319011261031a5760206040516203d0908152f35b3461031a575f36600319011261031a57602060405160018152f35b5190811515820361031a57565b519063ffffffff8216820361031a57565b919082604091031261031a57610ff960206115aa84611572565b930161157f565b91939265ffffffffffff906060956040519363f7b0554760e01b6020860152602485015260018060a01b031660448401521660648201526064815260a08101908082106001600160401b03831117610d4357611622926116139260405261201a565b60208082518301019101611590565b9061162a5750565b90915063ffffffff6040519116602082015260208152610ff981610d28565b9081602091031261031a57610ff990611572565b6040513d5f823e3d90fd5b81601f8201121561031a5780519061167f82610dbb565b9261168d6040519485610d7e565b8284526020838301011161031a57815f9260208093018386015e8301015290565b9060208282031261031a5781516001600160401b03811161031a57610ff99201611668565b9081602091031261031a5751610ff98161031e565b90610ff9916020815261170782516080602084015260a083019061058f565b906080606061173e61172b602087015195601f19968787830301604088015261058f565b604087015186868303018487015261058f565b940151928285030191015261058f565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491939091905f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa9485156108bd575f95611945575b5060405163fbfa77cf60e01b8152602081600481888d165afa9081156108bd57611837995f9286928491611926575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9788156108bd575f986118fa575b50908161187d846118839594876119d2565b946115b1565b908251158015906118f0575b80156118e6575b80156118dc575b6118a957505050909150565b6110fc9450610ff993956118bb610d9f565b938452602084015260408301526060820152604051928391602083016116e8565b508151151561189d565b5080511515611896565b508551151561188f565b611883939291985061191d903d805f833e6119158183610d7e565b8101906116ae565b9790919261186b565b61193f915060203d60201161145e5761144f8183610d7e565b5f6117fa565b61195a9195503d805f833e6119158183610d7e565b935f6117cb565b90610ff992915f52600360205260405f20612798565b5f9081526004602090815260408083206001600160a01b03909416835292905220610ff9929190612798565b3d156119cd573d906119b482610dbb565b916119c26040519384610d7e565b82523d5f602084013e565b606090565b611622916116139194939465ffffffffffff60609660405193630cbd53f560e11b6020860152602485015216604483015260448252611a1082610d63565b61201a565b60405190611a2282610d28565b60606020838281520152565b9060208282031261031a5781516001600160401b039283821161031a57019060408282031261031a5760405192611a6484610d28565b825181811161031a5782611a79918501611668565b8452602083015190811161031a57611a919201611668565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff9091166040820152608060608201819052610ff99291019061058f565b92611ae190929192828486612973565b929093611aec611a15565b93805180611c3f575b50508415938415611ba9575b8415611b18575b50505050611b135790565b505f90565b602080949550611b43910151604051958694859463530e1d4360e01b865260601c9060048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611b8a575b50155f808080611b08565b611ba3915060203d6020116108b6576108a88183610d7e565b5f611b7f565b5f549094506001600160a01b0316602084865192611bdc604051948593849363530e1d4360e01b85528960048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611c20575b501593611b01565b611c39915060203d6020116108b6576108a88183610d7e565b5f611c18565b611c53929550602080918301019101611a2e565b925f80611af5565b919360a093610ff9969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061058f565b634e487b7160e01b5f52601160045260245ffd5b8115611cb1570490565b634e487b7160e01b5f52601260045260245ffd5b9060018201809211611cd357565b611c93565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156108bd575f91611de5575b5015918215611d61575b50509050611d5b57610ff991612a6e565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156108bd575f92611dc8575b505015805f80611d4a565b611dde9250803d106108b6576108a88183610d7e565b5f80611dbd565b611dfc9150843d86116108b6576108a88183610d7e565b5f611d40565b335f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a39060ff905b541615610ace5750565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff90611e55565b5f8181525f8051602061329583398151915260209081526040808320338452909152902060ff90611e55565b634e487b7160e01b5f52603260045260245ffd5b8054821015611f0a575f5260205f2001905f90565b611ee1565b90815491600160401b831015610d435782611f32916001610dac95018155611ef5565b90919082549060031b91821b915f19901b1916179055565b5f19810191908211611cd357565b90929192600182019081548015611fea575b5084611f7584612b50565b50949092845493611f85836120b3565b9681611fd5575b5015611fb2575050505f198101908111611cd357611f328591611fae93611ef5565b9190565b611fae949293611fce926001600160d01b039091169190613189565b5050611f0f565b65ffffffffffff83811691161490505f611f8c565b600160401b811015610d43578060016120069201845583611ef5565b8154905f199060031b1b191690555f611f6a565b5f9190829160405161204f816110fc6020820194639f86fd8560e01b865230602484015260406044840152606483019061058f565b51915afa5061205c6119a3565b8051810160408282031261031a5761207660208301611572565b916040810151916001600160401b03831161031a5761209c926020809201920101611668565b90156120a55790565b805190811561031a57602001fd5b8054806120e257505f5b6001600160d01b03811615611d5b5760016120d89201611ef5565b90549060031b1c90565b5f19908082810111611cd357825f5260205f2001015460301c6120bd565b9060405161210d81610d28565b915465ffffffffffff8116835260301c6020830152565b91908254905f8291600584116121c2575b612140935085612cb4565b9081156121b6576121af6121a66121a06120d861217261216d61216288611f4a565b895f5260205f200190565b612100565b966001612199602061218a8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101611ef5565b93611f4a565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926121cd81612b89565b8103908111611cd35761214093865f526122016121f68360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff85161015612217575091612135565b92915061222390611cc5565b90612135565b5f805160206132b583398151915260028154146122465760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161226f82612b50565b9193905083156122cd5761228f916001600160d01b031690600101611ef5565b90549060031b1c5b826122c3575b50506122a7575050565b6122bf915f52600360205260405f206103e342612b1e565b5050565b119050815f61229d565b50505f612297565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206132958339815191529060ff16611d5b575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206132958339815191529060ff905b541661244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f805160206132958339815191529060ff906123eb565b6001600160a01b0381165f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a3905f805160206132958339815191529060ff906123eb565b5f8181525f80516020613295833981519152602081815260408084206001600160a01b038716855290915290912060ff906123eb565b5f8181525f80516020613295833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261031a5780356126138161031e565b9260208201356001600160401b03811161031a57610ff99201610dd6565b61263d918101906125fb565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156108bd575f91612750575b501561273e576126d26040916126cd612718946126b2612d16565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612e96565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661272e575b5001516001600160a01b031690565b9081166127225750565b61272b90612380565b50565b612737906122d5565b505f612709565b6040516362df054560e01b8152600490fd5b612769915060203d6020116108b6576108a88183610d7e565b5f612697565b9081602091031261031a57610ff99061157f565b90600163ffffffff80931601918211611cd357565b9180511561286657806020806127b39351830101910161276f565b916127be83826130c6565b926127cf845165ffffffffffff1690565b9065ffffffffffff808516921682811461285a5782119182612805575b50506127fc57610ff99250612ff6565b50506020015190565b9091506128128354611f4a565b63ffffffff83161491821561282b575b50505f806127ec565b6128529192506128466128406121f692612783565b856130c6565b5165ffffffffffff1690565b115f80612822565b50505050506020015190565b50610ff991612ff6565b60405190608082018281106001600160401b03821117610d4357604052606080838181528160208201528160408201520152565b9060208282031261031a5781516001600160401b039283821161031a57019060808282031261031a576128d5610d9f565b92825181811161031a57826128eb918501611668565b8452602083015181811161031a5782612905918501611668565b6020850152604083015181811161031a5782612922918501611668565b6040850152606083015190811161031a5761293d9201611668565b606082015290565b9081602091031261031a575190565b60409065ffffffffffff610ff99493168152816020820152019061058f565b9391909361297f612870565b93805180612a4e575b50506129c992939460206129a86112e96112e95f5460018060a01b031690565b8188015190604051808098819463810da75d60e01b83528960048401612954565b03915afa9182156108bd57612a10945f93612a15575b50612a0490612a0493946129f860408a01518284611961565b9360608a015192611977565b90818082109118021890565b915190565b612a04935090612a3f612a049260203d602011612a47575b612a378183610d7e565b810190612945565b9350906129df565b503d612a2d565b6129c994955090602080612a669383010191016128a4565b93925f612988565b5f5460405163bd49c35f60e01b81529290602090849060049082906001600160a01b03165afa9283156108bd575f93612af5575b50610384612ae091612abf610384855f52600360205260405f2090565b935f52600460205260405f209060018060a01b03165f5260205260405f2090565b90818082109118021890818082109118021890565b612ae0919350612b166103849160203d602011612a4757612a378183610d7e565b939150612aa2565b65ffffffffffff90818111612b31571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612b615750505f905f905f90565b5f19918183810111611cd3575f5260205f2001015460019165ffffffffffff82169160301c90565b6001811115610ff957600181600160801b811015612ca2575b612c4a612c40612c36612c2c612c22612c18612c5697600488600160401b612c519a1015612c95575b640100000000811015612c88575b62010000811015612c7b575b610100811015612c6f575b6010811015612c63575b1015612c5b575b60030260011c612c11818b611ca7565b0160011c90565b612c11818a611ca7565b612c118189611ca7565b612c118188611ca7565b612c118187611ca7565b612c118186611ca7565b8093611ca7565b821190565b900390565b60011b612c01565b811c9160021b91612bfa565b60081c91811b91612bf0565b60101c9160081b91612be5565b60201c9160101b91612bd9565b60401c9160201b91612bcb565b50600160401b9050608082901c612ba2565b91905b838210612cc45750505090565b909192808316906001818518811c8301809311611cd357855f5265ffffffffffff808460205f20015416908516105f14612d03575050925b9190612cb7565b909493508101809111611cd35791612cfc565b612d1e613266565b612d26613266565b60015f805160206132b583398151915255565b60405190612d4682610d48565b5f6040838281528260208201520152565b81601f8201121561031a578051916020916001600160401b038411610d43578360051b9060405194612d8b85840187610d7e565b8552838086019282010192831161031a578301905b828210612dae575050505090565b8380918351612dbc8161031e565b815201910190612da0565b9060208282031261031a5781516001600160401b039283821161031a5701908181039260a0841261031a57606060405194612e0186610d48565b1261031a57604051612e1281610d48565b8351612e1d8161031e565b81526020840151612e2d8161031e565b60208201526040840151612e408161031e565b60408201528452606083015181811161031a5782612e5f918501612d57565b6020850152608083015190811161031a57612e7a9201612d57565b604082015290565b8051821015611f0a5760209160051b010190565b612eb290612ea2612d39565b5060208082518301019101612dc7565b8051519091906001600160a01b03161580612fdc575b612fca579060208101905f5b82518051821015612f4e576112e9612eef83612efc93612e82565b516001600160a01b031690565b15612f3c57612f1e612f1a612f15612eef848751612e82565b612456565b1590565b612f2a57600101612ed4565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015612fc1576112e9612eef83612f7593612e82565b15612fb057612f93612f1a612f8e612eef848751612e82565b6124c4565b612f9f57600101612f5a565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b506020820151511580612ec8575060408201515115612ec8565b908154905f829160058411613060575b613011935084612cb4565b8061303957505f905b6001600160d01b03821615611d5b57610ff99160016120d89201611ef5565b61305361304861305a92611f4a565b835f5260205f200190565b5460301c90565b9061301a565b919261306b81612b89565b8103908111611cd35761301193855f5265ffffffffffff808360205f20015416908516105f1461309c575091613006565b9291506130a890611cc5565b90613006565b604051906130bb82610d28565b5f6020838281520152565b906130ef6130e9613110926130d96130ae565b506130e26130ae565b5084611ef5565b50612100565b91600165ffffffffffff845116936020828060d01b03910151169101611ef5565b9054906040519261312084610d28565b835260031b1c602082015290565b8054600160401b811015610d435761314b91600182018155611ef5565b61317657815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b8054929392801561323c576131a06131ab91611f4a565b825f5260205f200190565b9182549265ffffffffffff9182851692811680841161322a578793036131f157506131ea92509065ffffffffffff82549181199060301b169116179055565b60301c9190565b91505061322591613211613203610dae565b65ffffffffffff9093168352565b6001600160d01b038616602083015261312e565b6131ea565b604051632520601d60e01b8152600490fd5b50906132619161324d613203610dae565b6001600160d01b038516602083015261312e565b5f9190565b60ff5f805160206132d58339815191525460401c161561328257565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212204499a4e541806b6efe7986c303b25f7c58d6541a27cb7ee070507be47989947d64736f6c63430008190033","sourceMap":"765:2461:92:-:0;;;;;-1:-1:-1;;;;;765:2461:92;;;;;;;;-1:-1:-1;;765:2461:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;348:4:93;;332:21;;8837:64:26;765:2461:92;;;;;;;7896:76:26;;765:2461:92;;;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:80;;;-1:-1:-1;525:17:80;;-1:-1:-1;552:12:80;;-1:-1:-1;2360:34:87;;2404:28;;-1:-1:-1;2404:28:87;;2442:57;;-1:-1:-1;2442:57:87;;2509:61;;-1:-1:-1;2509:61:87;;1248:40:92;;;;;765:2461;;1352:79;;;;;;;;;;;;;;;;;;;;;;;348:4:93;765:2461:92;;-1:-1:-1;;;;;765:2461:92;;;;;;;;;;;;;;;;;1352:79;;;-1:-1:-1;1352:79:92;;;;;;765:2461;;;;;1298:134;;;765:2461;;1298:134;;765:2461;;1493:76;;;;;;;;;;;;;;;;;;;;;;;348:4:93;765:2461:92;;-1:-1:-1;;;;;765:2461:92;;;;;;;;;;;;;;;;;1493:76;;;-1:-1:-1;1493:76:92;;;;;;1442:128;765:2461;;1442:128;;765:2461;;;;;;;;332:21:93;765:2461:92;;;;525:17:80;765:2461:92;;;;;552:12:80;765:2461:92;;;;;2360:34:87;765:2461:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1493:76;765:2461;;;-1:-1:-1;765:2461:92;;;;;1493:76;765:2461;;;-1:-1:-1;765:2461:92;;;;;-1:-1:-1;765:2461:92;1352:79;765:2461;;;-1:-1:-1;765:2461:92;;;;;7981:146:26;-1:-1:-1;;;;;;765:2461:92;;;;;;;;;8087:29:26;;765:2461:92;;8087:29:26;7981:146;;;;;7896:76;765:2461:92;;-1:-1:-1;;;7938:23:26;;;;;765:2461:92;-1:-1:-1;765:2461:92;;;;;-1:-1:-1;;;;;765:2461:92;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610214578063075db0361461020f578063103f29071461020a578063128e5d82146102055780631a80e500146102005780631bf10a3e146101fb57806323f752d5146101f6578063248a9ca3146101f157806325dc9708146101ec5780632dd31000146101e75780632f2ff15d146101e257806336568abe146101dd5780633dfd3873146101d8578063439fab91146101d3578063557cab44146101ce5780636679191e146101c95780637f5a7c7b146101c457806391d14854146101bf5780639b656b22146101ba5780639f86fd85146101b5578063a217fddf146101b0578063bb24fe8a146101ab578063c0cd7c3e146101a6578063d15b740e146101a1578063d547741f1461019c578063e02f693714610197578063e102831a14610192578063e49561ee1461018d578063fbfa77cf14610188578063fd4d447c14610183578063ff54740f1461017e5763ffa1ad7414610179575f80fd5b61108a565b61106d565b61103b565b611014565b610e29565b610de5565b610d02565b610bf1565b610bc7565b610b83565b610b40565b610b26565b610a6c565b610a28565b6109ca565b6109a2565b610968565b61094c565b61080f565b6106e9565b61069e565b610652565b61060e565b6105f1565b6105b8565b61043c565b610407565b61033a565b6102f6565b6102b2565b61026e565b3461026a57602036600319011261026a5760043563ffffffff60e01b811680910361026a57602090637965db0b60e01b8114908115610259575b506040519015158152f35b6301ffc9a760e01b1490505f61024e565b5f80fd5b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b0381160361026a57565b6064359065ffffffffffff8216820361026a57565b608090600319011261026a576004356103bc8161037e565b90602435906044356103cd8161037e565b9060643565ffffffffffff8116810361026a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461026a5761043861042461041b366103a4565b92919091611168565b6040519182916020835260208301906103e3565b0390f35b3461026a57604036600319011261026a576004356001600160601b038116810361026a576024359061046c611732565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f91610584575b5015610572576001600160601b03166bffffffffffffffffffffffff193360601b161790806104f6835f52600260205260405f2090565b541461056057610545817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610534855f52600260205260405f2090565b556040519081529081906020820190565b0390a261055e60015f80516020611bf383398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6105a6915060203d6020116105ac575b61059e8183610c71565b8101906113b9565b5f6104bf565b503d610594565b6110bd565b3461026a57602036600319011261026a576004355f525f80516020611bd38339815191526020526020600160405f200154604051908152f35b3461026a57610438610424610605366103a4565b929190916113f0565b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a57604036600319011261026a5761055e6024356004356106758261037e565b805f525f80516020611bd3833981519152602052610699600160405f200154611761565b611918565b3461026a57604036600319011261026a576024356106bb8161037e565b336001600160a01b038216036106d75761055e9060043561194e565b60405163334bd91960e11b8152600490fd5b3461026a57602036600319011261026a576004356107068161037e565b61070e611732565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156107c457506001546001600160a01b039182169181168214610560576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020611bf383398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b9181601f8401121561026a578235916001600160401b03831161026a576020838186019501011161026a57565b3461026a57602036600319011261026a576001600160401b0360043581811161026a576108409036906004016107e2565b5f80516020611c13833981519152549260ff8460401c1615931680159081610944575b600114908161093a575b159081610931575b5061091f575f80516020611c13833981519152805467ffffffffffffffff191660011790556108a891836108f657611a16565b6108ae57005b5f80516020611c13833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611c13833981519152805460ff60401b191668010000000000000000179055611a16565b60405163f92ee8a960e01b8152600490fd5b9050155f610875565b303b15915061086d565b849150610863565b3461026a575f36600319011261026a576020604051614e208152f35b3461026a575f36600319011261026a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461026a575f36600319011261026a576001546040516001600160a01b039091168152602090f35b3461026a57604036600319011261026a57602060ff610a1c6024356109ee8161037e565b6004355f525f80516020611bd3833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a5760408060031936011261026a57600435610a8a8161037e565b602435906001600160401b03821161026a575f8091610ab0610b149436906004016107e2565b908187519283928337810184815203915af43d15610b1c57610b063d610ad581610ca1565b90610ae286519283610c71565b81523d5f602083013e5b8451948593151560208501528084015260608301906103e3565b03601f198101835282610c71565b805190602001fd5b610b066060610aec565b3461026a575f36600319011261026a5760206040515f8152f35b3461026a575f36600319011261026a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a57602036600319011261026a576004355f526002602052602060405f2054604051908152f35b3461026a57604036600319011261026a5761055e602435600435610c148261037e565b805f525f80516020611bd3833981519152602052610c38600160405f200154611761565b61194e565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610c6c57604052565b610c3d565b90601f801991011681019081106001600160401b03821117610c6c57604052565b60405190610c9f82610c51565b565b6001600160401b038111610c6c57601f01601f191660200190565b81601f8201121561026a57803590610cd382610ca1565b92610ce16040519485610c71565b8284526020838301011161026a57815f926020809301838601378301015290565b3461026a5760808060031936011261026a57610d1f60243561037e565b60443565ffffffffffff81160361026a576001600160401b0360643581811161026a57610d50903690600401610cbc565b5060606020604051610d6181610c51565b828152015260605180610d79575b60206040515f8152f35b8281016020821261026a5783519183831161026a5782604091031261026a5760405193610da585610c51565b8281015184811161026a578282610dbe928601016110c8565b855260a083015193841161026a57602093610dda9301016110c8565b9101525f8080610d6f565b3461026a575f36600319011261026a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461026a5760a036600319011261026a57602435600435610e498261037e565b60443591610e5561038f565b90608435906001600160401b03821161026a57610e7760049236908401610cbc565b610e7f611732565b5f54602090610ea490610e98906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156105b3575f93610fe3575b506001600160a01b039283163303610fd1576001546001600160a01b0316838116610f46575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361055e60015f80516020611bf383398151915255565b909360405194610f7d86610f6f602082019363724ab0f760e11b8552858c898d602487016115d0565b03601f198101885287610c71565b62042e305a10610fbf575f610f2d938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093610eec565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61100691935060203d60201161100d575b610ffe8183610c71565b8101906110a5565b915f610ec6565b503d610ff4565b3461026a575f36600319011261026a575f546040516001600160a01b039091168152602090f35b3461026a57604036600319011261026a57602061106560243561105d8161037e565b600435611608565b604051908152f35b3461026a575f36600319011261026a5760206040516203d0908152f35b3461026a575f36600319011261026a57602060405160018152f35b9081602091031261026a57516110ba8161037e565b90565b6040513d5f823e3d90fd5b81601f8201121561026a578051906110df82610ca1565b926110ed6040519485610c71565b8284526020838301011161026a57815f9260208093018386015e8301015290565b9060208282031261026a5781516001600160401b03811161026a576110ba92016110c8565b906110ba91602081526020611153835160408385015260608401906103e3565b920151906040601f19828503019101526103e3565b604080516309472ec160e11b8152606096956001600160a01b039384169591946020949192917f0000000000000000000000000000000000000000000000000000000000000000169085876004818b5afa9687156105b3575f9761139a575b50845163fbfa77cf60e01b81529686886004818c5afa80156105b357855f9161123b9a839161137d575b508851636a531c3160e11b8082526001600160a01b039586166004830152858916602483015294909116604482015265ffffffffffff909116606482015298899081906084820190565b0381865afa9788156105b3575f98611358575b508686979899600496975196878092621a80e560e81b82525afa9485156105b3575f95611335575b5086519081526001600160a01b03948516600482015293909216602484015260609190911c604483015265ffffffffffff9092166064820152905f9082908180608481015b03915afa9081156105b3575f91611313575b50835115801590611309575b6112e35750505050565b6110ba9394955090610b06916112f7610c92565b95865283860152519384928301611133565b50805115156112d9565b61132f91503d805f833e6113278183610c71565b81019061110e565b5f6112cd565b5f95506113516112bb918a3d8c1161100d57610ffe8183610c71565b9550611276565b8798509661137360049697983d805f833e6113278183610c71565b989796955061124e565b61139491508a3d8c1161100d57610ffe8183610c71565b5f6111f1565b6113b2919750863d881161100d57610ffe8183610c71565b955f6111c7565b9081602091031261026a5751801515810361026a5790565b9081602091031261026a57516001600160401b038116810361026a5790565b604051635d927f4560e11b8082526060969594936001600160a01b03939092909160209190858416908383600481855afa9283156105b3575f936115b1575b506001600160401b039283166114d65750506040516304bb92e160e31b81526001600160a01b0393841660048201526024810194909452505092909216604483015265ffffffffffff9290921660648201529192505f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f916114c2575090565b6110ba91503d805f833e6113278183610c71565b839060046040518094819382525afa9081156105b3576001935f92611584575b50501614611505575050505050565b6040516304bb92e160e31b81526001600160a01b039182166004820152602481019290925292909216604483015265ffffffffffff9290921660648201529192505f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156105b3575f916114c2575090565b6115a39250803d106115aa575b61159b8183610c71565b8101906113d1565b5f806114f6565b503d611591565b6115c9919350843d86116115aa5761159b8183610c71565b915f61142f565b919360a0936110ba969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906103e3565b5f546040516308834cb560e21b8082526001600160a01b038581166004840152928316602483015293602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156105b3575f91611715575b501593841561168a575b505050509050611686575f90565b5f90565b6040519586526001600160a01b0392909216600486015260609190911c6024850152909291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156105b3575f926116f8575b505015805f808080611678565b61170e9250803d106105ac5761059e8183610c71565b5f806116eb565b61172c9150843d86116105ac5761059e8183610c71565b5f61166e565b5f80516020611bf3833981519152600281541461174f5760029055565b604051633ee5aeb560e01b8152600490fd5b5f8181525f80516020611bd38339815191526020908152604080832033845290915290205460ff16156107c45750565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020611bd38339815191529060ff1661183c575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020611bd38339815191529060ff905b5416611911575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b5f8181525f80516020611bd3833981519152602081815260408084206001600160a01b038716855290915290912060ff906118ad565b5f8181525f80516020611bd3833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611911575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261026a5780356119f88161037e565b9260208201356001600160401b03811161026a576110ba9201610cbc565b611a22918101906119e0565b506040516302910f8b60e31b81526001600160a01b0391821660048201819052906020816024817f000000000000000000000000000000000000000000000000000000000000000087165afa9081156105b3575f91611b34575b5015611b2257611aa990611a8e611b53565b60018060a01b03166001600160601b0360a01b5f5416175f55565b611afc6040611ab6611b76565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116611b12575b5001516001600160a01b031690565b908116611b065750565b611b0f90611842565b50565b611b1b90611791565b505f611aed565b6040516362df054560e01b8152600490fd5b611b4d915060203d6020116105ac5761059e8183610c71565b5f611a7c565b611b5b611ba4565b611b63611ba4565b60015f80516020611bf383398151915255565b60405190606082018281106001600160401b03821117610c6c576040525f6040838281528260208201520152565b60ff5f80516020611c138339815191525460401c1615611bc057565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212208c8cb609a14ad0196f2716730b417869a08c533b532b4fc28fabc1ee690e133164736f6c63430008190033","sourceMap":"765:2461:92:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;765:2461:92;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;765:2461:92;;;;;;;;;;3551:87:23;-1:-1:-1;;;1134:40:32;;-1:-1:-1;3551:87:23;;;765:2461:92;-1:-1:-1;765:2461:92;;;;;;;;-1:-1:-1;;765:2461:92;;;;;;957:56;-1:-1:-1;;;;;765:2461:92;;;;;;;;;;;;-1:-1:-1;;765:2461:92;;;;;;1537:38:87;-1:-1:-1;;;;;765:2461:92;;;;;;;;;;;;-1:-1:-1;;765:2461:92;;;;;;1632:54:87;-1:-1:-1;;;;;765:2461:92;;;;;;;;;;;;-1:-1:-1;;765:2461:92;;;;;;1743:56:87;-1:-1:-1;;;;;765:2461:92;;;;;;;-1:-1:-1;;;;;765:2461:92;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;765:2461:92;;;;;;;;-1:-1:-1;;765:2461:92;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;765:2461:92;;;;;;-1:-1:-1;;;;;765:2461:92;;;;;;;;3361:103:30;;;:::i;:::-;765:2461:92;;-1:-1:-1;;;4285:48:87;;4322:10;765:2461:92;4285:48:87;;765:2461:92;;;;;-1:-1:-1;;;;;4295:16:87;765:2461:92;4285:48:87;;;;;;;-1:-1:-1;4285:48:87;;;765:2461:92;4284:49:87;;4280:99;;-1:-1:-1;;;;;765:2461:92;-1:-1:-1;;4322:10:87;297:2:99;765:2461:92;;267:46:99;4459:27:87;;;;765:2461:92;;4459:15:87;765:2461:92;;;;;;;4459:27:87;765:2461:92;4459:37:87;4455:87;;4654:38;4552:27;4654:38;4552:27;;;765:2461:92;;4459:15:87;765:2461:92;;;;;;;4552:27:87;765:2461:92;;;;;;;;;;;;;;4654:38:87;;;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;765:2461:92;3860:283:30;3426:1;765:2461:92;4455:87:87;765:2461:92;;-1:-1:-1;;;4519:12:87;;765:2461:92;;4519:12:87;4280:99;765:2461:92;;-1:-1:-1;;;4356:12:87;;765:2461:92;;4356:12:87;4285:48;;;;765:2461:92;4285:48:87;765:2461:92;4285:48:87;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;765:2461:92:-;;;;;;-1:-1:-1;;765:2461:92;;;;;;-1:-1:-1;765:2461:92;-1:-1:-1;;;;;;;;;;;765:2461:92;;;4919:24:23;765:2461:92;-1:-1:-1;765:2461:92;4919:24:23;765:2461:92;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;765:2461:92;;;;;;322:32:80;-1:-1:-1;;;;;765:2461:92;;;;;;;;;;;;-1:-1:-1;;765:2461:92;;;;5350:25:23;765:2461:92;;;;;;;:::i;:::-;;-1:-1:-1;765:2461:92;-1:-1:-1;;;;;;;;;;;765:2461:92;;3202:4:23;4919:24;765:2461:92;-1:-1:-1;765:2461:92;4919:24:23;765:2461:92;3202:4:23;:::i;:::-;5350:25;:::i;765:2461:92:-;;;;;;-1:-1:-1;;765:2461:92;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;765:2461:92;;6441:34:23;6437:102;;6549:37;765:2461:92;;;6549:37:23;:::i;6437:102::-;765:2461:92;;-1:-1:-1;;;6498:30:23;;765:2461:92;;6498:30:23;765:2461:92;;;;;;-1:-1:-1;;765:2461:92;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;966:10:28;-1:-1:-1;765:2461:92;;;;;;;;;;1356:26:87;;765:2461:92;;4468:23:23;4464:108;;-1:-1:-1;4861:4:87;765:2461:92;-1:-1:-1;;;;;765:2461:92;;;;;;4861:13:87;;4857:63;;-1:-1:-1;;;;;;765:2461:92;;;4861:4:87;765:2461:92;4958:14:87;-1:-1:-1;;4958:14:87;4861:4;-1:-1:-1;;;;;;;;;;;765:2461:92;;4464:108:23;765:2461:92;;;;4514:47:23;;;;;;966:10:28;765:2461:92;4514:47:23;;765:2461:92;;;;;4514:47:23;765:2461:92;;;;;;;;;;;;;-1:-1:-1;;;;;765:2461:92;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;765:2461:92;;;;-1:-1:-1;;;;;765:2461:92;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;765:2461:92;;;;;;;4301:16:26;765:2461:92;;4726:16:26;;:34;;;;765:2461:92;4805:1:26;4790:16;:50;;;;765:2461:92;4855:13:26;:30;;;;765:2461:92;4851:91:26;;;-1:-1:-1;;;;;;;;;;;765:2461:92;;-1:-1:-1;;765:2461:92;;;;;718:4:80;;4951:18:26;4979:67;;718:4:80;:::i;:::-;5066:101:26;;765:2461:92;5066:101:26;-1:-1:-1;;;;;;;;;;;765:2461:92;;-1:-1:-1;;;;765:2461:92;;;;;-1:-1:-1;765:2461:92;;5142:14:26;;765:2461:92;;5142:14:26;765:2461:92;4979:67:26;-1:-1:-1;;;;;;;;;;;765:2461:92;;-1:-1:-1;;;;765:2461:92;;;;;718:4:80;:::i;4851:91:26:-;765:2461:92;;-1:-1:-1;;;4908:23:26;;765:2461:92;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;765:2461:92;;;;;;-1:-1:-1;;765:2461:92;;;;;;;1253:6:87;765:2461:92;;;;;;;;;-1:-1:-1;;765:2461:92;;;;;;;1356:26:87;765:2461:92;;;;;;;;;-1:-1:-1;;765:2461:92;;;;;;;;-1:-1:-1;;;;;765:2461:92;;;;;;;;;;;;;;-1:-1:-1;;765:2461:92;;;;;;3901:31:23;765:2461:92;;;;;:::i;:::-;;;-1:-1:-1;765:2461:92;-1:-1:-1;;;;;;;;;;;765:2461:92;;;-1:-1:-1;765:2461:92;;;;;;;;;;;;;;;;;3901:31:23;765:2461:92;;;;;;;;;;;;;;;;-1:-1:-1;;765:2461:92;;;;;;906:45;-1:-1:-1;;;;;765:2461:92;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;765:2461:92;;;;-1:-1:-1;765:2461:92;;;477:31:86;765:2461:92;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:86;;;;765:2461:92;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;765:2461:92;;;;;;;;;;;;;477:31:86;;765:2461:92;;;;;;;;;;:::i;:::-;477:31:86;765:2461:92;;477:31:86;;;;;;:::i;:::-;518:79;;;765:2461:92;518:79:86;;765:2461:92;;;;;;;;;;;-1:-1:-1;;765:2461:92;;;;;;;;;;;;;;;;;-1:-1:-1;;765:2461:92;;;;;;;-1:-1:-1;;;;;404:28:80;765:2461:92;;;;;;;;;;-1:-1:-1;;765:2461:92;;;;;;1439:41:87;-1:-1:-1;;;;;765:2461:92;;;;;;;;;;;;-1:-1:-1;;765:2461:92;;;;;;-1:-1:-1;765:2461:92;2009:67:87;765:2461:92;;;;-1:-1:-1;765:2461:92;;;;;;;;;;;;;;-1:-1:-1;;765:2461:92;;;;5767:26:23;765:2461:92;;;;;;;:::i;:::-;;-1:-1:-1;765:2461:92;-1:-1:-1;;;;;;;;;;;765:2461:92;;3202:4:23;4919:24;765:2461:92;-1:-1:-1;765:2461:92;4919:24:23;765:2461:92;3202:4:23;:::i;:::-;5767:26;:::i;765:2461:92:-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;765:2461:92;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;765:2461:92;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;765:2461:92;;;;;;-1:-1:-1;;765:2461:92;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;765:2461:92;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;765:2461:92;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;3086:20:87;3082:107;;765:2461:92;;;;-1:-1:-1;765:2461:92;;;3082:107:87;3139:39;;;765:2461:92;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;3082:107:87;;;;;765:2461:92;;;;;;-1:-1:-1;;765:2461:92;;;;;;1019:53;-1:-1:-1;;;;;765:2461:92;;;;;;;;;;;;-1:-1:-1;;765:2461:92;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;765:2461:92;;;;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;-1:-1:-1;765:2461:92;;;5246:21:87;;:13;;-1:-1:-1;;;;;765:2461:92;5246:13:87;765:2461:92;;-1:-1:-1;;;;;765:2461:92;;;5246:21:87;765:2461:92;;-1:-1:-1;;;5246:23:87;;765:2461:92;;;;;5246:23:87;;;;;;;-1:-1:-1;5246:23:87;;;765:2461:92;-1:-1:-1;;;;;;765:2461:92;;;5232:10:87;:37;5228:87;;5341:4;765:2461:92;-1:-1:-1;;;;;765:2461:92;;;;5355:469:87;;765:2461:92;-1:-1:-1;;765:2461:92;;;;;;;;;;;;;;;;5839:55:87;;765:2461:92;;;;5839:55:87;;;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;765:2461:92;3860:283:30;5355:469:87;765:2461:92;;;;5435:94:87;;;;765:2461:92;5435:94:87;;;;;;;;;;;;765:2461:92;5435:94:87;;;:::i;:::-;;765:2461:92;;5435:94:87;;;;;;:::i;:::-;765:2461:92;5548:9:87;:51;5544:118;;-1:-1:-1;5839:55:87;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;765:2461:92;;-1:-1:-1;;;5626:21:87;;765:2461:92;;5626:21:87;5228:87;765:2461:92;;-1:-1:-1;;;5292:12:87;;765:2461:92;;5292:12:87;5246:23;;;;;765:2461:92;5246:23:87;765:2461:92;5246:23:87;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;765:2461:92;;;;;;-1:-1:-1;;765:2461:92;;;;;;;;-1:-1:-1;;;;;765:2461:92;;;;;;;;;;;;;;-1:-1:-1;;765:2461:92;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;765:2461:92;;;;;;;1150:7:87;765:2461:92;;;;;;;;;-1:-1:-1;;765:2461:92;;;;;;;2700:1:87;765:2461:92;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;765:2461:92;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;765:2461:92;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;2213:1011::-;765:2461;;;-1:-1:-1;;;2498:56:92;;765:2461;;2213:1011;-1:-1:-1;;;;;765:2461:92;;;;;;2498:56;;2213:1011;;;2453:20;765:2461;;2498:56;765:2461;2498:56;765:2461;;2498:56;;;;;;;;;;;2213:1011;-1:-1:-1;765:2461:92;;-1:-1:-1;;;2590:32:92;;765:2461;2590:32;765:2461;2498:56;765:2461;2590:32;;;;;;;;2498:56;2590:32;2435:220;2590:32;;;;;2213:1011;-1:-1:-1;765:2461:92;;-1:-1:-1;;;2435:220:92;;;-1:-1:-1;;;;;765:2461:92;;;2498:56;2435:220;;765:2461;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2435:220;;;;;;;;;;;2498:56;2435:220;;;2213:1011;765:2461;;;;;;2498:56;765:2461;;;;;;;;;;2768:58;;;;;;;;;2498:56;2768:58;;;2213:1011;-1:-1:-1;765:2461:92;;2705:174;;;-1:-1:-1;;;;;765:2461:92;;;2498:56;2705:174;;765:2461;;;;;;;;;;;;;;;;;;;;;;;;;;;2498:56;;765:2461;;;;;;;2705:174;;;;;;;;;;2498:56;2705:174;;;2213:1011;765:2461;;;2894:34;;;:74;;;2213:1011;2890:328;;2213:1011;;;;:::o;2890:328::-;2991:216;765:2461;;;;;2991:216;765:2461;;;:::i;:::-;;;;3019:174;;;765:2461;;2991:216;;;;;;:::i;2894:74::-;765:2461;;;2932:36;;2894:74;;2705:174;;;;;;2498:56;2705:174;;;;;;:::i;:::-;;;;;:::i;:::-;;;;2768:58;2498:56;2768:58;;;2705:174;2768:58;;;;;;;;;;;:::i;:::-;;;;;2435:220;;;;;;2498:56;2435:220;;;;;2498:56;2435:220;;;;;;:::i;:::-;;;;;;;;2590:32;;;;;;;;;;;;;;:::i;:::-;;;;2498:56;;;;;;;;;;;;;;;:::i;:::-;;;;;765:2461;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;765:2461:92;;;;;;;:::o;1583:624::-;765:2461;;-1:-1:-1;;;1765:31:92;;;765:2461;;1583:624;;;-1:-1:-1;;;;;765:2461:92;1583:624;;;;1765:31;;765:2461;;;;;1765:31;765:2461;1765:31;765:2461;;1765:31;;;;;;;;;;;1583:624;-1:-1:-1;;;;;;765:2461:92;;;;;-1:-1:-1;;765:2461:92;;-1:-1:-1;;;1824:146:92;;-1:-1:-1;;;;;765:2461:92;;;1765:31;1824:146;;765:2461;;;;;;;;-1:-1:-1;;765:2461:92;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;765:2461:92;;;;;;1853:31;765:2461;1824:146;;;;;;;1765:31;1824:146;;;1817:153;;:::o;1824:146::-;;;;;;1765:31;1824:146;;;;;;:::i;1761:440::-;765:2461;;1765:31;765:2461;;1991:31;;;;;;;;;;;;;2026:1;1991:31;1765;1991;;;1761:440;765:2461;;;1991:36;1987:214;;1761:440;;;;;1583:624::o;1987:214::-;765:2461;;-1:-1:-1;;;2050:140:92;;-1:-1:-1;;;;;765:2461:92;;;1765:31;2050:140;;765:2461;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;765:2461:92;;;;;;2076:28;765:2461;2050:140;;;;;;;1765:31;2050:140;;;2043:147;;:::o;1991:31::-;;;;;;-1:-1:-1;1991:31:92;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1765;;;;;;;;;;;;;;;:::i;:::-;;;;;765:2461;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3740:389:87:-;3918:5;765:2461:92;;;-1:-1:-1;;;3853:71:87;;;-1:-1:-1;;;;;765:2461:92;;;3853:71:87;;;765:2461:92;;;;;;;;;3853:71:87;;765:2461:92;;3853:71:87;765:2461:92;;;3867:29:87;765:2461:92;;3853:71:87;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;765:2461:92;;;3852:181:87;;3740:389;3835:242;;;;;;;;3918:5;3740:389;:::o;3835:242::-;3918:5;4058:8;:::o;3852:181::-;765:2461:92;;3945:88:87;;;-1:-1:-1;;;;;765:2461:92;;;;3853:71:87;3945:88;;765:2461:92;467:2:99;765:2461:92;;;;;;;;;;;-1:-1:-1;765:2461:92;;;;;;;;3959:31:87;765:2461:92;3945:88:87;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;;;3945:88;;;;;;-1:-1:-1;3945:88:87;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;3470:384:30;-1:-1:-1;;;;;;;;;;;1991:1:30;765:2461:92;;3670:20:30;3666:88;;1991:1;765:2461:92;;3470:384:30:o;3666:88::-;765:2461:92;;-1:-1:-1;;;3713:30:30;;;;;4148:103:23;-1:-1:-1;765:2461:92;;;-1:-1:-1;;;;;;;;;;;765:2461:92;;;;;;;;966:10:28;765:2461:92;;;;;;;;;;4468:23:23;4464:108;;4148:103;:::o;7270:387::-;-1:-1:-1;;;;;765:2461:92;;-1:-1:-1;765:2461:92;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;765:2461:92;;;;-1:-1:-1;765:2461:92;;;;;;;;;;;-1:-1:-1;;;;;765:2461:92;;;;;;;;;;-1:-1:-1;;765:2461:92;7509:4:23;765:2461:92;;;966:10:28;;-1:-1:-1;;;;;765:2461:92;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;765:2461:92;;-1:-1:-1;765:2461:92;;;;;;;;;1356:26:87;;-1:-1:-1;;;;;;;;;;;2887:71:23;765:2461:92;;3901:31:23;765:2461:92;;;;-1:-1:-1;765:2461:92;;;;;;;;;;;-1:-1:-1;;;;;765:2461:92;;;;;;;;;;-1:-1:-1;;765:2461:92;7509:4:23;765:2461:92;;;966:10:28;;-1:-1:-1;;;;;765:2461:92;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;765:2461:92;;;-1:-1:-1;;;;;;;;;;;765:2461:92;;;;;;;;-1:-1:-1;;;;;765:2461:92;;;;;;;;;;;;3901:31:23;765:2461:92;7892:388:23;-1:-1:-1;765:2461:92;;;-1:-1:-1;;;;;;;;;;;765:2461:92;;;;;;;;-1:-1:-1;;;;;765:2461:92;;;;;;;;;;;;;;;;-1:-1:-1;765:2461:92;;;;;;;;;;;-1:-1:-1;;;;;765:2461:92;;;;;;;;;;-1:-1:-1;;765:2461:92;;;966:10:28;;-1:-1:-1;;;;;765:2461:92;;8155:40:23;-1:-1:-1;;8155:40:23;765:2461:92;8209:11:23;:::o;765:2461:92:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;765:2461:92;;;;;;;;:::i;5907:716:87:-;6030:34;5907:716;6030:34;;;;:::i;:::-;-1:-1:-1;765:2461:92;;-1:-1:-1;;;6080:41:87;;-1:-1:-1;;;;;765:2461:92;;;6080:41:87;;;765:2461:92;;;;6080:41:87;765:2461:92;;;6090:13:87;765:2461:92;;6080:41:87;;;;;;;-1:-1:-1;6080:41:87;;;5907:716;6079:42;;6075:90;;6210:14;2684:111:30;;;:::i;:::-;765:2461:92;;;;;;-1:-1:-1;;;;;765:2461:92;;-1:-1:-1;765:2461:92;;;-1:-1:-1;765:2461:92;;6210:14:87;765:2461:92;;;;:::i;:::-;6080:41:87;6311:15;;765:2461:92;;;;-1:-1:-1;;;;;;765:2461:92;-1:-1:-1;;;;;765:2461:92;;;;;;;;;;;-1:-1:-1;;;;;765:2461:92;;;;6337:143:87;;5907:716;-1:-1:-1;6493:28:87;765:2461:92;-1:-1:-1;;;;;765:2461:92;;;;;;;6489:128:87;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;765:2461:92;;-1:-1:-1;;;6144:10:87;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;6893:76:26;;;:::i;:::-;;;:::i;:::-;1949:1:30;-1:-1:-1;;;;;;;;;;;765:2461:92;6893:76:26:o;765:2461:92:-;;;;;;;;;;-1:-1:-1;;;;;765:2461:92;;;;;;;-1:-1:-1;765:2461:92;;;;;;;;;;;;:::o;7084:141:26:-;765:2461:92;-1:-1:-1;;;;;;;;;;;765:2461:92;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;765:2461:92;;-1:-1:-1;;;7191:17:26;;;;","linkReferences":{},"immutableReferences":{"59800":[{"start":1571,"length":32}],"59803":[{"start":2911,"length":32}],"60754":[{"start":1167,"length":32},{"start":2968,"length":32}],"60757":[{"start":711,"length":32},{"start":6731,"length":32}],"60760":[{"start":779,"length":32},{"start":5693,"length":32}],"60763":[{"start":847,"length":32},{"start":5819,"length":32}],"63073":[{"start":2621,"length":32},{"start":4496,"length":32}],"63075":[{"start":643,"length":32},{"start":5263,"length":32}],"63077":[{"start":3578,"length":32},{"start":5457,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","FULL_RESTAKE_DELEGATOR_HINTS()":"e102831a","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_REGISTRY()":"c0cd7c3e","NETWORK_RESTAKE_DELEGATOR_HINTS()":"075db036","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","OPT_IN_SERVICE_HINTS()":"9b656b22","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","stakeBaseHints(address,bytes32,address,uint48)":"1bf10a3e","stakeHints(address,bytes32,address,uint48)":"25dc9708","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"optInServiceHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultHints_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FULL_RESTAKE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_RESTAKE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPT_IN_SERVICE_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeBaseHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/DelegatorHints.sol\":\"BaseDelegatorHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf\",\"dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x4aaaf1c0737dd16e81f0d2b9833c549747a5ede6873bf1444bc72aa572d03e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eada27d7668eebaea16c3b890aa1b38ffc53965292e26c96f7c44834623f4710\",\"dweb:/ipfs/QmVSWuLtxyCqNbLyY89ptxkvsk4CLLKDQYigEne5Qj8k1L\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a\",\"dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c\",\"dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e\",\"dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0xbdc3bb48ccedb818cd75a6d74a16df55a822e9f6d3cc54c59f576f10aab67b5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2284f25f2478f419d7781573b17a89d0e7c5589a865d55e2d6ed5163aee23aa8\",\"dweb:/ipfs/QmNsr2625APBQiNKpYnX5VcSnYgfUHR9Uzzp9pRXjoDqK7\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44\",\"dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x303ad40a3de8fa808cc30a6fbd5998633f6a89b982e6db1fa981e0566ab445e7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fa8fb92995ead02798e013190b87b84b44cc68668262f045c9b0b4783940e2bf\",\"dweb:/ipfs/QmV1uKGVLKwWisc714R8fCt71gXUQJpaKvdc6LQ8WtvMpL\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0xd71e9102e99a25ee8b5435779f011a24558f56074aa2b16c18b623b57754ae97\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://29db5552e55dab51bea1ae40ba00ca674cb50fcb10997999a72a94527b6eb591\",\"dweb:/ipfs/QmQrYyTPx73ubNxMhYWJCkprCVFVtuTFcKaabYiKTe71tY\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x7ee6dbf060c45d6eba95315f4ac0b3b467dd9c4999b84c31d6f66d4d8b53a116\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://301948b8ea522db292aa2722ba42def3911dae95f0b376f7023c3fef470f8676\",\"dweb:/ipfs/QmSDbP2HdzhDAzstr8Zz5isEAcSkma8ABc5UwPsoazaumZ\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"optInServiceHints","type":"address"},{"internalType":"address","name":"vaultHints_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FULL_RESTAKE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_RESTAKE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPT_IN_SERVICE_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeBaseHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/DelegatorHints.sol":"BaseDelegatorHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866","urls":["bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf","dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab","urls":["bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89","dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606","urls":["bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1","dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x4aaaf1c0737dd16e81f0d2b9833c549747a5ede6873bf1444bc72aa572d03e98","urls":["bzz-raw://eada27d7668eebaea16c3b890aa1b38ffc53965292e26c96f7c44834623f4710","dweb:/ipfs/QmVSWuLtxyCqNbLyY89ptxkvsk4CLLKDQYigEne5Qj8k1L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol":{"keccak256":"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549","urls":["bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a","dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed","urls":["bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0","dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d","urls":["bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c","dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575","urls":["bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e","dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0xbdc3bb48ccedb818cd75a6d74a16df55a822e9f6d3cc54c59f576f10aab67b5f","urls":["bzz-raw://2284f25f2478f419d7781573b17a89d0e7c5589a865d55e2d6ed5163aee23aa8","dweb:/ipfs/QmNsr2625APBQiNKpYnX5VcSnYgfUHR9Uzzp9pRXjoDqK7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f","urls":["bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44","dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x303ad40a3de8fa808cc30a6fbd5998633f6a89b982e6db1fa981e0566ab445e7","urls":["bzz-raw://fa8fb92995ead02798e013190b87b84b44cc68668262f045c9b0b4783940e2bf","dweb:/ipfs/QmV1uKGVLKwWisc714R8fCt71gXUQJpaKvdc6LQ8WtvMpL"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0xd71e9102e99a25ee8b5435779f011a24558f56074aa2b16c18b623b57754ae97","urls":["bzz-raw://29db5552e55dab51bea1ae40ba00ca674cb50fcb10997999a72a94527b6eb591","dweb:/ipfs/QmQrYyTPx73ubNxMhYWJCkprCVFVtuTFcKaabYiKTe71tY"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x7ee6dbf060c45d6eba95315f4ac0b3b467dd9c4999b84c31d6f66d4d8b53a116","urls":["bzz-raw://301948b8ea522db292aa2722ba42def3911dae95f0b376f7023c3fef470f8676","dweb:/ipfs/QmSDbP2HdzhDAzstr8Zz5isEAcSkma8ABc5UwPsoazaumZ"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":92} \ No newline at end of file diff --git a/out/DelegatorHints.sol/FullRestakeDelegatorHints.json b/out/DelegatorHints.sol/FullRestakeDelegatorHints.json index 0ee5d82b..a142551f 100644 --- a/out/DelegatorHints.sol/FullRestakeDelegatorHints.json +++ b/out/DelegatorHints.sol/FullRestakeDelegatorHints.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"baseDelegatorHints","type":"address","internalType":"address"},{"name":"vaultHints","type":"address","internalType":"address"},{"name":"optInServiceHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPT_IN_SERVICE_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VAULT_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operatorNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkLimitHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkLimitHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperatorNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetOperatorNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DuplicateRoleHolder","inputs":[]},{"type":"error","name":"ExceedsMaxNetworkLimit","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"MissingRoleHolders","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddressRoleHolder","inputs":[]}],"bytecode":{"object":"0x6101c0346101c857601f61351f38819003918201601f19168301916001600160401b0391828411858510176101cc5781606092869260409687528339810103126101c85761004c836101e0565b926100648361005d602084016101e0565b92016101e0565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101b7578080831603610173575b5050505f60a0525f60c0525f60e052610100935f8552610120935f8552610140905f82526101609283526101809384526101a0948552519461332a96876101f58839608051878181610696015261148c015260a0518761092d015260c0518761114b015260e0518781816107a101526111840152518681816104e2015261266601525185818161064c01528181611be00152611d0f01525184818161071f01528181611b470152611d8d015251838181610ebc015261179a015251828181610c8f015261183b0152518161104f0152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101c85756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146102c4578063020cf0c2146102bf57806302145348146102ba578063103f2907146102b557806310a28b5d146102b057806311422095146102ab578063128e5d82146102a6578063197aa7ea146102a15780631a80e5001461029c57806323f752d514610297578063248a9ca31461029257806325dc97081461028d5780632dd31000146102885780632f2ff15d1461028357806336568abe1461027e5780633dfd3873146102795780633eb22c0f14610274578063439fab911461026f57806345e78fcb1461026a578063518504ba14610265578063557cab44146102605780635d32a1c91461025b5780636679191e1461025657806379d89614146102515780637d24bb271461024c5780637f5a7c7b1461024757806391d148541461024257806394d2558a1461023d5780639b656b22146102385780639f86fd8514610233578063a217fddf1461022e578063bb24fe8a14610229578063c0cd7c3e14610224578063d15b740e1461021f578063d547741f1461021a578063da749d2b14610215578063e02f693714610210578063e49561ee1461020b578063f7b0554714610206578063fbfa77cf14610201578063fd4d447c146101fc578063ff54740f146101f75763ffa1ad74146101f2575f80fd5b611557565b61153a565b611510565b6114e9565b611465565b61127a565b61125e565b611229565b6111dd565b6111b3565b61116f565b61112c565b611112565b61107e565b61103a565b610ffc565b610f4c565b610f24565b610eeb565b610ea7565b610e6d565b610e1c565b610cf8565b610cbe565b610c7a565b610b42565b610aec565b6109f3565b6109a8565b61095c565b610918565b6108fb565b6108c2565b61074e565b61070a565b61067b565b610637565b6105e8565b6105b3565b6104cd565b610410565b61032f565b3461031a57602036600319011261031a5760043563ffffffff60e01b811680910361031a57602090637965db0b60e01b8114908115610309575b506040519015158152f35b6301ffc9a760e01b1490505f6102fe565b5f80fd5b6001600160a01b0381160361031a57565b3461031a57606036600319011261031a5760243560043561034f8261031e565b6044359161035b611e02565b815f526004602052826103896103848360405f209060018060a01b03165f5260205260405f2090565b6120b3565b146103fe5760207ffc9545f07ffadfb668efd0144cdcaf2d6e2c8192dce1ea9fc131934f9c90fc7e91835f52600482526103e9856103da8360405f209060018060a01b03165f5260205260405f2090565b6103e342612b1e565b90611f58565b50506040519485526001600160a01b031693a3005b60405163a741a04560e01b8152600490fd5b3461031a5760408060031936011261031a576004359060243590610432611e5f565b825f526002602052805f205482116104bd57825f52600360205281610458825f206120b3565b146104ad57816104a8916104987e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103da875f52600360205260405f2090565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6024359065ffffffffffff8216820361031a57565b6044359065ffffffffffff8216820361031a57565b6064359065ffffffffffff8216820361031a57565b608090600319011261031a576004356105688161031e565b90602435906044356105798161031e565b9060643565ffffffffffff8116810361031a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461031a576105e46105d06105c736610550565b929190916115b1565b60405191829160208352602083019061058f565b0390f35b3461031a57604036600319011261031a57602061062f61038460243561060d8161031e565b6004355f526004845260405f209060018060a01b03165f5260205260405f2090565b604051908152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a57610694610511565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576106db906004355f52600360205260405f20612124565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a576004356001600160601b038116810361031a576024359061077e612229565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108bd575f9161088e575b501561087c576001600160601b03166bffffffffffffffffffffffff193360601b16179080610808835f52600260205260405f2090565b54146103fe57610861817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610846855f52600260205260405f2090565b556108518185612258565b6040519081529081906020820190565b0390a261087a60015f805160206132b583398151915255565b005b6040516323d53b9760e21b8152600490fd5b6108b0915060203d6020116108b6575b6108a88183610d7e565b810190611649565b5f6107d1565b503d61089e565b61165d565b3461031a57602036600319011261031a576004355f525f805160206132958339815191526020526020600160405f200154604051908152f35b3461031a576105e46105d061090f36610550565b9291909161174e565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5761087a60243560043561097f8261031e565b805f525f805160206132958339815191526020526109a3600160405f200154611eb5565b612533565b3461031a57604036600319011261031a576024356109c58161031e565b336001600160a01b038216036109e15761087a90600435612569565b60405163334bd91960e11b8152600490fd5b3461031a57602036600319011261031a57600435610a108161031e565b610a18612229565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610ace57506001546001600160a01b0391821691811682146103fe576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f805160206132b583398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461031a57602036600319011261031a576004355f526003602052602061062f60405f206120b3565b9181601f8401121561031a578235916001600160401b03831161031a576020838186019501011161031a57565b3461031a57602036600319011261031a576001600160401b0360043581811161031a57610b73903690600401610b15565b5f805160206132d5833981519152549260ff8460401c1615931680159081610c72575b6001149081610c68575b159081610c5f575b50610c4d575f805160206132d5833981519152805467ffffffffffffffff19166001179055610bdb9183610c2957612631565b610be157005b5f805160206132d5833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f805160206132d5833981519152805460ff60401b1916600160401b179055612631565b60405163f92ee8a960e01b8152600490fd5b9050155f610ba8565b303b159150610ba0565b849150610b96565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a38152f35b3461031a575f36600319011261031a576020604051614e208152f35b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610d4357604052565b610d14565b606081019081106001600160401b03821117610d4357604052565b608081019081106001600160401b03821117610d4357604052565b90601f801991011681019081106001600160401b03821117610d4357604052565b60405190610dac82610d63565b565b60405190610dac82610d28565b6001600160401b038111610d4357601f01601f191660200190565b81601f8201121561031a57803590610ded82610dbb565b92610dfb6040519485610d7e565b8284526020838301011161031a57815f926020809301838601378301015290565b3461031a57606036600319011261031a57610e35610511565b6044356001600160401b03811161031a57602091610e5a61062f923690600401610dd6565b906004355f526003845260405f20612798565b3461031a575f36600319011261031a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461031a575f36600319011261031a576001546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602060ff610f9e602435610f708161031e565b6004355f525f80516020613295833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b90608060031983011261031a5760043591602435610fc78161031e565b9160443565ffffffffffff8116810361031a5791606435906001600160401b03821161031a57610ff991600401610dd6565b90565b3461031a57602061062f61103561101236610faa565b939190925f526004865260405f209060018060a01b03165f5260205260405f2090565b612798565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5760043561109b8161031e565b6024356001600160401b03811161031a575f916110bd83923690600401610b15565b90816040519283928337810184815203915af461110a6110db6119a3565b916110fc60405193849215156020840152604080840152606083019061058f565b03601f198101835282610d7e565b805190602001fd5b3461031a575f36600319011261031a5760206040515f8152f35b3461031a575f36600319011261031a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57602036600319011261031a576004355f526002602052602060405f2054604051908152f35b3461031a57604036600319011261031a5761087a6024356004356112008261031e565b805f525f80516020613295833981519152602052611224600160405f200154611eb5565b612569565b3461031a57606036600319011261031a576105e46105d060043561124c8161031e565b611254610526565b90602435906119d2565b3461031a57602061062f61127136610faa565b92919091611ad1565b3461031a5760a036600319011261031a5760243560043561129a8261031e565b604435916112a661053b565b90608435906001600160401b03821161031a576112c860049236908401610dd6565b6112d0612229565b5f546020906112f5906112e9906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156108bd575f93611434575b506001600160a01b039283163303611422576001546001600160a01b0316838116611397575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361087a60015f805160206132b583398151915255565b9093604051946113ce866113c0602082019363724ab0f760e11b8552858c898d60248701611c5b565b03601f198101885287610d7e565b62042e305a10611410575f61137e938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f1509361133d565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61145791935060203d60201161145e575b61144f8183610d7e565b8101906116d3565b915f611317565b503d611445565b3461031a57606036600319011261031a576024356114828161031e565b61148a610526565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576114e46106db926004355f52600460205260405f209060018060a01b03165f5260205260405f2090565b612124565b3461031a575f36600319011261031a575f546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602061062f6024356115328161031e565b600435611cd8565b3461031a575f36600319011261031a5760206040516203d0908152f35b3461031a575f36600319011261031a57602060405160018152f35b5190811515820361031a57565b519063ffffffff8216820361031a57565b919082604091031261031a57610ff960206115aa84611572565b930161157f565b91939265ffffffffffff906060956040519363f7b0554760e01b6020860152602485015260018060a01b031660448401521660648201526064815260a08101908082106001600160401b03831117610d4357611622926116139260405261201a565b60208082518301019101611590565b9061162a5750565b90915063ffffffff6040519116602082015260208152610ff981610d28565b9081602091031261031a57610ff990611572565b6040513d5f823e3d90fd5b81601f8201121561031a5780519061167f82610dbb565b9261168d6040519485610d7e565b8284526020838301011161031a57815f9260208093018386015e8301015290565b9060208282031261031a5781516001600160401b03811161031a57610ff99201611668565b9081602091031261031a5751610ff98161031e565b90610ff9916020815261170782516080602084015260a083019061058f565b906080606061173e61172b602087015195601f19968787830301604088015261058f565b604087015186868303018487015261058f565b940151928285030191015261058f565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491939091905f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa9485156108bd575f95611945575b5060405163fbfa77cf60e01b8152602081600481888d165afa9081156108bd57611837995f9286928491611926575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9788156108bd575f986118fa575b50908161187d846118839594876119d2565b946115b1565b908251158015906118f0575b80156118e6575b80156118dc575b6118a957505050909150565b6110fc9450610ff993956118bb610d9f565b938452602084015260408301526060820152604051928391602083016116e8565b508151151561189d565b5080511515611896565b508551151561188f565b611883939291985061191d903d805f833e6119158183610d7e565b8101906116ae565b9790919261186b565b61193f915060203d60201161145e5761144f8183610d7e565b5f6117fa565b61195a9195503d805f833e6119158183610d7e565b935f6117cb565b90610ff992915f52600360205260405f20612798565b5f9081526004602090815260408083206001600160a01b03909416835292905220610ff9929190612798565b3d156119cd573d906119b482610dbb565b916119c26040519384610d7e565b82523d5f602084013e565b606090565b611622916116139194939465ffffffffffff60609660405193630cbd53f560e11b6020860152602485015216604483015260448252611a1082610d63565b61201a565b60405190611a2282610d28565b60606020838281520152565b9060208282031261031a5781516001600160401b039283821161031a57019060408282031261031a5760405192611a6484610d28565b825181811161031a5782611a79918501611668565b8452602083015190811161031a57611a919201611668565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff9091166040820152608060608201819052610ff99291019061058f565b92611ae190929192828486612973565b929093611aec611a15565b93805180611c3f575b50508415938415611ba9575b8415611b18575b50505050611b135790565b505f90565b602080949550611b43910151604051958694859463530e1d4360e01b865260601c9060048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611b8a575b50155f808080611b08565b611ba3915060203d6020116108b6576108a88183610d7e565b5f611b7f565b5f549094506001600160a01b0316602084865192611bdc604051948593849363530e1d4360e01b85528960048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611c20575b501593611b01565b611c39915060203d6020116108b6576108a88183610d7e565b5f611c18565b611c53929550602080918301019101611a2e565b925f80611af5565b919360a093610ff9969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061058f565b634e487b7160e01b5f52601160045260245ffd5b8115611cb1570490565b634e487b7160e01b5f52601260045260245ffd5b9060018201809211611cd357565b611c93565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156108bd575f91611de5575b5015918215611d61575b50509050611d5b57610ff991612a6e565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156108bd575f92611dc8575b505015805f80611d4a565b611dde9250803d106108b6576108a88183610d7e565b5f80611dbd565b611dfc9150843d86116108b6576108a88183610d7e565b5f611d40565b335f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a39060ff905b541615610ace5750565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff90611e55565b5f8181525f8051602061329583398151915260209081526040808320338452909152902060ff90611e55565b634e487b7160e01b5f52603260045260245ffd5b8054821015611f0a575f5260205f2001905f90565b611ee1565b90815491600160401b831015610d435782611f32916001610dac95018155611ef5565b90919082549060031b91821b915f19901b1916179055565b5f19810191908211611cd357565b90929192600182019081548015611fea575b5084611f7584612b50565b50949092845493611f85836120b3565b9681611fd5575b5015611fb2575050505f198101908111611cd357611f328591611fae93611ef5565b9190565b611fae949293611fce926001600160d01b039091169190613189565b5050611f0f565b65ffffffffffff83811691161490505f611f8c565b600160401b811015610d43578060016120069201845583611ef5565b8154905f199060031b1b191690555f611f6a565b5f9190829160405161204f816110fc6020820194639f86fd8560e01b865230602484015260406044840152606483019061058f565b51915afa5061205c6119a3565b8051810160408282031261031a5761207660208301611572565b916040810151916001600160401b03831161031a5761209c926020809201920101611668565b90156120a55790565b805190811561031a57602001fd5b8054806120e257505f5b6001600160d01b03811615611d5b5760016120d89201611ef5565b90549060031b1c90565b5f19908082810111611cd357825f5260205f2001015460301c6120bd565b9060405161210d81610d28565b915465ffffffffffff8116835260301c6020830152565b91908254905f8291600584116121c2575b612140935085612cb4565b9081156121b6576121af6121a66121a06120d861217261216d61216288611f4a565b895f5260205f200190565b612100565b966001612199602061218a8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101611ef5565b93611f4a565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926121cd81612b89565b8103908111611cd35761214093865f526122016121f68360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff85161015612217575091612135565b92915061222390611cc5565b90612135565b5f805160206132b583398151915260028154146122465760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161226f82612b50565b9193905083156122cd5761228f916001600160d01b031690600101611ef5565b90549060031b1c5b826122c3575b50506122a7575050565b6122bf915f52600360205260405f206103e342612b1e565b5050565b119050815f61229d565b50505f612297565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206132958339815191529060ff16611d5b575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206132958339815191529060ff905b541661244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f805160206132958339815191529060ff906123eb565b6001600160a01b0381165f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a3905f805160206132958339815191529060ff906123eb565b5f8181525f80516020613295833981519152602081815260408084206001600160a01b038716855290915290912060ff906123eb565b5f8181525f80516020613295833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261031a5780356126138161031e565b9260208201356001600160401b03811161031a57610ff99201610dd6565b61263d918101906125fb565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156108bd575f91612750575b501561273e576126d26040916126cd612718946126b2612d16565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612e96565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661272e575b5001516001600160a01b031690565b9081166127225750565b61272b90612380565b50565b612737906122d5565b505f612709565b6040516362df054560e01b8152600490fd5b612769915060203d6020116108b6576108a88183610d7e565b5f612697565b9081602091031261031a57610ff99061157f565b90600163ffffffff80931601918211611cd357565b9180511561286657806020806127b39351830101910161276f565b916127be83826130c6565b926127cf845165ffffffffffff1690565b9065ffffffffffff808516921682811461285a5782119182612805575b50506127fc57610ff99250612ff6565b50506020015190565b9091506128128354611f4a565b63ffffffff83161491821561282b575b50505f806127ec565b6128529192506128466128406121f692612783565b856130c6565b5165ffffffffffff1690565b115f80612822565b50505050506020015190565b50610ff991612ff6565b60405190608082018281106001600160401b03821117610d4357604052606080838181528160208201528160408201520152565b9060208282031261031a5781516001600160401b039283821161031a57019060808282031261031a576128d5610d9f565b92825181811161031a57826128eb918501611668565b8452602083015181811161031a5782612905918501611668565b6020850152604083015181811161031a5782612922918501611668565b6040850152606083015190811161031a5761293d9201611668565b606082015290565b9081602091031261031a575190565b60409065ffffffffffff610ff99493168152816020820152019061058f565b9391909361297f612870565b93805180612a4e575b50506129c992939460206129a86112e96112e95f5460018060a01b031690565b8188015190604051808098819463810da75d60e01b83528960048401612954565b03915afa9182156108bd57612a10945f93612a15575b50612a0490612a0493946129f860408a01518284611961565b9360608a015192611977565b90818082109118021890565b915190565b612a04935090612a3f612a049260203d602011612a47575b612a378183610d7e565b810190612945565b9350906129df565b503d612a2d565b6129c994955090602080612a669383010191016128a4565b93925f612988565b5f5460405163bd49c35f60e01b81529290602090849060049082906001600160a01b03165afa9283156108bd575f93612af5575b50610384612ae091612abf610384855f52600360205260405f2090565b935f52600460205260405f209060018060a01b03165f5260205260405f2090565b90818082109118021890818082109118021890565b612ae0919350612b166103849160203d602011612a4757612a378183610d7e565b939150612aa2565b65ffffffffffff90818111612b31571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612b615750505f905f905f90565b5f19918183810111611cd3575f5260205f2001015460019165ffffffffffff82169160301c90565b6001811115610ff957600181600160801b811015612ca2575b612c4a612c40612c36612c2c612c22612c18612c5697600488600160401b612c519a1015612c95575b640100000000811015612c88575b62010000811015612c7b575b610100811015612c6f575b6010811015612c63575b1015612c5b575b60030260011c612c11818b611ca7565b0160011c90565b612c11818a611ca7565b612c118189611ca7565b612c118188611ca7565b612c118187611ca7565b612c118186611ca7565b8093611ca7565b821190565b900390565b60011b612c01565b811c9160021b91612bfa565b60081c91811b91612bf0565b60101c9160081b91612be5565b60201c9160101b91612bd9565b60401c9160201b91612bcb565b50600160401b9050608082901c612ba2565b91905b838210612cc45750505090565b909192808316906001818518811c8301809311611cd357855f5265ffffffffffff808460205f20015416908516105f14612d03575050925b9190612cb7565b909493508101809111611cd35791612cfc565b612d1e613266565b612d26613266565b60015f805160206132b583398151915255565b60405190612d4682610d48565b5f6040838281528260208201520152565b81601f8201121561031a578051916020916001600160401b038411610d43578360051b9060405194612d8b85840187610d7e565b8552838086019282010192831161031a578301905b828210612dae575050505090565b8380918351612dbc8161031e565b815201910190612da0565b9060208282031261031a5781516001600160401b039283821161031a5701908181039260a0841261031a57606060405194612e0186610d48565b1261031a57604051612e1281610d48565b8351612e1d8161031e565b81526020840151612e2d8161031e565b60208201526040840151612e408161031e565b60408201528452606083015181811161031a5782612e5f918501612d57565b6020850152608083015190811161031a57612e7a9201612d57565b604082015290565b8051821015611f0a5760209160051b010190565b612eb290612ea2612d39565b5060208082518301019101612dc7565b8051519091906001600160a01b03161580612fdc575b612fca579060208101905f5b82518051821015612f4e576112e9612eef83612efc93612e82565b516001600160a01b031690565b15612f3c57612f1e612f1a612f15612eef848751612e82565b612456565b1590565b612f2a57600101612ed4565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015612fc1576112e9612eef83612f7593612e82565b15612fb057612f93612f1a612f8e612eef848751612e82565b6124c4565b612f9f57600101612f5a565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b506020820151511580612ec8575060408201515115612ec8565b908154905f829160058411613060575b613011935084612cb4565b8061303957505f905b6001600160d01b03821615611d5b57610ff99160016120d89201611ef5565b61305361304861305a92611f4a565b835f5260205f200190565b5460301c90565b9061301a565b919261306b81612b89565b8103908111611cd35761301193855f5265ffffffffffff808360205f20015416908516105f1461309c575091613006565b9291506130a890611cc5565b90613006565b604051906130bb82610d28565b5f6020838281520152565b906130ef6130e9613110926130d96130ae565b506130e26130ae565b5084611ef5565b50612100565b91600165ffffffffffff845116936020828060d01b03910151169101611ef5565b9054906040519261312084610d28565b835260031b1c602082015290565b8054600160401b811015610d435761314b91600182018155611ef5565b61317657815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b8054929392801561323c576131a06131ab91611f4a565b825f5260205f200190565b9182549265ffffffffffff9182851692811680841161322a578793036131f157506131ea92509065ffffffffffff82549181199060301b169116179055565b60301c9190565b91505061322591613211613203610dae565b65ffffffffffff9093168352565b6001600160d01b038616602083015261312e565b6131ea565b604051632520601d60e01b8152600490fd5b50906132619161324d613203610dae565b6001600160d01b038516602083015261312e565b5f9190565b60ff5f805160206132d58339815191525460401c161561328257565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220a7ecdea8d9b7feed4e2f0435b6284fc7fc6b2d0b98165e4c0e462e7440ce901364736f6c63430008190033","sourceMap":"7866:3473:94:-:0;;;;;;;;;;;;;-1:-1:-1;;7866:3473:94;;;;-1:-1:-1;;;;;7866:3473:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;348:4:95;;332:21;;8837:64:26;7866:3473:94;;;;;;;;;7896:76:26;;7866:3473:94;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:82;;;-1:-1:-1;525:17:82;;-1:-1:-1;552:12:82;;-1:-1:-1;2360:34:89;;2404:28;;-1:-1:-1;2404:28:89;;2442:57;;-1:-1:-1;2442:57:89;;2509:61;;-1:-1:-1;2509:61:89;;8343:41:94;;;;8394:24;;;;8428:40;;;;7866:3473;;;;;;;;332:21:95;7866:3473:94;;;;;;;;;;525:17:82;7866:3473:94;;;;;552:12:82;7866:3473:94;;;;;2360:34:89;7866:3473:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;7866:3473:94;;;;;;;;;;;;;8087:29:26;;7866:3473:94;;8087:29:26;7981:146;;;;;7896:76;7866:3473:94;;-1:-1:-1;;;7938:23:26;;;;;7866:3473:94;-1:-1:-1;7866:3473:94;;;;;;-1:-1:-1;7866:3473:94;;;;;-1:-1:-1;7866:3473:94;;;;-1:-1:-1;;;;;7866:3473:94;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146102c4578063020cf0c2146102bf57806302145348146102ba578063103f2907146102b557806310a28b5d146102b057806311422095146102ab578063128e5d82146102a6578063197aa7ea146102a15780631a80e5001461029c57806323f752d514610297578063248a9ca31461029257806325dc97081461028d5780632dd31000146102885780632f2ff15d1461028357806336568abe1461027e5780633dfd3873146102795780633eb22c0f14610274578063439fab911461026f57806345e78fcb1461026a578063518504ba14610265578063557cab44146102605780635d32a1c91461025b5780636679191e1461025657806379d89614146102515780637d24bb271461024c5780637f5a7c7b1461024757806391d148541461024257806394d2558a1461023d5780639b656b22146102385780639f86fd8514610233578063a217fddf1461022e578063bb24fe8a14610229578063c0cd7c3e14610224578063d15b740e1461021f578063d547741f1461021a578063da749d2b14610215578063e02f693714610210578063e49561ee1461020b578063f7b0554714610206578063fbfa77cf14610201578063fd4d447c146101fc578063ff54740f146101f75763ffa1ad74146101f2575f80fd5b611557565b61153a565b611510565b6114e9565b611465565b61127a565b61125e565b611229565b6111dd565b6111b3565b61116f565b61112c565b611112565b61107e565b61103a565b610ffc565b610f4c565b610f24565b610eeb565b610ea7565b610e6d565b610e1c565b610cf8565b610cbe565b610c7a565b610b42565b610aec565b6109f3565b6109a8565b61095c565b610918565b6108fb565b6108c2565b61074e565b61070a565b61067b565b610637565b6105e8565b6105b3565b6104cd565b610410565b61032f565b3461031a57602036600319011261031a5760043563ffffffff60e01b811680910361031a57602090637965db0b60e01b8114908115610309575b506040519015158152f35b6301ffc9a760e01b1490505f6102fe565b5f80fd5b6001600160a01b0381160361031a57565b3461031a57606036600319011261031a5760243560043561034f8261031e565b6044359161035b611e02565b815f526004602052826103896103848360405f209060018060a01b03165f5260205260405f2090565b6120b3565b146103fe5760207ffc9545f07ffadfb668efd0144cdcaf2d6e2c8192dce1ea9fc131934f9c90fc7e91835f52600482526103e9856103da8360405f209060018060a01b03165f5260205260405f2090565b6103e342612b1e565b90611f58565b50506040519485526001600160a01b031693a3005b60405163a741a04560e01b8152600490fd5b3461031a5760408060031936011261031a576004359060243590610432611e5f565b825f526002602052805f205482116104bd57825f52600360205281610458825f206120b3565b146104ad57816104a8916104987e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103da875f52600360205260405f2090565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6024359065ffffffffffff8216820361031a57565b6044359065ffffffffffff8216820361031a57565b6064359065ffffffffffff8216820361031a57565b608090600319011261031a576004356105688161031e565b90602435906044356105798161031e565b9060643565ffffffffffff8116810361031a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461031a576105e46105d06105c736610550565b929190916115b1565b60405191829160208352602083019061058f565b0390f35b3461031a57604036600319011261031a57602061062f61038460243561060d8161031e565b6004355f526004845260405f209060018060a01b03165f5260205260405f2090565b604051908152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a57610694610511565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576106db906004355f52600360205260405f20612124565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a576004356001600160601b038116810361031a576024359061077e612229565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108bd575f9161088e575b501561087c576001600160601b03166bffffffffffffffffffffffff193360601b16179080610808835f52600260205260405f2090565b54146103fe57610861817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610846855f52600260205260405f2090565b556108518185612258565b6040519081529081906020820190565b0390a261087a60015f805160206132b583398151915255565b005b6040516323d53b9760e21b8152600490fd5b6108b0915060203d6020116108b6575b6108a88183610d7e565b810190611649565b5f6107d1565b503d61089e565b61165d565b3461031a57602036600319011261031a576004355f525f805160206132958339815191526020526020600160405f200154604051908152f35b3461031a576105e46105d061090f36610550565b9291909161174e565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5761087a60243560043561097f8261031e565b805f525f805160206132958339815191526020526109a3600160405f200154611eb5565b612533565b3461031a57604036600319011261031a576024356109c58161031e565b336001600160a01b038216036109e15761087a90600435612569565b60405163334bd91960e11b8152600490fd5b3461031a57602036600319011261031a57600435610a108161031e565b610a18612229565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610ace57506001546001600160a01b0391821691811682146103fe576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f805160206132b583398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461031a57602036600319011261031a576004355f526003602052602061062f60405f206120b3565b9181601f8401121561031a578235916001600160401b03831161031a576020838186019501011161031a57565b3461031a57602036600319011261031a576001600160401b0360043581811161031a57610b73903690600401610b15565b5f805160206132d5833981519152549260ff8460401c1615931680159081610c72575b6001149081610c68575b159081610c5f575b50610c4d575f805160206132d5833981519152805467ffffffffffffffff19166001179055610bdb9183610c2957612631565b610be157005b5f805160206132d5833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f805160206132d5833981519152805460ff60401b1916600160401b179055612631565b60405163f92ee8a960e01b8152600490fd5b9050155f610ba8565b303b159150610ba0565b849150610b96565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a38152f35b3461031a575f36600319011261031a576020604051614e208152f35b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610d4357604052565b610d14565b606081019081106001600160401b03821117610d4357604052565b608081019081106001600160401b03821117610d4357604052565b90601f801991011681019081106001600160401b03821117610d4357604052565b60405190610dac82610d63565b565b60405190610dac82610d28565b6001600160401b038111610d4357601f01601f191660200190565b81601f8201121561031a57803590610ded82610dbb565b92610dfb6040519485610d7e565b8284526020838301011161031a57815f926020809301838601378301015290565b3461031a57606036600319011261031a57610e35610511565b6044356001600160401b03811161031a57602091610e5a61062f923690600401610dd6565b906004355f526003845260405f20612798565b3461031a575f36600319011261031a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461031a575f36600319011261031a576001546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602060ff610f9e602435610f708161031e565b6004355f525f80516020613295833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b90608060031983011261031a5760043591602435610fc78161031e565b9160443565ffffffffffff8116810361031a5791606435906001600160401b03821161031a57610ff991600401610dd6565b90565b3461031a57602061062f61103561101236610faa565b939190925f526004865260405f209060018060a01b03165f5260205260405f2090565b612798565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5760043561109b8161031e565b6024356001600160401b03811161031a575f916110bd83923690600401610b15565b90816040519283928337810184815203915af461110a6110db6119a3565b916110fc60405193849215156020840152604080840152606083019061058f565b03601f198101835282610d7e565b805190602001fd5b3461031a575f36600319011261031a5760206040515f8152f35b3461031a575f36600319011261031a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57602036600319011261031a576004355f526002602052602060405f2054604051908152f35b3461031a57604036600319011261031a5761087a6024356004356112008261031e565b805f525f80516020613295833981519152602052611224600160405f200154611eb5565b612569565b3461031a57606036600319011261031a576105e46105d060043561124c8161031e565b611254610526565b90602435906119d2565b3461031a57602061062f61127136610faa565b92919091611ad1565b3461031a5760a036600319011261031a5760243560043561129a8261031e565b604435916112a661053b565b90608435906001600160401b03821161031a576112c860049236908401610dd6565b6112d0612229565b5f546020906112f5906112e9906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156108bd575f93611434575b506001600160a01b039283163303611422576001546001600160a01b0316838116611397575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361087a60015f805160206132b583398151915255565b9093604051946113ce866113c0602082019363724ab0f760e11b8552858c898d60248701611c5b565b03601f198101885287610d7e565b62042e305a10611410575f61137e938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f1509361133d565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61145791935060203d60201161145e575b61144f8183610d7e565b8101906116d3565b915f611317565b503d611445565b3461031a57606036600319011261031a576024356114828161031e565b61148a610526565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576114e46106db926004355f52600460205260405f209060018060a01b03165f5260205260405f2090565b612124565b3461031a575f36600319011261031a575f546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602061062f6024356115328161031e565b600435611cd8565b3461031a575f36600319011261031a5760206040516203d0908152f35b3461031a575f36600319011261031a57602060405160018152f35b5190811515820361031a57565b519063ffffffff8216820361031a57565b919082604091031261031a57610ff960206115aa84611572565b930161157f565b91939265ffffffffffff906060956040519363f7b0554760e01b6020860152602485015260018060a01b031660448401521660648201526064815260a08101908082106001600160401b03831117610d4357611622926116139260405261201a565b60208082518301019101611590565b9061162a5750565b90915063ffffffff6040519116602082015260208152610ff981610d28565b9081602091031261031a57610ff990611572565b6040513d5f823e3d90fd5b81601f8201121561031a5780519061167f82610dbb565b9261168d6040519485610d7e565b8284526020838301011161031a57815f9260208093018386015e8301015290565b9060208282031261031a5781516001600160401b03811161031a57610ff99201611668565b9081602091031261031a5751610ff98161031e565b90610ff9916020815261170782516080602084015260a083019061058f565b906080606061173e61172b602087015195601f19968787830301604088015261058f565b604087015186868303018487015261058f565b940151928285030191015261058f565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491939091905f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa9485156108bd575f95611945575b5060405163fbfa77cf60e01b8152602081600481888d165afa9081156108bd57611837995f9286928491611926575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9788156108bd575f986118fa575b50908161187d846118839594876119d2565b946115b1565b908251158015906118f0575b80156118e6575b80156118dc575b6118a957505050909150565b6110fc9450610ff993956118bb610d9f565b938452602084015260408301526060820152604051928391602083016116e8565b508151151561189d565b5080511515611896565b508551151561188f565b611883939291985061191d903d805f833e6119158183610d7e565b8101906116ae565b9790919261186b565b61193f915060203d60201161145e5761144f8183610d7e565b5f6117fa565b61195a9195503d805f833e6119158183610d7e565b935f6117cb565b90610ff992915f52600360205260405f20612798565b5f9081526004602090815260408083206001600160a01b03909416835292905220610ff9929190612798565b3d156119cd573d906119b482610dbb565b916119c26040519384610d7e565b82523d5f602084013e565b606090565b611622916116139194939465ffffffffffff60609660405193630cbd53f560e11b6020860152602485015216604483015260448252611a1082610d63565b61201a565b60405190611a2282610d28565b60606020838281520152565b9060208282031261031a5781516001600160401b039283821161031a57019060408282031261031a5760405192611a6484610d28565b825181811161031a5782611a79918501611668565b8452602083015190811161031a57611a919201611668565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff9091166040820152608060608201819052610ff99291019061058f565b92611ae190929192828486612973565b929093611aec611a15565b93805180611c3f575b50508415938415611ba9575b8415611b18575b50505050611b135790565b505f90565b602080949550611b43910151604051958694859463530e1d4360e01b865260601c9060048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611b8a575b50155f808080611b08565b611ba3915060203d6020116108b6576108a88183610d7e565b5f611b7f565b5f549094506001600160a01b0316602084865192611bdc604051948593849363530e1d4360e01b85528960048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611c20575b501593611b01565b611c39915060203d6020116108b6576108a88183610d7e565b5f611c18565b611c53929550602080918301019101611a2e565b925f80611af5565b919360a093610ff9969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061058f565b634e487b7160e01b5f52601160045260245ffd5b8115611cb1570490565b634e487b7160e01b5f52601260045260245ffd5b9060018201809211611cd357565b611c93565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156108bd575f91611de5575b5015918215611d61575b50509050611d5b57610ff991612a6e565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156108bd575f92611dc8575b505015805f80611d4a565b611dde9250803d106108b6576108a88183610d7e565b5f80611dbd565b611dfc9150843d86116108b6576108a88183610d7e565b5f611d40565b335f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a39060ff905b541615610ace5750565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff90611e55565b5f8181525f8051602061329583398151915260209081526040808320338452909152902060ff90611e55565b634e487b7160e01b5f52603260045260245ffd5b8054821015611f0a575f5260205f2001905f90565b611ee1565b90815491600160401b831015610d435782611f32916001610dac95018155611ef5565b90919082549060031b91821b915f19901b1916179055565b5f19810191908211611cd357565b90929192600182019081548015611fea575b5084611f7584612b50565b50949092845493611f85836120b3565b9681611fd5575b5015611fb2575050505f198101908111611cd357611f328591611fae93611ef5565b9190565b611fae949293611fce926001600160d01b039091169190613189565b5050611f0f565b65ffffffffffff83811691161490505f611f8c565b600160401b811015610d43578060016120069201845583611ef5565b8154905f199060031b1b191690555f611f6a565b5f9190829160405161204f816110fc6020820194639f86fd8560e01b865230602484015260406044840152606483019061058f565b51915afa5061205c6119a3565b8051810160408282031261031a5761207660208301611572565b916040810151916001600160401b03831161031a5761209c926020809201920101611668565b90156120a55790565b805190811561031a57602001fd5b8054806120e257505f5b6001600160d01b03811615611d5b5760016120d89201611ef5565b90549060031b1c90565b5f19908082810111611cd357825f5260205f2001015460301c6120bd565b9060405161210d81610d28565b915465ffffffffffff8116835260301c6020830152565b91908254905f8291600584116121c2575b612140935085612cb4565b9081156121b6576121af6121a66121a06120d861217261216d61216288611f4a565b895f5260205f200190565b612100565b966001612199602061218a8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101611ef5565b93611f4a565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926121cd81612b89565b8103908111611cd35761214093865f526122016121f68360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff85161015612217575091612135565b92915061222390611cc5565b90612135565b5f805160206132b583398151915260028154146122465760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161226f82612b50565b9193905083156122cd5761228f916001600160d01b031690600101611ef5565b90549060031b1c5b826122c3575b50506122a7575050565b6122bf915f52600360205260405f206103e342612b1e565b5050565b119050815f61229d565b50505f612297565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206132958339815191529060ff16611d5b575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206132958339815191529060ff905b541661244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f805160206132958339815191529060ff906123eb565b6001600160a01b0381165f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a3905f805160206132958339815191529060ff906123eb565b5f8181525f80516020613295833981519152602081815260408084206001600160a01b038716855290915290912060ff906123eb565b5f8181525f80516020613295833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261031a5780356126138161031e565b9260208201356001600160401b03811161031a57610ff99201610dd6565b61263d918101906125fb565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156108bd575f91612750575b501561273e576126d26040916126cd612718946126b2612d16565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612e96565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661272e575b5001516001600160a01b031690565b9081166127225750565b61272b90612380565b50565b612737906122d5565b505f612709565b6040516362df054560e01b8152600490fd5b612769915060203d6020116108b6576108a88183610d7e565b5f612697565b9081602091031261031a57610ff99061157f565b90600163ffffffff80931601918211611cd357565b9180511561286657806020806127b39351830101910161276f565b916127be83826130c6565b926127cf845165ffffffffffff1690565b9065ffffffffffff808516921682811461285a5782119182612805575b50506127fc57610ff99250612ff6565b50506020015190565b9091506128128354611f4a565b63ffffffff83161491821561282b575b50505f806127ec565b6128529192506128466128406121f692612783565b856130c6565b5165ffffffffffff1690565b115f80612822565b50505050506020015190565b50610ff991612ff6565b60405190608082018281106001600160401b03821117610d4357604052606080838181528160208201528160408201520152565b9060208282031261031a5781516001600160401b039283821161031a57019060808282031261031a576128d5610d9f565b92825181811161031a57826128eb918501611668565b8452602083015181811161031a5782612905918501611668565b6020850152604083015181811161031a5782612922918501611668565b6040850152606083015190811161031a5761293d9201611668565b606082015290565b9081602091031261031a575190565b60409065ffffffffffff610ff99493168152816020820152019061058f565b9391909361297f612870565b93805180612a4e575b50506129c992939460206129a86112e96112e95f5460018060a01b031690565b8188015190604051808098819463810da75d60e01b83528960048401612954565b03915afa9182156108bd57612a10945f93612a15575b50612a0490612a0493946129f860408a01518284611961565b9360608a015192611977565b90818082109118021890565b915190565b612a04935090612a3f612a049260203d602011612a47575b612a378183610d7e565b810190612945565b9350906129df565b503d612a2d565b6129c994955090602080612a669383010191016128a4565b93925f612988565b5f5460405163bd49c35f60e01b81529290602090849060049082906001600160a01b03165afa9283156108bd575f93612af5575b50610384612ae091612abf610384855f52600360205260405f2090565b935f52600460205260405f209060018060a01b03165f5260205260405f2090565b90818082109118021890818082109118021890565b612ae0919350612b166103849160203d602011612a4757612a378183610d7e565b939150612aa2565b65ffffffffffff90818111612b31571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612b615750505f905f905f90565b5f19918183810111611cd3575f5260205f2001015460019165ffffffffffff82169160301c90565b6001811115610ff957600181600160801b811015612ca2575b612c4a612c40612c36612c2c612c22612c18612c5697600488600160401b612c519a1015612c95575b640100000000811015612c88575b62010000811015612c7b575b610100811015612c6f575b6010811015612c63575b1015612c5b575b60030260011c612c11818b611ca7565b0160011c90565b612c11818a611ca7565b612c118189611ca7565b612c118188611ca7565b612c118187611ca7565b612c118186611ca7565b8093611ca7565b821190565b900390565b60011b612c01565b811c9160021b91612bfa565b60081c91811b91612bf0565b60101c9160081b91612be5565b60201c9160101b91612bd9565b60401c9160201b91612bcb565b50600160401b9050608082901c612ba2565b91905b838210612cc45750505090565b909192808316906001818518811c8301809311611cd357855f5265ffffffffffff808460205f20015416908516105f14612d03575050925b9190612cb7565b909493508101809111611cd35791612cfc565b612d1e613266565b612d26613266565b60015f805160206132b583398151915255565b60405190612d4682610d48565b5f6040838281528260208201520152565b81601f8201121561031a578051916020916001600160401b038411610d43578360051b9060405194612d8b85840187610d7e565b8552838086019282010192831161031a578301905b828210612dae575050505090565b8380918351612dbc8161031e565b815201910190612da0565b9060208282031261031a5781516001600160401b039283821161031a5701908181039260a0841261031a57606060405194612e0186610d48565b1261031a57604051612e1281610d48565b8351612e1d8161031e565b81526020840151612e2d8161031e565b60208201526040840151612e408161031e565b60408201528452606083015181811161031a5782612e5f918501612d57565b6020850152608083015190811161031a57612e7a9201612d57565b604082015290565b8051821015611f0a5760209160051b010190565b612eb290612ea2612d39565b5060208082518301019101612dc7565b8051519091906001600160a01b03161580612fdc575b612fca579060208101905f5b82518051821015612f4e576112e9612eef83612efc93612e82565b516001600160a01b031690565b15612f3c57612f1e612f1a612f15612eef848751612e82565b612456565b1590565b612f2a57600101612ed4565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015612fc1576112e9612eef83612f7593612e82565b15612fb057612f93612f1a612f8e612eef848751612e82565b6124c4565b612f9f57600101612f5a565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b506020820151511580612ec8575060408201515115612ec8565b908154905f829160058411613060575b613011935084612cb4565b8061303957505f905b6001600160d01b03821615611d5b57610ff99160016120d89201611ef5565b61305361304861305a92611f4a565b835f5260205f200190565b5460301c90565b9061301a565b919261306b81612b89565b8103908111611cd35761301193855f5265ffffffffffff808360205f20015416908516105f1461309c575091613006565b9291506130a890611cc5565b90613006565b604051906130bb82610d28565b5f6020838281520152565b906130ef6130e9613110926130d96130ae565b506130e26130ae565b5084611ef5565b50612100565b91600165ffffffffffff845116936020828060d01b03910151169101611ef5565b9054906040519261312084610d28565b835260031b1c602082015290565b8054600160401b811015610d435761314b91600182018155611ef5565b61317657815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b8054929392801561323c576131a06131ab91611f4a565b825f5260205f200190565b9182549265ffffffffffff9182851692811680841161322a578793036131f157506131ea92509065ffffffffffff82549181199060301b169116179055565b60301c9190565b91505061322591613211613203610dae565b65ffffffffffff9093168352565b6001600160d01b038616602083015261312e565b6131ea565b604051632520601d60e01b8152600490fd5b50906132619161324d613203610dae565b6001600160d01b038516602083015261312e565b5f9190565b60ff5f805160206132d58339815191525460401c161561328257565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220a7ecdea8d9b7feed4e2f0435b6284fc7fc6b2d0b98165e4c0e462e7440ce901364736f6c63430008190033","sourceMap":"7866:3473:94:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;7866:3473:94;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;7866:3473:94;;;;;;;;;;3551:87:23;-1:-1:-1;;;1134:40:32;;-1:-1:-1;3551:87:23;;;7866:3473:94;-1:-1:-1;7866:3473:94;;;-1:-1:-1;;;;;7866:3473:94;;;;;:::o;:::-;;;;;;-1:-1:-1;;7866:3473:94;;;;;;;;;;;:::i;:::-;;;3202:4:23;;;:::i;:::-;7866:3473:94;-1:-1:-1;7866:3473:94;;;;;2662:52:90;:43;7866:3473:94;;-1:-1:-1;7866:3473:94;;;;;;;;;;;;;;;;;2662:43:90;:52;:::i;:::-;3458;3454:102;;7866:3473:94;3656:53:90;7866:3473:94;;-1:-1:-1;7866:3473:94;;;;3566:74:90;7866:3473:94;3566:43:90;7866:3473:94;;-1:-1:-1;7866:3473:94;;;;;;;;;;;;;;;;;3566:43:90;819:34:75;837:15;819:34;:::i;:::-;3566:74:90;;:::i;:::-;-1:-1:-1;;7866:3473:94;;;;;-1:-1:-1;;;;;7866:3473:94;;3656:53:90;7866:3473:94;3454:102:90;7866:3473:94;;-1:-1:-1;;;3533:12:90;;7866:3473:94;;3533:12:90;7866:3473:94;;;;;;;;;;;;;;;;;;3202:4:23;;;:::i;:::-;7866:3473:94;-1:-1:-1;7866:3473:94;2910:15:90;7866:3473:94;;;-1:-1:-1;7866:3473:94;;2901:36:90;;2897:98;;7866:3473:94;-1:-1:-1;7866:3473:94;2103:13:90;7866:3473:94;;;2103:34:90;7866:3473:94;-1:-1:-1;7866:3473:94;2103:34:90;:::i;:::-;3009;3005:84;;3099:25;3171:35;3099:25;:56;3171:35;3099:25;;;7866:3473:94;;2103:13:90;7866:3473:94;;;;;;;3099:56:90;-1:-1:-1;;7866:3473:94;;;;;;;;;;;;3171:35:90;;;;7866:3473:94;3005:84:90;7866:3473:94;-1:-1:-1;;;3066:12:90;;7866:3473:94;;3066:12:90;2897:98;7866:3473:94;-1:-1:-1;;;2960:24:90;;7866:3473:94;;2960:24:90;7866:3473:94;;;;;;-1:-1:-1;;7866:3473:94;;;;;;1537:38:89;-1:-1:-1;;;;;7866:3473:94;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;7866:3473:94;;;;;;;;-1:-1:-1;;7866:3473:94;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;7866:3473:94;;;;;2662:52:90;:43;7866:3473:94;;;;;:::i;:::-;;;-1:-1:-1;7866:3473:94;;;;;-1:-1:-1;7866:3473:94;;;;;;;;;;;;;;;;;2662:52:90;7866:3473:94;;;;;;;;;;;;-1:-1:-1;;7866:3473:94;;;;;;1632:54:89;-1:-1:-1;;;;;7866:3473:94;;;;;;;;;;;;-1:-1:-1;;7866:3473:94;;;;;;:::i;:::-;449:5:95;-1:-1:-1;;;;;7866:3473:94;435:10:95;:19;431:71;;8670:64:94;7866:3473;;;-1:-1:-1;7866:3473:94;8670:13;7866:3473;;;-1:-1:-1;7866:3473:94;8670:64;:::i;:::-;7866:3473;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:94;431:71:95;7866:3473:94;;-1:-1:-1;;;477:14:95;;7866:3473:94;;477:14:95;7866:3473:94;;;;;;-1:-1:-1;;7866:3473:94;;;;;;1743:56:89;-1:-1:-1;;;;;7866:3473:94;;;;;;;;;;;;-1:-1:-1;;7866:3473:94;;;;;;-1:-1:-1;;;;;7866:3473:94;;;;;;;;3361:103:30;;;:::i;:::-;7866:3473:94;;-1:-1:-1;;;4285:48:89;;4322:10;7866:3473:94;4285:48:89;;7866:3473:94;;;;;-1:-1:-1;;;;;4295:16:89;7866:3473:94;4285:48:89;;;;;;;-1:-1:-1;4285:48:89;;;7866:3473:94;4284:49:89;;4280:99;;-1:-1:-1;;;;;7866:3473:94;-1:-1:-1;;4322:10:89;297:2:101;7866:3473:94;;267:46:101;4459:27:89;;;;7866:3473:94;;4459:15:89;7866:3473:94;;;;;;;4459:27:89;7866:3473:94;4459:37:89;4455:87;;4654:38;4552:27;4654:38;4552:27;;;7866:3473:94;;4459:15:89;7866:3473:94;;;;;;;4552:27:89;7866:3473:94;4631:6:89;;;;:::i;:::-;7866:3473:94;;;;;;;;;;;;;4654:38:89;;;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;7866:3473:94;3860:283:30;3426:1;7866:3473:94;4280:99:89;7866:3473:94;;-1:-1:-1;;;4356:12:89;;7866:3473:94;;4356:12:89;4285:48;;;;7866:3473:94;4285:48:89;7866:3473:94;4285:48:89;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;7866:3473:94:-;;;;;;-1:-1:-1;;7866:3473:94;;;;;;-1:-1:-1;7866:3473:94;-1:-1:-1;;;;;;;;;;;7866:3473:94;;;4919:24:23;7866:3473:94;-1:-1:-1;7866:3473:94;4919:24:23;7866:3473:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;7866:3473:94;;;;;;322:32:82;-1:-1:-1;;;;;7866:3473:94;;;;;;;;;;;;-1:-1:-1;;7866:3473:94;;;;5350:25:23;7866:3473:94;;;;;;;:::i;:::-;;-1:-1:-1;7866:3473:94;-1:-1:-1;;;;;;;;;;;7866:3473:94;;3202:4:23;4919:24;7866:3473:94;-1:-1:-1;7866:3473:94;4919:24:23;7866:3473:94;3202:4:23;:::i;:::-;5350:25;:::i;7866:3473:94:-;;;;;;-1:-1:-1;;7866:3473:94;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;7866:3473:94;;6441:34:23;6437:102;;6549:37;7866:3473:94;;;6549:37:23;:::i;6437:102::-;7866:3473:94;;-1:-1:-1;;;6498:30:23;;7866:3473:94;;6498:30:23;7866:3473:94;;;;;;-1:-1:-1;;7866:3473:94;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;966:10:28;-1:-1:-1;7866:3473:94;;;;;;;;;;1356:26:89;;7866:3473:94;;4468:23:23;4464:108;;-1:-1:-1;4861:4:89;7866:3473:94;-1:-1:-1;;;;;7866:3473:94;;;;;;4861:13:89;;4857:63;;-1:-1:-1;;;;;;7866:3473:94;;;4861:4:89;7866:3473:94;4958:14:89;-1:-1:-1;;4958:14:89;4861:4;-1:-1:-1;;;;;;;;;;;7866:3473:94;;4464:108:23;7866:3473:94;;;;4514:47:23;;;;;;966:10:28;7866:3473:94;4514:47:23;;7866:3473:94;;;;;4514:47:23;7866:3473:94;;;;;;-1:-1:-1;;7866:3473:94;;;;;;-1:-1:-1;7866:3473:94;2103:13:90;7866:3473:94;;;2103:34:90;7866:3473:94;-1:-1:-1;7866:3473:94;2103:34:90;:::i;7866:3473:94:-;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:94;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;7866:3473:94;;;;-1:-1:-1;;;;;7866:3473:94;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;7866:3473:94;;;;;;;4301:16:26;7866:3473:94;;4726:16:26;;:34;;;;7866:3473:94;4805:1:26;4790:16;:50;;;;7866:3473:94;4855:13:26;:30;;;;7866:3473:94;4851:91:26;;;-1:-1:-1;;;;;;;;;;;7866:3473:94;;-1:-1:-1;;7866:3473:94;;;;;718:4:82;;4951:18:26;4979:67;;718:4:82;:::i;:::-;5066:101:26;;7866:3473:94;5066:101:26;-1:-1:-1;;;;;;;;;;;7866:3473:94;;-1:-1:-1;;;;7866:3473:94;;;;;-1:-1:-1;7866:3473:94;;5142:14:26;;7866:3473:94;;5142:14:26;7866:3473:94;4979:67:26;-1:-1:-1;;;;;;;;;;;7866:3473:94;;-1:-1:-1;;;;7866:3473:94;-1:-1:-1;;;7866:3473:94;;;718:4:82;:::i;4851:91:26:-;7866:3473:94;;-1:-1:-1;;;4908:23:26;;7866:3473:94;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;7866:3473:94;;;;;;-1:-1:-1;;7866:3473:94;;;;;;8038:36;-1:-1:-1;;;;;7866:3473:94;;;;;;;;;;;;-1:-1:-1;;7866:3473:94;;;;;;;952:44:90;7866:3473:94;;;;;;;;;-1:-1:-1;;7866:3473:94;;;;;;;1253:6:89;7866:3473:94;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:94;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;7866:3473:94;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;7866:3473:94;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:94;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;7866:3473:94;;;;;;-1:-1:-1;;7866:3473:94;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;7866:3473:94;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;7866:3473:94;;;;;;:::i;:::-;;;-1:-1:-1;;;;;7866:3473:94;;;;;;;1870:60:90;7866:3473:94;;;;;;:::i;:::-;;;;-1:-1:-1;7866:3473:94;1870:13:90;7866:3473:94;;;-1:-1:-1;7866:3473:94;1870:60:90;:::i;7866:3473:94:-;;;;;;-1:-1:-1;;7866:3473:94;;;;;;;1356:26:89;7866:3473:94;;;;;;;;;-1:-1:-1;;7866:3473:94;;;;;;7987:45;-1:-1:-1;;;;;7866:3473:94;;;;;;;;;;;;-1:-1:-1;;7866:3473:94;;;;;;;795:35:90;7866:3473:94;;;;;;;;;-1:-1:-1;;7866:3473:94;;;;;;;;-1:-1:-1;;;;;7866:3473:94;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:94;;;;;;3901:31:23;7866:3473:94;;;;;:::i;:::-;;;-1:-1:-1;7866:3473:94;-1:-1:-1;;;;;;;;;;;7866:3473:94;;;-1:-1:-1;7866:3473:94;;;;;;;;;;;;;;;;;3901:31:23;7866:3473:94;;;;;;;;;;;;;-1:-1:-1;;7866:3473:94;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:94;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;2399:78:90;:43;7866:3473:94;;;:::i;:::-;;;;;-1:-1:-1;7866:3473:94;;;;;-1:-1:-1;7866:3473:94;;;;;;;;;;;;;;;;;2399:43:90;:78;:::i;7866:3473:94:-;;;;;;-1:-1:-1;;7866:3473:94;;;;;;8080:45;-1:-1:-1;;;;;7866:3473:94;;;;;;;;;;;;-1:-1:-1;;7866:3473:94;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;7866:3473:94;;;;-1:-1:-1;7866:3473:94;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:88;;;;477:31;416:25;;:::i;:::-;7866:3473:94;;;;;;;;;;477:31:88;;7866:3473:94;;;;;;;;;;;:::i;:::-;477:31:88;7866:3473:94;;477:31:88;;;;;;:::i;:::-;518:79;;;7866:3473:94;518:79:88;;7866:3473:94;;;;;;-1:-1:-1;;7866:3473:94;;;;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:94;;;;;;;-1:-1:-1;;;;;404:28:82;7866:3473:94;;;;;;;;;;-1:-1:-1;;7866:3473:94;;;;;;1439:41:89;-1:-1:-1;;;;;7866:3473:94;;;;;;;;;;;;-1:-1:-1;;7866:3473:94;;;;;;-1:-1:-1;7866:3473:94;2009:67:89;7866:3473:94;;;;-1:-1:-1;7866:3473:94;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:94;;;;5767:26:23;7866:3473:94;;;;;;;:::i;:::-;;-1:-1:-1;7866:3473:94;-1:-1:-1;;;;;;;;;;;7866:3473:94;;3202:4:23;4919:24;7866:3473:94;-1:-1:-1;7866:3473:94;4919:24:23;7866:3473:94;3202:4:23;:::i;:::-;5767:26;:::i;7866:3473:94:-;;;;;;-1:-1:-1;;7866:3473:94;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;7866:3473:94;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;7866:3473:94;;;;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;-1:-1:-1;7866:3473:94;;;5246:21:89;;:13;;-1:-1:-1;;;;;7866:3473:94;5246:13:89;7866:3473:94;;-1:-1:-1;;;;;7866:3473:94;;;5246:21:89;7866:3473:94;;-1:-1:-1;;;5246:23:89;;7866:3473:94;;;;;5246:23:89;;;;;;;-1:-1:-1;5246:23:89;;;7866:3473:94;-1:-1:-1;;;;;;7866:3473:94;;;5232:10:89;:37;5228:87;;5341:4;7866:3473:94;-1:-1:-1;;;;;7866:3473:94;;;;5355:469:89;;7866:3473:94;-1:-1:-1;;7866:3473:94;;;;;;;;;;;;;;;;5839:55:89;;7866:3473:94;;;;5839:55:89;;;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;7866:3473:94;3860:283:30;5355:469:89;7866:3473:94;;;;5435:94:89;;;;7866:3473:94;5435:94:89;;;;;;;;;;;;7866:3473:94;5435:94:89;;;:::i;:::-;;7866:3473:94;;5435:94:89;;;;;;:::i;:::-;7866:3473:94;5548:9:89;:51;5544:118;;-1:-1:-1;5839:55:89;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;7866:3473:94;;-1:-1:-1;;;5626:21:89;;7866:3473:94;;5626:21:89;5228:87;7866:3473:94;;-1:-1:-1;;;5292:12:89;;7866:3473:94;;5292:12:89;5246:23;;;;;7866:3473:94;5246:23:89;7866:3473:94;5246:23:89;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;7866:3473:94;;;;;;-1:-1:-1;;7866:3473:94;;;;;;;;;:::i;:::-;;;:::i;:::-;449:5:95;-1:-1:-1;;;;;7866:3473:94;435:10:95;:19;431:71;;9461:43:94;:82;7866:3473;;;-1:-1:-1;7866:3473:94;;;;;-1:-1:-1;7866:3473:94;;;;;;;;;;;;;;;;;9461:43;:82;:::i;7866:3473::-;;;;;;-1:-1:-1;;7866:3473:94;;;;;;;;-1:-1:-1;;;;;7866:3473:94;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:94;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;7866:3473:94;;;;;;;1150:7:89;7866:3473:94;;;;;;;;;-1:-1:-1;;7866:3473:94;;;;;;;2700:1:89;7866:3473:94;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;9556:591::-;;;;7866:3473;9556:591;7866:3473;;;;9870:147;;;;;;;;;;;7866:3473;;;;;;;;;;;;;;;;;9870:147;;7866:3473;;;;;;;-1:-1:-1;;;;;7866:3473:94;;;;;9778:291;7866:3473;9802:229;7866:3473;;;9802:229;:::i;:::-;9870:147;7866:3473;;;9778:291;;;;;;:::i;:::-;10080:61;;;9556:591;:::o;10080:61::-;7866:3473;;;;;;;;9870:147;10113:17;;7866:3473;9870:147;10113:17;;;;;:::i;7866:3473::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;7866:3473:94;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:94;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;10153:1184::-;7866:3473;;-1:-1:-1;;;10370:99:94;;-1:-1:-1;;;;;7866:3473:94;;;10370:99;;;7866:3473;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7866:3473:94;;;10389:20;7866:3473;;10370:99;;;;;;;;;;;10153:1184;-1:-1:-1;7866:3473:94;;-1:-1:-1;;;10563:32:94;;;7866:3473;10370:99;7866:3473;;;;10563:32;;;;;;;10523:84;10563:32;10370:99;10563:32;;;;;;;10153:1184;-1:-1:-1;7866:3473:94;;-1:-1:-1;;;10523:84:94;;-1:-1:-1;;;;;7866:3473:94;;;10370:99;10523:84;;7866:3473;;;;;;;;;;;;;-1:-1:-1;7866:3473:94;;;;;;;;;10523:84;;10534:11;;7866:3473;10523:84;;;;;;;10370:99;10523:84;;;10153:1184;10651:50;;;;;10752:68;10651:50;;;;:::i;:::-;10752:68;;:::i;:::-;7866:3473;;;10848:21;;;:52;;;10153:1184;10848:85;;;;10153:1184;10848:142;;;;10153:1184;10831:500;;10153:1184;;;;;;:::o;10831:500::-;11022:298;7866:3473;;11022:298;7866:3473;;;;:::i;:::-;;;;10563:32;11050:256;;7866:3473;;11050:256;;7866:3473;;11050:256;;7866:3473;;;11022:298;;;10563:32;11022:298;;;:::i;10848:142::-;7866:3473;;;10953:37;;10848:142;;:85;7866:3473;;;10904:29;;10848:85;;:52;7866:3473;;;10873:27;;10848:52;;10523:84;10752:68;10523:84;;;;;;;;;10370:99;10523:84;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;10563:32;;;;;;;;;;;;;;:::i;:::-;;;;10370:99;;;;;;;;;;;;;;:::i;:::-;;;;;1742:195:90;;1870:60;1742:195;;-1:-1:-1;7866:3473:94;1870:13:90;7866:3473:94;;;-1:-1:-1;7866:3473:94;1870:60:90;:::i;2207:277::-;-1:-1:-1;7866:3473:94;;;2399:21:90;7866:3473:94;;;;;;;;-1:-1:-1;;;;;7866:3473:94;;;;;;;;;2399:78:90;;2207:277;;2399:78;:::i;7866:3473:94:-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;7866:3473:94;;;;:::o;:::-;;;:::o;8747:485::-;8935:219;8747:485;8959:157;8747:485;;;;7866:3473;;;;;9011:91;;;;;;;;;;;7866:3473;;;;;;;9011:91;;;;;:::i;:::-;8959:157;:::i;7866:3473::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:94;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;7866:3473:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:89:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;7866:3473:94;;:::i;:::-;;;;3086:20:89;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:89;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;7866:3473:94;;;;;;;;;;3430:180:89;;467:2:101;7866:3473:94;3430:180:89;;;;;:::i;:::-;;7866:3473:94;3444:31:89;-1:-1:-1;;;;;7866:3473:94;3430:180:89;;;;;;;-1:-1:-1;3430:180:89;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;7866:3473:94;;;-1:-1:-1;;;;;;7866:3473:94;3248:161:89;3354:37;;;7866:3473:94;3248:161:89;7866:3473:94;;;;;;;;;;3248:161:89;;;;;;;:::i;:::-;;7866:3473:94;3262:29:89;-1:-1:-1;;;;;7866:3473:94;3248:161:89;;;;;;;-1:-1:-1;3248:161:89;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;7866:3473:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;8889:1:99;7866:3473:94;;;;;;;:::o;:::-;;:::i;3740:389:89:-;3918:5;7866:3473:94;;;-1:-1:-1;;;3853:71:89;;;-1:-1:-1;;;;;7866:3473:94;;;3853:71:89;;;7866:3473:94;;;;;;;;3740:389:89;;7866:3473:94;3853:71:89;;7866:3473:94;;3853:71:89;7866:3473:94;;;3867:29:89;7866:3473:94;;3853:71:89;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;7866:3473:94;;;3852:181:89;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;7866:3473:94;;3945:88:89;;;-1:-1:-1;;;;;7866:3473:94;;3853:71:89;3945:88;;7866:3473:94;467:2:101;7866:3473:94;;;;;;;;-1:-1:-1;7866:3473:94;;;;;;;;3959:31:89;7866:3473:94;3945:88:89;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:89;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;4148:103:23;966:10:28;-1:-1:-1;7866:3473:94;;;;;;;;;952:44:90;;7866:3473:94;;3901:31:23;7866:3473:94;;4468:23:23;4464:108;;4148:103;:::o;:::-;966:10:28;-1:-1:-1;7866:3473:94;;;;;;;;;795:35:90;;7866:3473:94;;3901:31:23;7866:3473:94;4148:103:23;-1:-1:-1;7866:3473:94;;;-1:-1:-1;;;;;;;;;;;7866:3473:94;;;;;;;;966:10:28;7866:3473:94;;;;;;;;;3901:31:23;7866:3473:94;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7866:3473:94;;-1:-1:-1;7866:3473:94;;;-1:-1:-1;7866:3473:94;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;;7866:3473:94;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:94;;;;;;;;:::o;6246:584:99:-;;;;;6360:12;;;7866:3473:94;;;6360:24:99;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;7866:3473:94;;;;;;6578:12:99;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:99;;;-1:-1:-1;;;;;7866:3473:94;;;;;;;6644:21:99;;;:29;:21;;:::i;:29::-;6798:25;6246:584;:::o;6600:188::-;6753:24;;7866:3473:94;;8310:38:73;;-1:-1:-1;;;;;7866:3473:94;;;;;8310:38:73;:::i;:::-;6753:24:99;;;:::i;6604:::-;7866:3473:94;;;;;;6614:14:99;;-1:-1:-1;6604:24:99;;;6356:75;-1:-1:-1;;;7866:3473:94;;;;;;6360:12:99;7866:3473:94;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:99;;;525:595:95;-1:-1:-1;525:595:95;;;;7866:3473:94;;716:88:95;;7866:3473:94;716:88:95;;;;;;;;;783:4;716:88;;;7866:3473:94;;;;;;;;;;;:::i;716:88:95:-;698:107;;;;;;;:::i;:::-;7866:3473:94;;857:45:95;;7866:3473:94;;;;;;;;716:88:95;857:45;;7866:3473:94;:::i;:::-;;;;;;;-1:-1:-1;;;;;7866:3473:94;;;;;857:45:95;716:88;857:45;;;7866:3473:94;;;;:::i;:::-;916:8:95;;912:175;;525:595;:::o;912:175::-;7866:3473:94;;944:22:95;;;940:36;;716:88;990:87;;10580:184:99;7866:3473:94;;10446:8:73;;;:63;-1:-1:-1;10446:63:73;-1:-1:-1;;;;;7866:3473:94;;10726:7:99;7866:3473:94;;10736:12:99;:17;:12;;:17;:::i;:::-;7866:3473:94;;;;;;10580:184:99;:::o;10446:63:73:-;7866:3473:94;;;;;;;;;;13267:109:99;-1:-1:-1;13267:109:99;;-1:-1:-1;13267:109:99;;;7866:3473:94;;;10446:63:73;;7866:3473:94;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;8406:869:99:-;;;7866:3473:94;;8620:15:99;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;7866:3473:94;9219:31:99;7866:3473:94;9130:48:99;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;9130:48;7866:3473:94;:::i;:::-;;9176:1:99;7866:3473:94;9232:17:99;7866:3473:94;;;;;;;;9232:17:99;;7866:3473:94;-1:-1:-1;;;;;7866:3473:94;;;;9219:12:99;;:31;:::i;7866:3473:94:-;9259:7:99;;:::i;:::-;7866:3473:94;;;;9252:15:99;9176:1;;9188:80;;8406:869::o;9010:62::-;8578:11;;-1:-1:-1;8578:11:99;;-1:-1:-1;8578:11:99;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;7866:3473:94;;;;;;;8939:60:99;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;7866:3473:94;;;;;;8759:49:99;7866:3473:94;;;;8753:55:99;7866:3473:94;;;8753:55:99;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;3470:384:30;-1:-1:-1;;;;;;;;;;;1991:1:30;7866:3473:94;;3670:20:30;3666:88;;1991:1;7866:3473:94;;3470:384:30:o;3666:88::-;7866:3473:94;;-1:-1:-1;;;3713:30:30;;;;;4758:308:90;;7866:3473:94;-1:-1:-1;7866:3473:94;4889:13:90;7866:3473:94;;;-1:-1:-1;7866:3473:94;11124:30:99;;;;:::i;:::-;11173;;;-1:-1:-1;11173:30:99;;;;11182:17;;-1:-1:-1;;;;;7866:3473:94;;11182:12:99;;:17;:::i;:::-;7866:3473:94;;;4889:13:90;7866:3473:94;;11173:30:99;4947::90;;;11173::99;4943:117:90;;;;4758:308;;:::o;4943:117::-;4993:56;7866:3473:94;-1:-1:-1;7866:3473:94;4889:13:90;7866:3473:94;;;-1:-1:-1;7866:3473:94;819:34:75;837:15;819:34;:::i;4993:56:90:-;4758:308;;:::o;4947:30::-;4957:20;;-1:-1:-1;4947:30:90;;;;11173::99;;;-1:-1:-1;11173:30:99;;7270:387:23;-1:-1:-1;;;;;7866:3473:94;;-1:-1:-1;7866:3473:94;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;7866:3473:94;;;;-1:-1:-1;7866:3473:94;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:94;;;;;;;;;;-1:-1:-1;;7866:3473:94;7509:4:23;7866:3473:94;;;966:10:28;;-1:-1:-1;;;;;7866:3473:94;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;7866:3473:94;;-1:-1:-1;7866:3473:94;;;;;;;;;1356:26:89;;-1:-1:-1;;;;;;;;;;;2887:71:23;7866:3473:94;;3901:31:23;7866:3473:94;;;;-1:-1:-1;7866:3473:94;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:94;;;;;;;;;;-1:-1:-1;;7866:3473:94;7509:4:23;7866:3473:94;;;966:10:28;;-1:-1:-1;;;;;7866:3473:94;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;7866:3473:94;;-1:-1:-1;7866:3473:94;;;;;;;;;795:35:90;;-1:-1:-1;;;;;;;;;;;2887:71:23;7866:3473:94;;3901:31:23;7866:3473:94;7270:387:23;-1:-1:-1;;;;;7866:3473:94;;-1:-1:-1;7866:3473:94;;;;;;;;;952:44:90;;-1:-1:-1;;;;;;;;;;;2887:71:23;7866:3473:94;;3901:31:23;7866:3473:94;7270:387:23;-1:-1:-1;7866:3473:94;;;-1:-1:-1;;;;;;;;;;;7866:3473:94;;;;;;;;-1:-1:-1;;;;;7866:3473:94;;;;;;;;;;;;3901:31:23;7866:3473:94;7892:388:23;-1:-1:-1;7866:3473:94;;;-1:-1:-1;;;;;;;;;;;7866:3473:94;;;;;;;;-1:-1:-1;;;;;7866:3473:94;;;;;;;;;;;;;;;;-1:-1:-1;7866:3473:94;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:94;;;;;;;;;;-1:-1:-1;;7866:3473:94;;;966:10:28;;-1:-1:-1;;;;;7866:3473:94;;8155:40:23;-1:-1:-1;;8155:40:23;7866:3473:94;8209:11:23;:::o;7866:3473:94:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;7866:3473:94;;;;;;;;:::i;5907:716:89:-;6030:34;5907:716;6030:34;;;;:::i;:::-;7866:3473:94;;-1:-1:-1;;;6080:41:89;;-1:-1:-1;;;;;7866:3473:94;;;6080:41:89;;;7866:3473:94;;;;;6080:41:89;7866:3473:94;;;6090:13:89;7866:3473:94;;6080:41:89;;;;;;;-1:-1:-1;6080:41:89;;;5907:716;6079:42;;6075:90;;6266:27;7866:3473:94;2684:111:30;6210:14:89;7866:3473:94;2684:111:30;;;:::i;:::-;7866:3473:94;;;;;;-1:-1:-1;;;;;7866:3473:94;;-1:-1:-1;7866:3473:94;;;-1:-1:-1;7866:3473:94;;6210:14:89;6266:27;:::i;:::-;6080:41;6311:15;;7866:3473:94;;;;-1:-1:-1;;;;;;7866:3473:94;-1:-1:-1;;;;;7866:3473:94;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:94;;;;6337:143:89;;5907:716;-1:-1:-1;6493:28:89;7866:3473:94;-1:-1:-1;;;;;7866:3473:94;;;;;;;6489:128:89;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;7866:3473:94;;-1:-1:-1;;;6144:10:89;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;7866:3473:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;7558:604:99:-;;7866:3473:94;;7686:17:99;7682:83;;7866:3473:94;7789:27:99;7866:3473:94;7789:27:99;7866:3473:94;;7789:27:99;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;7866:3473:94;;;;;;;;;;;;;;;;7888:22:99;;;7884:77;;7975:21;-1:-1:-1;7975:84:99;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;7866:3473:94;8075:24:99;:::o;7975:84::-;7866:3473:94;;;8009:16:99;7866:3473:94;;8009:16:99;:::i;:::-;7866:3473:94;;;8001:24:99;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;7866:3473:94;;;;;8029:29:99;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;7866:3473:94;7926:24:99;:::o;7682:83::-;7726:28;;;;:::i;7866:3473:94:-;;;;;;;;;;-1:-1:-1;;;;;7866:3473:94;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:94;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;3722:766:90:-;;;;;7866:3473:94;;:::i;:::-;;;;3962:16:90;3958:92;;3722:766;7866:3473:94;;4107:67:90;7866:3473:94;;;4146:27:90;4107;:13;7866:3473:94;-1:-1:-1;7866:3473:94;;;;;;;;;4107:27:90;4146;;;;7866:3473:94;;;;;;;;;;;4107:67:90;;;;;;;:::i;:::-;;;;;;;;;;4081:355;4107:67;-1:-1:-1;4107:67:90;;;3722:766;4260:28;4311:93;4260:28;4192:230;4260:28;;4222:67;7866:3473:94;4260:28:90;;;4222:67;;;:::i;:::-;4367:36;;;;;4311:93;;:::i;:::-;4192:230;3463:5:70;;;;3066;;7866:3473:94;3060:42:70;3371:111;;4081:355:90;4450:21;;3722:766;:::o;4107:67::-;4192:230;4107:67;;;;4311:93;4107:67;4146:27;4107:67;4146:27;4107:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;3958:92;4107:67;4008:31;;;;;;;;;;;;;;:::i;:::-;3958:92;;;;;4494:258;4635:5;7866:3473:94;;;-1:-1:-1;;;4628:27:90;;7866:3473:94;4494:258:90;4628:27;;7866:3473:94;;4628:27:90;;7866:3473:94;;-1:-1:-1;;;;;7866:3473:94;4628:27:90;;;;;;;4635:5;4628:27;;;4494:258;2103:25;2662:43;:52;2103:25;:34;:25;;7866:3473:94;;2103:13:90;7866:3473:94;;;;;;;2103:34:90;7866:3473:94;4635:5:90;7866:3473:94;4628:27:90;;7866:3473:94;;4635:5:90;7866:3473:94;;;;;;;;;;;;;;;;;2662:52:90;3463:5:70;;;;;3066;;7866:3473:94;3060:42:70;3463:5;;;;;3066;;7866:3473:94;3060:42:70;4494:258:90;:::o;4628:27::-;2662:52;4628:27;;;;2662:43;4628:27;;;;;;;;;;;:::i;:::-;;;;;;14296:213:71;7866:3473:94;14374:24:71;;;;14370:103;;7866:3473:94;14296:213:71;:::o;14370:103::-;7866:3473:94;;;;14421:41:71;;;;;;14452:2;14421:41;;;7866:3473:94;;;;;14421:41:71;10695:389:73;7866:3473:94;;10871:8:73;;;10895:20;;10833:17;10895:20;10833:17;10895:20;10833:17;10895:20;:::o;10867:211::-;7866:3473:94;;;;;;;;;;10833:17:73;13267:109:99;;10833:17:73;13267:109:99;;;7866:3473:94;11014:1:73;7866:3473:94;;;;;;;11030:37:73;:::o;18080:5181:70:-;18246:1;18241:6;;;18237:53;;18246:1;19217:14;-1:-1:-1;;;19278:16:70;;;19274:92;;18080:5181;22827:18;22717;22607;22498;22387;22278;23216:28;19383:15;19898:6;19383:15;-1:-1:-1;;;23237:6:70;19383:15;;;19379:90;;18080:5181;19493:7;19486:15;;;19482:90;;18080:5181;19596:7;19589:15;;;19585:89;;18080:5181;19698:6;19691:14;;;19687:87;;18080:5181;19798:6;19791:14;;;19787:87;;18080:5181;19891:14;;19887:61;;18080:5181;20374:1;7866:3473:94;18246:1:70;7866:3473:94;22284:6:70;;;;:::i;:::-;7866:3473:94;;;;;22278:18:70;22393:6;;;;:::i;22387:18::-;22504:6;;;;:::i;22498:18::-;22613:6;;;;:::i;22607:18::-;22723:6;;;;:::i;22717:18::-;22833:6;;;;:::i;22827:18::-;23237:6;;;:::i;:::-;23232:11;;;7866:3473:94;23216:28:70;7866:3473:94;;18080:5181:70;:::o;19887:61::-;18246:1;7866:3473:94;19887:61:70;;19787:87;7866:3473:94;;;;;19787:87:70;;;19687;7866:3473:94;;;;;19687:87:70;;;19585:89;7866:3473:94;;;;;19585:89:70;;;19482:90;7866:3473:94;;;;;19482:90:70;;;19379;7866:3473:94;;;;;19379:90:70;;;19274:92;-1:-1:-1;;;;7866:3473:94;-1:-1:-1;7866:3473:94;;;;19274:92:70;;12497:447:99;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;3721:5:70;;;;;;7866:3473:94;;3731:5:70;;;7866:3473:94;;;;;;;;;13267:109:99;-1:-1:-1;13267:109:99;7866:3473:94;13267:109:99;;;-1:-1:-1;13267:109:99;;7866:3473:94;;;;;-1:-1:-1;12771:136:99;7866:3473:94;;;12830:10:99;;12771:136;;12687:230;;;;12771:136;7866:3473:94;;;;;;;;;;;12771:136:99;;;6893:76:26;;;:::i;:::-;;;:::i;:::-;1949:1:30;-1:-1:-1;;;;;;;;;;;7866:3473:94;6893:76:26:o;7866:3473:94:-;;;;;;;:::i;:::-;-1:-1:-1;7866:3473:94;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:94;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:94;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;5072:1269:90:-;5220:30;5072:1269;7866:3473:94;;:::i;:::-;;5220:30:90;7866:3473:94;;;5220:30:90;;;;;;:::i;:::-;5278:17;;7866:3473:94;5278:17:90;;7866:3473:94;-1:-1:-1;;;;;7866:3473:94;5278:54:90;;:178;;5072:1269;5261:258;;5534:9;5220:30;5549:33;;;5278:17;5591:3;5549:33;;7866:3473:94;;5545:44:90;;;;;5614:36;;;:50;:36;;:::i;:::-;7866:3473:94;-1:-1:-1;;;;;7866:3473:94;;;5614:50:90;;5610:119;;5747:73;5748:72;5783:36;;:33;;;:36;:::i;:::-;5748:72;:::i;:::-;5747:73;;7866:3473:94;5747:73:90;5743:140;;7866:3473:94;;5534:9:90;;5743:140;7866:3473:94;;-1:-1:-1;;;5847:21:90;;;;;5610:119;7866:3473:94;;-1:-1:-1;;;5691:23:90;;;;;5545:44;-1:-1:-1;5923:41:90;;-1:-1:-1;;5923:41:90;;;;5278:17;5973:3;5923:41;;7866:3473:94;;5919:52:90;;;;;5996:44;;;:58;:44;;:::i;:58::-;;5992:127;;6137:90;6138:89;6182:44;;:41;;;:44;:::i;:::-;6138:89;:::i;6137:90::-;6133:157;;7866:3473:94;;5908:9:90;;6133:157;7866:3473:94;;-1:-1:-1;;;6254:21:90;;;;;5992:127;7866:3473:94;;-1:-1:-1;;;6081:23:90;;;;;5919:52;;;;;;6317:17;5072:1269;:::o;5261:258::-;7866:3473:94;;-1:-1:-1;;;5488:20:90;;;;;5278:178;5353:33;5220:30;5353:33;;;7866:3473:94;5353:45:90;:102;5278:178;5353:102;5402:41;;;;;7866:3473:94;5402:53:90;5278:178;;6999:207:99;;7866:3473:94;;9737:15:73;-1:-1:-1;9762:18:73;9795:7;9801:1;9795:7;;9791:234;;6999:207:99;10049:53:73;;;;;:::i;:::-;10120:8;;;:63;-1:-1:-1;10120:63:73;;-1:-1:-1;;;;;7866:3473:94;;7168:7:99;7866:3473:94;;;7178:12:99;;:17;:12;;:17;:::i;10120:63:73:-;10135:41;10168:7;10135:48;10168:7;;:::i;:::-;10135:41;13267:109:99;;;;;;13089:293;;10135:41:73;7866:3473:94;;;;;10135:48:73;10120:63;;;9791:234;9838:14;;;;;:::i;:::-;7866:3473:94;;;;;;;10049:53:73;13267:109:99;;-1:-1:-1;13267:109:99;7866:3473:94;13267:109:99;;;-1:-1:-1;13267:109:99;;7866:3473:94;;;;;9870:48:73;9866:149;7866:3473:94;;;9938:10:73;9866:149;9791:234;;9866:149;9993:7;;;;;;:::i;:::-;9866:149;9791:234;;7866:3473:94;;;;;;;:::i;:::-;-1:-1:-1;7866:3473:94;;;;;;;:::o;11486:272:99:-;;7866:3473:94;11452:22:73;11718:31:99;11486:272;7866:3473:94;;:::i;:::-;;;;:::i;:::-;;11452:22:73;;:::i;:::-;7866:3473:94;;:::i;:::-;;11718:12:99;7866:3473:94;;;;;11731:17:99;7866:3473:94;;;;;11731:17:99;;7866:3473:94;;11718:12:99;;:31;:::i;:::-;7866:3473:94;;;;;;;;;:::i;:::-;;;;;;11731:17:99;11672:79;;7866:3473:94;11486:272:99;:::o;7866:3473:94:-;;;-1:-1:-1;;;7866:3473:94;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;7866:3473:94;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11657:922:73;7866:3473:94;;11657:922:73;;;11864:7;;;;11936;11916:28;11936:7;;:::i;:::-;11916:28;13267:109:99;;;;;;13089:293;;11916:28:73;7866:3473:94;;;;;;;;;;;;12103:13:73;;;12099:89;;12251:14;;;;;12285:19;;;;7866:3473:94;;;;;;;;;;;;;;;;;12285:19:73;7866:3473:94;;12423:25:73;;:::o;12247:163::-;7866:3473:94;;;12343:52:73;7866:3473:94;12353:41:73;7866:3473:94;;:::i;:::-;;;;;;;;12353:41:73;-1:-1:-1;;;;;7866:3473:94;;12353:41:73;;;7866:3473:94;12343:52:73;:::i;:::-;12247:163;;12099:89;7866:3473:94;;-1:-1:-1;;;12143:30:73;;;;;11860:713;7866:3473:94;;12479:52:73;7866:3473:94;12489:41:73;7866:3473:94;;:::i;12489:41:73:-;-1:-1:-1;;;;;7866:3473:94;;12489:41:73;;;7866:3473:94;12343:52:73;:::i;12479:::-;11870:1;12545:17;;:::o;7084:141:26:-;7866:3473:94;-1:-1:-1;;;;;;;;;;;7866:3473:94;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;7866:3473:94;;-1:-1:-1;;;7191:17:26;;;;","linkReferences":{},"immutableReferences":{"60120":[{"start":2349,"length":32}],"60123":[{"start":4427,"length":32}],"61074":[{"start":1953,"length":32},{"start":4484,"length":32}],"61077":[{"start":1250,"length":32},{"start":9830,"length":32}],"61080":[{"start":1612,"length":32},{"start":7136,"length":32},{"start":7439,"length":32}],"61083":[{"start":1823,"length":32},{"start":6983,"length":32},{"start":7565,"length":32}],"63974":[{"start":3772,"length":32},{"start":6042,"length":32}],"63976":[{"start":3215,"length":32},{"start":6203,"length":32}],"63978":[{"start":4175,"length":32}],"64680":[{"start":1686,"length":32},{"start":5260,"length":32}]}},"methodIdentifiers":{"BASE_DELEGATOR_HINTS()":"79d89614","DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_LIMIT_SET_ROLE()":"7d24bb27","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_LIMIT_SET_ROLE()":"518504ba","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","OPT_IN_SERVICE_HINTS()":"9b656b22","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VAULT_HINTS()":"45e78fcb","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","networkLimit(bytes32)":"3eb22c0f","networkLimitAt(bytes32,uint48,bytes)":"5d32a1c9","networkLimitHint(address,bytes32,uint48)":"da749d2b","networkLimitHintInternal(bytes32,uint48)":"197aa7ea","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operatorNetworkLimit(bytes32,address)":"11422095","operatorNetworkLimitAt(bytes32,address,uint48,bytes)":"94d2558a","operatorNetworkLimitHint(address,bytes32,address,uint48)":"10a28b5d","operatorNetworkLimitHintInternal(bytes32,address,uint48)":"f7b05547","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","setNetworkLimit(bytes32,uint256)":"02145348","setOperatorNetworkLimit(bytes32,address,uint256)":"020cf0c2","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","stakeHints(address,bytes32,address,uint48)":"25dc9708","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseDelegatorHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"optInServiceHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateRoleHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExceedsMaxNetworkLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoleHolders\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressRoleHolder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetOperatorNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPT_IN_SERVICE_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"networkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"networkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"operatorNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"operatorNetworkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"operatorNetworkLimitHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"operatorNetworkLimitHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setOperatorNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetOperatorNetworkLimit(bytes32,address,uint256)\":{\"params\":{\"amount\":\"new operator's limit for the subnetwork (how much stake the vault curator is ready to give to the operator for the subnetwork)\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"networkLimit(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the subnetwork\"}},\"networkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the subnetwork limit at\"},\"returns\":{\"_0\":\"limit of the subnetwork at the given timestamp\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"operatorNetworkLimit(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the operator for the subnetwork\"}},\"operatorNetworkLimitAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the operator's limit for the subnetwork at\"},\"returns\":{\"_0\":\"limit of the operator for the subnetwork at the given timestamp\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"setNetworkLimit(bytes32,uint256)\":{\"details\":\"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"setOperatorNetworkLimit(bytes32,address,uint256)\":{\"details\":\"Only an OPERATOR_NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the operator for the subnetwork\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"},\"SetNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's limit is set.\"},\"SetOperatorNetworkLimit(bytes32,address,uint256)\":{\"notice\":\"Emitted when an operator's limit for a subnetwork is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get a subnetwork limit setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get an operator-subnetwork limit setter's role.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"networkLimit(bytes32)\":{\"notice\":\"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"networkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operatorNetworkLimit(bytes32,address)\":{\"notice\":\"Get an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)\"},\"operatorNetworkLimitAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get an operator's limit for a subnetwork at a given timestamp using a hint (how much stake the vault curator is ready to give to the operator for the subnetwork).\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"setNetworkLimit(bytes32,uint256)\":{\"notice\":\"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"setOperatorNetworkLimit(bytes32,address,uint256)\":{\"notice\":\"Set an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/DelegatorHints.sol\":\"FullRestakeDelegatorHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf\",\"dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x4aaaf1c0737dd16e81f0d2b9833c549747a5ede6873bf1444bc72aa572d03e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eada27d7668eebaea16c3b890aa1b38ffc53965292e26c96f7c44834623f4710\",\"dweb:/ipfs/QmVSWuLtxyCqNbLyY89ptxkvsk4CLLKDQYigEne5Qj8k1L\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a\",\"dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c\",\"dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e\",\"dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0xbdc3bb48ccedb818cd75a6d74a16df55a822e9f6d3cc54c59f576f10aab67b5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2284f25f2478f419d7781573b17a89d0e7c5589a865d55e2d6ed5163aee23aa8\",\"dweb:/ipfs/QmNsr2625APBQiNKpYnX5VcSnYgfUHR9Uzzp9pRXjoDqK7\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44\",\"dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0xd71e9102e99a25ee8b5435779f011a24558f56074aa2b16c18b623b57754ae97\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://29db5552e55dab51bea1ae40ba00ca674cb50fcb10997999a72a94527b6eb591\",\"dweb:/ipfs/QmQrYyTPx73ubNxMhYWJCkprCVFVtuTFcKaabYiKTe71tY\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseDelegatorHints","type":"address"},{"internalType":"address","name":"vaultHints","type":"address"},{"internalType":"address","name":"optInServiceHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DuplicateRoleHolder"},{"inputs":[],"type":"error","name":"ExceedsMaxNetworkLimit"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"MissingRoleHolders"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"ZeroAddressRoleHolder"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetOperatorNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPT_IN_SERVICE_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"networkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"networkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"operatorNetworkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"operatorNetworkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"operatorNetworkLimitHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"operatorNetworkLimitHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setOperatorNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"networkLimit(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the subnetwork"}},"networkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the subnetwork limit at"},"returns":{"_0":"limit of the subnetwork at the given timestamp"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"operatorNetworkLimit(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the operator for the subnetwork"}},"operatorNetworkLimitAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the operator's limit for the subnetwork at"},"returns":{"_0":"limit of the operator for the subnetwork at the given timestamp"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"setNetworkLimit(bytes32,uint256)":{"details":"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"setOperatorNetworkLimit(bytes32,address,uint256)":{"details":"Only an OPERATOR_NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the operator for the subnetwork","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_LIMIT_SET_ROLE()":{"notice":"Get a subnetwork limit setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_LIMIT_SET_ROLE()":{"notice":"Get an operator-subnetwork limit setter's role."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"networkLimit(bytes32)":{"notice":"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"networkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operatorNetworkLimit(bytes32,address)":{"notice":"Get an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)"},"operatorNetworkLimitAt(bytes32,address,uint48,bytes)":{"notice":"Get an operator's limit for a subnetwork at a given timestamp using a hint (how much stake the vault curator is ready to give to the operator for the subnetwork)."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"setNetworkLimit(bytes32,uint256)":{"notice":"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"setOperatorNetworkLimit(bytes32,address,uint256)":{"notice":"Set an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)"},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/DelegatorHints.sol":"FullRestakeDelegatorHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866","urls":["bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf","dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab","urls":["bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89","dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606","urls":["bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1","dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x4aaaf1c0737dd16e81f0d2b9833c549747a5ede6873bf1444bc72aa572d03e98","urls":["bzz-raw://eada27d7668eebaea16c3b890aa1b38ffc53965292e26c96f7c44834623f4710","dweb:/ipfs/QmVSWuLtxyCqNbLyY89ptxkvsk4CLLKDQYigEne5Qj8k1L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol":{"keccak256":"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549","urls":["bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a","dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed","urls":["bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0","dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d","urls":["bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c","dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575","urls":["bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e","dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0xbdc3bb48ccedb818cd75a6d74a16df55a822e9f6d3cc54c59f576f10aab67b5f","urls":["bzz-raw://2284f25f2478f419d7781573b17a89d0e7c5589a865d55e2d6ed5163aee23aa8","dweb:/ipfs/QmNsr2625APBQiNKpYnX5VcSnYgfUHR9Uzzp9pRXjoDqK7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f","urls":["bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44","dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0xd71e9102e99a25ee8b5435779f011a24558f56074aa2b16c18b623b57754ae97","urls":["bzz-raw://29db5552e55dab51bea1ae40ba00ca674cb50fcb10997999a72a94527b6eb591","dweb:/ipfs/QmQrYyTPx73ubNxMhYWJCkprCVFVtuTFcKaabYiKTe71tY"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":94} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"baseDelegatorHints","type":"address","internalType":"address"},{"name":"vaultHints","type":"address","internalType":"address"},{"name":"optInServiceHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPT_IN_SERVICE_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VAULT_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operatorNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkLimitHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkLimitHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperatorNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetOperatorNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DuplicateRoleHolder","inputs":[]},{"type":"error","name":"ExceedsMaxNetworkLimit","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"MissingRoleHolders","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddressRoleHolder","inputs":[]}],"bytecode":{"object":"0x6101c0346101c857601f61351f38819003918201601f19168301916001600160401b0391828411858510176101cc5781606092869260409687528339810103126101c85761004c836101e0565b926100648361005d602084016101e0565b92016101e0565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101b7578080831603610173575b5050505f60a0525f60c0525f60e052610100935f8552610120935f8552610140905f82526101609283526101809384526101a0948552519461332a96876101f58839608051878181610696015261148c015260a0518761092d015260c0518761114b015260e0518781816107a101526111840152518681816104e2015261266601525185818161064c01528181611be00152611d0f01525184818161071f01528181611b470152611d8d015251838181610ebc015261179a015251828181610c8f015261183b0152518161104f0152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101c85756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146102c4578063020cf0c2146102bf57806302145348146102ba578063103f2907146102b557806310a28b5d146102b057806311422095146102ab578063128e5d82146102a6578063197aa7ea146102a15780631a80e5001461029c57806323f752d514610297578063248a9ca31461029257806325dc97081461028d5780632dd31000146102885780632f2ff15d1461028357806336568abe1461027e5780633dfd3873146102795780633eb22c0f14610274578063439fab911461026f57806345e78fcb1461026a578063518504ba14610265578063557cab44146102605780635d32a1c91461025b5780636679191e1461025657806379d89614146102515780637d24bb271461024c5780637f5a7c7b1461024757806391d148541461024257806394d2558a1461023d5780639b656b22146102385780639f86fd8514610233578063a217fddf1461022e578063bb24fe8a14610229578063c0cd7c3e14610224578063d15b740e1461021f578063d547741f1461021a578063da749d2b14610215578063e02f693714610210578063e49561ee1461020b578063f7b0554714610206578063fbfa77cf14610201578063fd4d447c146101fc578063ff54740f146101f75763ffa1ad74146101f2575f80fd5b611557565b61153a565b611510565b6114e9565b611465565b61127a565b61125e565b611229565b6111dd565b6111b3565b61116f565b61112c565b611112565b61107e565b61103a565b610ffc565b610f4c565b610f24565b610eeb565b610ea7565b610e6d565b610e1c565b610cf8565b610cbe565b610c7a565b610b42565b610aec565b6109f3565b6109a8565b61095c565b610918565b6108fb565b6108c2565b61074e565b61070a565b61067b565b610637565b6105e8565b6105b3565b6104cd565b610410565b61032f565b3461031a57602036600319011261031a5760043563ffffffff60e01b811680910361031a57602090637965db0b60e01b8114908115610309575b506040519015158152f35b6301ffc9a760e01b1490505f6102fe565b5f80fd5b6001600160a01b0381160361031a57565b3461031a57606036600319011261031a5760243560043561034f8261031e565b6044359161035b611e02565b815f526004602052826103896103848360405f209060018060a01b03165f5260205260405f2090565b6120b3565b146103fe5760207ffc9545f07ffadfb668efd0144cdcaf2d6e2c8192dce1ea9fc131934f9c90fc7e91835f52600482526103e9856103da8360405f209060018060a01b03165f5260205260405f2090565b6103e342612b1e565b90611f58565b50506040519485526001600160a01b031693a3005b60405163a741a04560e01b8152600490fd5b3461031a5760408060031936011261031a576004359060243590610432611e5f565b825f526002602052805f205482116104bd57825f52600360205281610458825f206120b3565b146104ad57816104a8916104987e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103da875f52600360205260405f2090565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6024359065ffffffffffff8216820361031a57565b6044359065ffffffffffff8216820361031a57565b6064359065ffffffffffff8216820361031a57565b608090600319011261031a576004356105688161031e565b90602435906044356105798161031e565b9060643565ffffffffffff8116810361031a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461031a576105e46105d06105c736610550565b929190916115b1565b60405191829160208352602083019061058f565b0390f35b3461031a57604036600319011261031a57602061062f61038460243561060d8161031e565b6004355f526004845260405f209060018060a01b03165f5260205260405f2090565b604051908152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a57610694610511565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576106db906004355f52600360205260405f20612124565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a576004356001600160601b038116810361031a576024359061077e612229565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108bd575f9161088e575b501561087c576001600160601b03166bffffffffffffffffffffffff193360601b16179080610808835f52600260205260405f2090565b54146103fe57610861817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610846855f52600260205260405f2090565b556108518185612258565b6040519081529081906020820190565b0390a261087a60015f805160206132b583398151915255565b005b6040516323d53b9760e21b8152600490fd5b6108b0915060203d6020116108b6575b6108a88183610d7e565b810190611649565b5f6107d1565b503d61089e565b61165d565b3461031a57602036600319011261031a576004355f525f805160206132958339815191526020526020600160405f200154604051908152f35b3461031a576105e46105d061090f36610550565b9291909161174e565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5761087a60243560043561097f8261031e565b805f525f805160206132958339815191526020526109a3600160405f200154611eb5565b612533565b3461031a57604036600319011261031a576024356109c58161031e565b336001600160a01b038216036109e15761087a90600435612569565b60405163334bd91960e11b8152600490fd5b3461031a57602036600319011261031a57600435610a108161031e565b610a18612229565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610ace57506001546001600160a01b0391821691811682146103fe576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f805160206132b583398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461031a57602036600319011261031a576004355f526003602052602061062f60405f206120b3565b9181601f8401121561031a578235916001600160401b03831161031a576020838186019501011161031a57565b3461031a57602036600319011261031a576001600160401b0360043581811161031a57610b73903690600401610b15565b5f805160206132d5833981519152549260ff8460401c1615931680159081610c72575b6001149081610c68575b159081610c5f575b50610c4d575f805160206132d5833981519152805467ffffffffffffffff19166001179055610bdb9183610c2957612631565b610be157005b5f805160206132d5833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f805160206132d5833981519152805460ff60401b1916600160401b179055612631565b60405163f92ee8a960e01b8152600490fd5b9050155f610ba8565b303b159150610ba0565b849150610b96565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a38152f35b3461031a575f36600319011261031a576020604051614e208152f35b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610d4357604052565b610d14565b606081019081106001600160401b03821117610d4357604052565b608081019081106001600160401b03821117610d4357604052565b90601f801991011681019081106001600160401b03821117610d4357604052565b60405190610dac82610d63565b565b60405190610dac82610d28565b6001600160401b038111610d4357601f01601f191660200190565b81601f8201121561031a57803590610ded82610dbb565b92610dfb6040519485610d7e565b8284526020838301011161031a57815f926020809301838601378301015290565b3461031a57606036600319011261031a57610e35610511565b6044356001600160401b03811161031a57602091610e5a61062f923690600401610dd6565b906004355f526003845260405f20612798565b3461031a575f36600319011261031a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461031a575f36600319011261031a576001546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602060ff610f9e602435610f708161031e565b6004355f525f80516020613295833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b90608060031983011261031a5760043591602435610fc78161031e565b9160443565ffffffffffff8116810361031a5791606435906001600160401b03821161031a57610ff991600401610dd6565b90565b3461031a57602061062f61103561101236610faa565b939190925f526004865260405f209060018060a01b03165f5260205260405f2090565b612798565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5760043561109b8161031e565b6024356001600160401b03811161031a575f916110bd83923690600401610b15565b90816040519283928337810184815203915af461110a6110db6119a3565b916110fc60405193849215156020840152604080840152606083019061058f565b03601f198101835282610d7e565b805190602001fd5b3461031a575f36600319011261031a5760206040515f8152f35b3461031a575f36600319011261031a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57602036600319011261031a576004355f526002602052602060405f2054604051908152f35b3461031a57604036600319011261031a5761087a6024356004356112008261031e565b805f525f80516020613295833981519152602052611224600160405f200154611eb5565b612569565b3461031a57606036600319011261031a576105e46105d060043561124c8161031e565b611254610526565b90602435906119d2565b3461031a57602061062f61127136610faa565b92919091611ad1565b3461031a5760a036600319011261031a5760243560043561129a8261031e565b604435916112a661053b565b90608435906001600160401b03821161031a576112c860049236908401610dd6565b6112d0612229565b5f546020906112f5906112e9906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156108bd575f93611434575b506001600160a01b039283163303611422576001546001600160a01b0316838116611397575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361087a60015f805160206132b583398151915255565b9093604051946113ce866113c0602082019363724ab0f760e11b8552858c898d60248701611c5b565b03601f198101885287610d7e565b62042e305a10611410575f61137e938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f1509361133d565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61145791935060203d60201161145e575b61144f8183610d7e565b8101906116d3565b915f611317565b503d611445565b3461031a57606036600319011261031a576024356114828161031e565b61148a610526565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576114e46106db926004355f52600460205260405f209060018060a01b03165f5260205260405f2090565b612124565b3461031a575f36600319011261031a575f546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602061062f6024356115328161031e565b600435611cd8565b3461031a575f36600319011261031a5760206040516203d0908152f35b3461031a575f36600319011261031a57602060405160018152f35b5190811515820361031a57565b519063ffffffff8216820361031a57565b919082604091031261031a57610ff960206115aa84611572565b930161157f565b91939265ffffffffffff906060956040519363f7b0554760e01b6020860152602485015260018060a01b031660448401521660648201526064815260a08101908082106001600160401b03831117610d4357611622926116139260405261201a565b60208082518301019101611590565b9061162a5750565b90915063ffffffff6040519116602082015260208152610ff981610d28565b9081602091031261031a57610ff990611572565b6040513d5f823e3d90fd5b81601f8201121561031a5780519061167f82610dbb565b9261168d6040519485610d7e565b8284526020838301011161031a57815f9260208093018386015e8301015290565b9060208282031261031a5781516001600160401b03811161031a57610ff99201611668565b9081602091031261031a5751610ff98161031e565b90610ff9916020815261170782516080602084015260a083019061058f565b906080606061173e61172b602087015195601f19968787830301604088015261058f565b604087015186868303018487015261058f565b940151928285030191015261058f565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491939091905f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa9485156108bd575f95611945575b5060405163fbfa77cf60e01b8152602081600481888d165afa9081156108bd57611837995f9286928491611926575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9788156108bd575f986118fa575b50908161187d846118839594876119d2565b946115b1565b908251158015906118f0575b80156118e6575b80156118dc575b6118a957505050909150565b6110fc9450610ff993956118bb610d9f565b938452602084015260408301526060820152604051928391602083016116e8565b508151151561189d565b5080511515611896565b508551151561188f565b611883939291985061191d903d805f833e6119158183610d7e565b8101906116ae565b9790919261186b565b61193f915060203d60201161145e5761144f8183610d7e565b5f6117fa565b61195a9195503d805f833e6119158183610d7e565b935f6117cb565b90610ff992915f52600360205260405f20612798565b5f9081526004602090815260408083206001600160a01b03909416835292905220610ff9929190612798565b3d156119cd573d906119b482610dbb565b916119c26040519384610d7e565b82523d5f602084013e565b606090565b611622916116139194939465ffffffffffff60609660405193630cbd53f560e11b6020860152602485015216604483015260448252611a1082610d63565b61201a565b60405190611a2282610d28565b60606020838281520152565b9060208282031261031a5781516001600160401b039283821161031a57019060408282031261031a5760405192611a6484610d28565b825181811161031a5782611a79918501611668565b8452602083015190811161031a57611a919201611668565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff9091166040820152608060608201819052610ff99291019061058f565b92611ae190929192828486612973565b929093611aec611a15565b93805180611c3f575b50508415938415611ba9575b8415611b18575b50505050611b135790565b505f90565b602080949550611b43910151604051958694859463530e1d4360e01b865260601c9060048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611b8a575b50155f808080611b08565b611ba3915060203d6020116108b6576108a88183610d7e565b5f611b7f565b5f549094506001600160a01b0316602084865192611bdc604051948593849363530e1d4360e01b85528960048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611c20575b501593611b01565b611c39915060203d6020116108b6576108a88183610d7e565b5f611c18565b611c53929550602080918301019101611a2e565b925f80611af5565b919360a093610ff9969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061058f565b634e487b7160e01b5f52601160045260245ffd5b8115611cb1570490565b634e487b7160e01b5f52601260045260245ffd5b9060018201809211611cd357565b611c93565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156108bd575f91611de5575b5015918215611d61575b50509050611d5b57610ff991612a6e565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156108bd575f92611dc8575b505015805f80611d4a565b611dde9250803d106108b6576108a88183610d7e565b5f80611dbd565b611dfc9150843d86116108b6576108a88183610d7e565b5f611d40565b335f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a39060ff905b541615610ace5750565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff90611e55565b5f8181525f8051602061329583398151915260209081526040808320338452909152902060ff90611e55565b634e487b7160e01b5f52603260045260245ffd5b8054821015611f0a575f5260205f2001905f90565b611ee1565b90815491600160401b831015610d435782611f32916001610dac95018155611ef5565b90919082549060031b91821b915f19901b1916179055565b5f19810191908211611cd357565b90929192600182019081548015611fea575b5084611f7584612b50565b50949092845493611f85836120b3565b9681611fd5575b5015611fb2575050505f198101908111611cd357611f328591611fae93611ef5565b9190565b611fae949293611fce926001600160d01b039091169190613189565b5050611f0f565b65ffffffffffff83811691161490505f611f8c565b600160401b811015610d43578060016120069201845583611ef5565b8154905f199060031b1b191690555f611f6a565b5f9190829160405161204f816110fc6020820194639f86fd8560e01b865230602484015260406044840152606483019061058f565b51915afa5061205c6119a3565b8051810160408282031261031a5761207660208301611572565b916040810151916001600160401b03831161031a5761209c926020809201920101611668565b90156120a55790565b805190811561031a57602001fd5b8054806120e257505f5b6001600160d01b03811615611d5b5760016120d89201611ef5565b90549060031b1c90565b5f19908082810111611cd357825f5260205f2001015460301c6120bd565b9060405161210d81610d28565b915465ffffffffffff8116835260301c6020830152565b91908254905f8291600584116121c2575b612140935085612cb4565b9081156121b6576121af6121a66121a06120d861217261216d61216288611f4a565b895f5260205f200190565b612100565b966001612199602061218a8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101611ef5565b93611f4a565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926121cd81612b89565b8103908111611cd35761214093865f526122016121f68360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff85161015612217575091612135565b92915061222390611cc5565b90612135565b5f805160206132b583398151915260028154146122465760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161226f82612b50565b9193905083156122cd5761228f916001600160d01b031690600101611ef5565b90549060031b1c5b826122c3575b50506122a7575050565b6122bf915f52600360205260405f206103e342612b1e565b5050565b119050815f61229d565b50505f612297565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206132958339815191529060ff16611d5b575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206132958339815191529060ff905b541661244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f805160206132958339815191529060ff906123eb565b6001600160a01b0381165f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a3905f805160206132958339815191529060ff906123eb565b5f8181525f80516020613295833981519152602081815260408084206001600160a01b038716855290915290912060ff906123eb565b5f8181525f80516020613295833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261031a5780356126138161031e565b9260208201356001600160401b03811161031a57610ff99201610dd6565b61263d918101906125fb565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156108bd575f91612750575b501561273e576126d26040916126cd612718946126b2612d16565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612e96565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661272e575b5001516001600160a01b031690565b9081166127225750565b61272b90612380565b50565b612737906122d5565b505f612709565b6040516362df054560e01b8152600490fd5b612769915060203d6020116108b6576108a88183610d7e565b5f612697565b9081602091031261031a57610ff99061157f565b90600163ffffffff80931601918211611cd357565b9180511561286657806020806127b39351830101910161276f565b916127be83826130c6565b926127cf845165ffffffffffff1690565b9065ffffffffffff808516921682811461285a5782119182612805575b50506127fc57610ff99250612ff6565b50506020015190565b9091506128128354611f4a565b63ffffffff83161491821561282b575b50505f806127ec565b6128529192506128466128406121f692612783565b856130c6565b5165ffffffffffff1690565b115f80612822565b50505050506020015190565b50610ff991612ff6565b60405190608082018281106001600160401b03821117610d4357604052606080838181528160208201528160408201520152565b9060208282031261031a5781516001600160401b039283821161031a57019060808282031261031a576128d5610d9f565b92825181811161031a57826128eb918501611668565b8452602083015181811161031a5782612905918501611668565b6020850152604083015181811161031a5782612922918501611668565b6040850152606083015190811161031a5761293d9201611668565b606082015290565b9081602091031261031a575190565b60409065ffffffffffff610ff99493168152816020820152019061058f565b9391909361297f612870565b93805180612a4e575b50506129c992939460206129a86112e96112e95f5460018060a01b031690565b8188015190604051808098819463810da75d60e01b83528960048401612954565b03915afa9182156108bd57612a10945f93612a15575b50612a0490612a0493946129f860408a01518284611961565b9360608a015192611977565b90818082109118021890565b915190565b612a04935090612a3f612a049260203d602011612a47575b612a378183610d7e565b810190612945565b9350906129df565b503d612a2d565b6129c994955090602080612a669383010191016128a4565b93925f612988565b5f5460405163bd49c35f60e01b81529290602090849060049082906001600160a01b03165afa9283156108bd575f93612af5575b50610384612ae091612abf610384855f52600360205260405f2090565b935f52600460205260405f209060018060a01b03165f5260205260405f2090565b90818082109118021890818082109118021890565b612ae0919350612b166103849160203d602011612a4757612a378183610d7e565b939150612aa2565b65ffffffffffff90818111612b31571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612b615750505f905f905f90565b5f19918183810111611cd3575f5260205f2001015460019165ffffffffffff82169160301c90565b6001811115610ff957600181600160801b811015612ca2575b612c4a612c40612c36612c2c612c22612c18612c5697600488600160401b612c519a1015612c95575b640100000000811015612c88575b62010000811015612c7b575b610100811015612c6f575b6010811015612c63575b1015612c5b575b60030260011c612c11818b611ca7565b0160011c90565b612c11818a611ca7565b612c118189611ca7565b612c118188611ca7565b612c118187611ca7565b612c118186611ca7565b8093611ca7565b821190565b900390565b60011b612c01565b811c9160021b91612bfa565b60081c91811b91612bf0565b60101c9160081b91612be5565b60201c9160101b91612bd9565b60401c9160201b91612bcb565b50600160401b9050608082901c612ba2565b91905b838210612cc45750505090565b909192808316906001818518811c8301809311611cd357855f5265ffffffffffff808460205f20015416908516105f14612d03575050925b9190612cb7565b909493508101809111611cd35791612cfc565b612d1e613266565b612d26613266565b60015f805160206132b583398151915255565b60405190612d4682610d48565b5f6040838281528260208201520152565b81601f8201121561031a578051916020916001600160401b038411610d43578360051b9060405194612d8b85840187610d7e565b8552838086019282010192831161031a578301905b828210612dae575050505090565b8380918351612dbc8161031e565b815201910190612da0565b9060208282031261031a5781516001600160401b039283821161031a5701908181039260a0841261031a57606060405194612e0186610d48565b1261031a57604051612e1281610d48565b8351612e1d8161031e565b81526020840151612e2d8161031e565b60208201526040840151612e408161031e565b60408201528452606083015181811161031a5782612e5f918501612d57565b6020850152608083015190811161031a57612e7a9201612d57565b604082015290565b8051821015611f0a5760209160051b010190565b612eb290612ea2612d39565b5060208082518301019101612dc7565b8051519091906001600160a01b03161580612fdc575b612fca579060208101905f5b82518051821015612f4e576112e9612eef83612efc93612e82565b516001600160a01b031690565b15612f3c57612f1e612f1a612f15612eef848751612e82565b612456565b1590565b612f2a57600101612ed4565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015612fc1576112e9612eef83612f7593612e82565b15612fb057612f93612f1a612f8e612eef848751612e82565b6124c4565b612f9f57600101612f5a565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b506020820151511580612ec8575060408201515115612ec8565b908154905f829160058411613060575b613011935084612cb4565b8061303957505f905b6001600160d01b03821615611d5b57610ff99160016120d89201611ef5565b61305361304861305a92611f4a565b835f5260205f200190565b5460301c90565b9061301a565b919261306b81612b89565b8103908111611cd35761301193855f5265ffffffffffff808360205f20015416908516105f1461309c575091613006565b9291506130a890611cc5565b90613006565b604051906130bb82610d28565b5f6020838281520152565b906130ef6130e9613110926130d96130ae565b506130e26130ae565b5084611ef5565b50612100565b91600165ffffffffffff845116936020828060d01b03910151169101611ef5565b9054906040519261312084610d28565b835260031b1c602082015290565b8054600160401b811015610d435761314b91600182018155611ef5565b61317657815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b8054929392801561323c576131a06131ab91611f4a565b825f5260205f200190565b9182549265ffffffffffff9182851692811680841161322a578793036131f157506131ea92509065ffffffffffff82549181199060301b169116179055565b60301c9190565b91505061322591613211613203610dae565b65ffffffffffff9093168352565b6001600160d01b038616602083015261312e565b6131ea565b604051632520601d60e01b8152600490fd5b50906132619161324d613203610dae565b6001600160d01b038516602083015261312e565b5f9190565b60ff5f805160206132d58339815191525460401c161561328257565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212204499a4e541806b6efe7986c303b25f7c58d6541a27cb7ee070507be47989947d64736f6c63430008190033","sourceMap":"7866:3473:92:-:0;;;;;;;;;;;;;-1:-1:-1;;7866:3473:92;;;;-1:-1:-1;;;;;7866:3473:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;348:4:93;;332:21;;8837:64:26;7866:3473:92;;;;;;;;;7896:76:26;;7866:3473:92;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:80;;;-1:-1:-1;525:17:80;;-1:-1:-1;552:12:80;;-1:-1:-1;2360:34:87;;2404:28;;-1:-1:-1;2404:28:87;;2442:57;;-1:-1:-1;2442:57:87;;2509:61;;-1:-1:-1;2509:61:87;;8343:41:92;;;;8394:24;;;;8428:40;;;;7866:3473;;;;;;;;332:21:93;7866:3473:92;;;;;;;;;;525:17:80;7866:3473:92;;;;;552:12:80;7866:3473:92;;;;;2360:34:87;7866:3473:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;7866:3473:92;;;;;;;;;;;;;8087:29:26;;7866:3473:92;;8087:29:26;7981:146;;;;;7896:76;7866:3473:92;;-1:-1:-1;;;7938:23:26;;;;;7866:3473:92;-1:-1:-1;7866:3473:92;;;;;;-1:-1:-1;7866:3473:92;;;;;-1:-1:-1;7866:3473:92;;;;-1:-1:-1;;;;;7866:3473:92;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146102c4578063020cf0c2146102bf57806302145348146102ba578063103f2907146102b557806310a28b5d146102b057806311422095146102ab578063128e5d82146102a6578063197aa7ea146102a15780631a80e5001461029c57806323f752d514610297578063248a9ca31461029257806325dc97081461028d5780632dd31000146102885780632f2ff15d1461028357806336568abe1461027e5780633dfd3873146102795780633eb22c0f14610274578063439fab911461026f57806345e78fcb1461026a578063518504ba14610265578063557cab44146102605780635d32a1c91461025b5780636679191e1461025657806379d89614146102515780637d24bb271461024c5780637f5a7c7b1461024757806391d148541461024257806394d2558a1461023d5780639b656b22146102385780639f86fd8514610233578063a217fddf1461022e578063bb24fe8a14610229578063c0cd7c3e14610224578063d15b740e1461021f578063d547741f1461021a578063da749d2b14610215578063e02f693714610210578063e49561ee1461020b578063f7b0554714610206578063fbfa77cf14610201578063fd4d447c146101fc578063ff54740f146101f75763ffa1ad74146101f2575f80fd5b611557565b61153a565b611510565b6114e9565b611465565b61127a565b61125e565b611229565b6111dd565b6111b3565b61116f565b61112c565b611112565b61107e565b61103a565b610ffc565b610f4c565b610f24565b610eeb565b610ea7565b610e6d565b610e1c565b610cf8565b610cbe565b610c7a565b610b42565b610aec565b6109f3565b6109a8565b61095c565b610918565b6108fb565b6108c2565b61074e565b61070a565b61067b565b610637565b6105e8565b6105b3565b6104cd565b610410565b61032f565b3461031a57602036600319011261031a5760043563ffffffff60e01b811680910361031a57602090637965db0b60e01b8114908115610309575b506040519015158152f35b6301ffc9a760e01b1490505f6102fe565b5f80fd5b6001600160a01b0381160361031a57565b3461031a57606036600319011261031a5760243560043561034f8261031e565b6044359161035b611e02565b815f526004602052826103896103848360405f209060018060a01b03165f5260205260405f2090565b6120b3565b146103fe5760207ffc9545f07ffadfb668efd0144cdcaf2d6e2c8192dce1ea9fc131934f9c90fc7e91835f52600482526103e9856103da8360405f209060018060a01b03165f5260205260405f2090565b6103e342612b1e565b90611f58565b50506040519485526001600160a01b031693a3005b60405163a741a04560e01b8152600490fd5b3461031a5760408060031936011261031a576004359060243590610432611e5f565b825f526002602052805f205482116104bd57825f52600360205281610458825f206120b3565b146104ad57816104a8916104987e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103da875f52600360205260405f2090565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6024359065ffffffffffff8216820361031a57565b6044359065ffffffffffff8216820361031a57565b6064359065ffffffffffff8216820361031a57565b608090600319011261031a576004356105688161031e565b90602435906044356105798161031e565b9060643565ffffffffffff8116810361031a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461031a576105e46105d06105c736610550565b929190916115b1565b60405191829160208352602083019061058f565b0390f35b3461031a57604036600319011261031a57602061062f61038460243561060d8161031e565b6004355f526004845260405f209060018060a01b03165f5260205260405f2090565b604051908152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a57610694610511565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576106db906004355f52600360205260405f20612124565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a576004356001600160601b038116810361031a576024359061077e612229565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108bd575f9161088e575b501561087c576001600160601b03166bffffffffffffffffffffffff193360601b16179080610808835f52600260205260405f2090565b54146103fe57610861817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610846855f52600260205260405f2090565b556108518185612258565b6040519081529081906020820190565b0390a261087a60015f805160206132b583398151915255565b005b6040516323d53b9760e21b8152600490fd5b6108b0915060203d6020116108b6575b6108a88183610d7e565b810190611649565b5f6107d1565b503d61089e565b61165d565b3461031a57602036600319011261031a576004355f525f805160206132958339815191526020526020600160405f200154604051908152f35b3461031a576105e46105d061090f36610550565b9291909161174e565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5761087a60243560043561097f8261031e565b805f525f805160206132958339815191526020526109a3600160405f200154611eb5565b612533565b3461031a57604036600319011261031a576024356109c58161031e565b336001600160a01b038216036109e15761087a90600435612569565b60405163334bd91960e11b8152600490fd5b3461031a57602036600319011261031a57600435610a108161031e565b610a18612229565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610ace57506001546001600160a01b0391821691811682146103fe576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f805160206132b583398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461031a57602036600319011261031a576004355f526003602052602061062f60405f206120b3565b9181601f8401121561031a578235916001600160401b03831161031a576020838186019501011161031a57565b3461031a57602036600319011261031a576001600160401b0360043581811161031a57610b73903690600401610b15565b5f805160206132d5833981519152549260ff8460401c1615931680159081610c72575b6001149081610c68575b159081610c5f575b50610c4d575f805160206132d5833981519152805467ffffffffffffffff19166001179055610bdb9183610c2957612631565b610be157005b5f805160206132d5833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f805160206132d5833981519152805460ff60401b1916600160401b179055612631565b60405163f92ee8a960e01b8152600490fd5b9050155f610ba8565b303b159150610ba0565b849150610b96565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a38152f35b3461031a575f36600319011261031a576020604051614e208152f35b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610d4357604052565b610d14565b606081019081106001600160401b03821117610d4357604052565b608081019081106001600160401b03821117610d4357604052565b90601f801991011681019081106001600160401b03821117610d4357604052565b60405190610dac82610d63565b565b60405190610dac82610d28565b6001600160401b038111610d4357601f01601f191660200190565b81601f8201121561031a57803590610ded82610dbb565b92610dfb6040519485610d7e565b8284526020838301011161031a57815f926020809301838601378301015290565b3461031a57606036600319011261031a57610e35610511565b6044356001600160401b03811161031a57602091610e5a61062f923690600401610dd6565b906004355f526003845260405f20612798565b3461031a575f36600319011261031a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a575f36600319011261031a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461031a575f36600319011261031a576001546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602060ff610f9e602435610f708161031e565b6004355f525f80516020613295833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b90608060031983011261031a5760043591602435610fc78161031e565b9160443565ffffffffffff8116810361031a5791606435906001600160401b03821161031a57610ff991600401610dd6565b90565b3461031a57602061062f61103561101236610faa565b939190925f526004865260405f209060018060a01b03165f5260205260405f2090565b612798565b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57604036600319011261031a5760043561109b8161031e565b6024356001600160401b03811161031a575f916110bd83923690600401610b15565b90816040519283928337810184815203915af461110a6110db6119a3565b916110fc60405193849215156020840152604080840152606083019061058f565b03601f198101835282610d7e565b805190602001fd5b3461031a575f36600319011261031a5760206040515f8152f35b3461031a575f36600319011261031a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461031a575f36600319011261031a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461031a57602036600319011261031a576004355f526002602052602060405f2054604051908152f35b3461031a57604036600319011261031a5761087a6024356004356112008261031e565b805f525f80516020613295833981519152602052611224600160405f200154611eb5565b612569565b3461031a57606036600319011261031a576105e46105d060043561124c8161031e565b611254610526565b90602435906119d2565b3461031a57602061062f61127136610faa565b92919091611ad1565b3461031a5760a036600319011261031a5760243560043561129a8261031e565b604435916112a661053b565b90608435906001600160401b03821161031a576112c860049236908401610dd6565b6112d0612229565b5f546020906112f5906112e9906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156108bd575f93611434575b506001600160a01b039283163303611422576001546001600160a01b0316838116611397575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361087a60015f805160206132b583398151915255565b9093604051946113ce866113c0602082019363724ab0f760e11b8552858c898d60248701611c5b565b03601f198101885287610d7e565b62042e305a10611410575f61137e938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f1509361133d565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61145791935060203d60201161145e575b61144f8183610d7e565b8101906116d3565b915f611317565b503d611445565b3461031a57606036600319011261031a576024356114828161031e565b61148a610526565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106f8576114e46106db926004355f52600460205260405f209060018060a01b03165f5260205260405f2090565b612124565b3461031a575f36600319011261031a575f546040516001600160a01b039091168152602090f35b3461031a57604036600319011261031a57602061062f6024356115328161031e565b600435611cd8565b3461031a575f36600319011261031a5760206040516203d0908152f35b3461031a575f36600319011261031a57602060405160018152f35b5190811515820361031a57565b519063ffffffff8216820361031a57565b919082604091031261031a57610ff960206115aa84611572565b930161157f565b91939265ffffffffffff906060956040519363f7b0554760e01b6020860152602485015260018060a01b031660448401521660648201526064815260a08101908082106001600160401b03831117610d4357611622926116139260405261201a565b60208082518301019101611590565b9061162a5750565b90915063ffffffff6040519116602082015260208152610ff981610d28565b9081602091031261031a57610ff990611572565b6040513d5f823e3d90fd5b81601f8201121561031a5780519061167f82610dbb565b9261168d6040519485610d7e565b8284526020838301011161031a57815f9260208093018386015e8301015290565b9060208282031261031a5781516001600160401b03811161031a57610ff99201611668565b9081602091031261031a5751610ff98161031e565b90610ff9916020815261170782516080602084015260a083019061058f565b906080606061173e61172b602087015195601f19968787830301604088015261058f565b604087015186868303018487015261058f565b940151928285030191015261058f565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491939091905f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa9485156108bd575f95611945575b5060405163fbfa77cf60e01b8152602081600481888d165afa9081156108bd57611837995f9286928491611926575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9788156108bd575f986118fa575b50908161187d846118839594876119d2565b946115b1565b908251158015906118f0575b80156118e6575b80156118dc575b6118a957505050909150565b6110fc9450610ff993956118bb610d9f565b938452602084015260408301526060820152604051928391602083016116e8565b508151151561189d565b5080511515611896565b508551151561188f565b611883939291985061191d903d805f833e6119158183610d7e565b8101906116ae565b9790919261186b565b61193f915060203d60201161145e5761144f8183610d7e565b5f6117fa565b61195a9195503d805f833e6119158183610d7e565b935f6117cb565b90610ff992915f52600360205260405f20612798565b5f9081526004602090815260408083206001600160a01b03909416835292905220610ff9929190612798565b3d156119cd573d906119b482610dbb565b916119c26040519384610d7e565b82523d5f602084013e565b606090565b611622916116139194939465ffffffffffff60609660405193630cbd53f560e11b6020860152602485015216604483015260448252611a1082610d63565b61201a565b60405190611a2282610d28565b60606020838281520152565b9060208282031261031a5781516001600160401b039283821161031a57019060408282031261031a5760405192611a6484610d28565b825181811161031a5782611a79918501611668565b8452602083015190811161031a57611a919201611668565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff9091166040820152608060608201819052610ff99291019061058f565b92611ae190929192828486612973565b929093611aec611a15565b93805180611c3f575b50508415938415611ba9575b8415611b18575b50505050611b135790565b505f90565b602080949550611b43910151604051958694859463530e1d4360e01b865260601c9060048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611b8a575b50155f808080611b08565b611ba3915060203d6020116108b6576108a88183610d7e565b5f611b7f565b5f549094506001600160a01b0316602084865192611bdc604051948593849363530e1d4360e01b85528960048601611a99565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108bd575f91611c20575b501593611b01565b611c39915060203d6020116108b6576108a88183610d7e565b5f611c18565b611c53929550602080918301019101611a2e565b925f80611af5565b919360a093610ff9969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061058f565b634e487b7160e01b5f52601160045260245ffd5b8115611cb1570490565b634e487b7160e01b5f52601260045260245ffd5b9060018201809211611cd357565b611c93565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156108bd575f91611de5575b5015918215611d61575b50509050611d5b57610ff991612a6e565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156108bd575f92611dc8575b505015805f80611d4a565b611dde9250803d106108b6576108a88183610d7e565b5f80611dbd565b611dfc9150843d86116108b6576108a88183610d7e565b5f611d40565b335f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a39060ff905b541615610ace5750565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff90611e55565b5f8181525f8051602061329583398151915260209081526040808320338452909152902060ff90611e55565b634e487b7160e01b5f52603260045260245ffd5b8054821015611f0a575f5260205f2001905f90565b611ee1565b90815491600160401b831015610d435782611f32916001610dac95018155611ef5565b90919082549060031b91821b915f19901b1916179055565b5f19810191908211611cd357565b90929192600182019081548015611fea575b5084611f7584612b50565b50949092845493611f85836120b3565b9681611fd5575b5015611fb2575050505f198101908111611cd357611f328591611fae93611ef5565b9190565b611fae949293611fce926001600160d01b039091169190613189565b5050611f0f565b65ffffffffffff83811691161490505f611f8c565b600160401b811015610d43578060016120069201845583611ef5565b8154905f199060031b1b191690555f611f6a565b5f9190829160405161204f816110fc6020820194639f86fd8560e01b865230602484015260406044840152606483019061058f565b51915afa5061205c6119a3565b8051810160408282031261031a5761207660208301611572565b916040810151916001600160401b03831161031a5761209c926020809201920101611668565b90156120a55790565b805190811561031a57602001fd5b8054806120e257505f5b6001600160d01b03811615611d5b5760016120d89201611ef5565b90549060031b1c90565b5f19908082810111611cd357825f5260205f2001015460301c6120bd565b9060405161210d81610d28565b915465ffffffffffff8116835260301c6020830152565b91908254905f8291600584116121c2575b612140935085612cb4565b9081156121b6576121af6121a66121a06120d861217261216d61216288611f4a565b895f5260205f200190565b612100565b966001612199602061218a8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101611ef5565b93611f4a565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926121cd81612b89565b8103908111611cd35761214093865f526122016121f68360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff85161015612217575091612135565b92915061222390611cc5565b90612135565b5f805160206132b583398151915260028154146122465760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161226f82612b50565b9193905083156122cd5761228f916001600160d01b031690600101611ef5565b90549060031b1c5b826122c3575b50506122a7575050565b6122bf915f52600360205260405f206103e342612b1e565b5050565b119050815f61229d565b50505f612297565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206132958339815191529060ff16611d5b575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206132958339815191529060ff905b541661244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f805160206132958339815191529060ff906123eb565b6001600160a01b0381165f9081527f24e48de785eeca8420b70f73d267a66970ccc187d459f2a4b53e74ed92a5ab86602052604090207f15e7c882d74e8821ebf34aaff46fd0e1d53b9393d91490019124113d28dc32a3905f805160206132958339815191529060ff906123eb565b5f8181525f80516020613295833981519152602081815260408084206001600160a01b038716855290915290912060ff906123eb565b5f8181525f80516020613295833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561244f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b91909160408184031261031a5780356126138161031e565b9260208201356001600160401b03811161031a57610ff99201610dd6565b61263d918101906125fb565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156108bd575f91612750575b501561273e576126d26040916126cd612718946126b2612d16565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612e96565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661272e575b5001516001600160a01b031690565b9081166127225750565b61272b90612380565b50565b612737906122d5565b505f612709565b6040516362df054560e01b8152600490fd5b612769915060203d6020116108b6576108a88183610d7e565b5f612697565b9081602091031261031a57610ff99061157f565b90600163ffffffff80931601918211611cd357565b9180511561286657806020806127b39351830101910161276f565b916127be83826130c6565b926127cf845165ffffffffffff1690565b9065ffffffffffff808516921682811461285a5782119182612805575b50506127fc57610ff99250612ff6565b50506020015190565b9091506128128354611f4a565b63ffffffff83161491821561282b575b50505f806127ec565b6128529192506128466128406121f692612783565b856130c6565b5165ffffffffffff1690565b115f80612822565b50505050506020015190565b50610ff991612ff6565b60405190608082018281106001600160401b03821117610d4357604052606080838181528160208201528160408201520152565b9060208282031261031a5781516001600160401b039283821161031a57019060808282031261031a576128d5610d9f565b92825181811161031a57826128eb918501611668565b8452602083015181811161031a5782612905918501611668565b6020850152604083015181811161031a5782612922918501611668565b6040850152606083015190811161031a5761293d9201611668565b606082015290565b9081602091031261031a575190565b60409065ffffffffffff610ff99493168152816020820152019061058f565b9391909361297f612870565b93805180612a4e575b50506129c992939460206129a86112e96112e95f5460018060a01b031690565b8188015190604051808098819463810da75d60e01b83528960048401612954565b03915afa9182156108bd57612a10945f93612a15575b50612a0490612a0493946129f860408a01518284611961565b9360608a015192611977565b90818082109118021890565b915190565b612a04935090612a3f612a049260203d602011612a47575b612a378183610d7e565b810190612945565b9350906129df565b503d612a2d565b6129c994955090602080612a669383010191016128a4565b93925f612988565b5f5460405163bd49c35f60e01b81529290602090849060049082906001600160a01b03165afa9283156108bd575f93612af5575b50610384612ae091612abf610384855f52600360205260405f2090565b935f52600460205260405f209060018060a01b03165f5260205260405f2090565b90818082109118021890818082109118021890565b612ae0919350612b166103849160203d602011612a4757612a378183610d7e565b939150612aa2565b65ffffffffffff90818111612b31571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612b615750505f905f905f90565b5f19918183810111611cd3575f5260205f2001015460019165ffffffffffff82169160301c90565b6001811115610ff957600181600160801b811015612ca2575b612c4a612c40612c36612c2c612c22612c18612c5697600488600160401b612c519a1015612c95575b640100000000811015612c88575b62010000811015612c7b575b610100811015612c6f575b6010811015612c63575b1015612c5b575b60030260011c612c11818b611ca7565b0160011c90565b612c11818a611ca7565b612c118189611ca7565b612c118188611ca7565b612c118187611ca7565b612c118186611ca7565b8093611ca7565b821190565b900390565b60011b612c01565b811c9160021b91612bfa565b60081c91811b91612bf0565b60101c9160081b91612be5565b60201c9160101b91612bd9565b60401c9160201b91612bcb565b50600160401b9050608082901c612ba2565b91905b838210612cc45750505090565b909192808316906001818518811c8301809311611cd357855f5265ffffffffffff808460205f20015416908516105f14612d03575050925b9190612cb7565b909493508101809111611cd35791612cfc565b612d1e613266565b612d26613266565b60015f805160206132b583398151915255565b60405190612d4682610d48565b5f6040838281528260208201520152565b81601f8201121561031a578051916020916001600160401b038411610d43578360051b9060405194612d8b85840187610d7e565b8552838086019282010192831161031a578301905b828210612dae575050505090565b8380918351612dbc8161031e565b815201910190612da0565b9060208282031261031a5781516001600160401b039283821161031a5701908181039260a0841261031a57606060405194612e0186610d48565b1261031a57604051612e1281610d48565b8351612e1d8161031e565b81526020840151612e2d8161031e565b60208201526040840151612e408161031e565b60408201528452606083015181811161031a5782612e5f918501612d57565b6020850152608083015190811161031a57612e7a9201612d57565b604082015290565b8051821015611f0a5760209160051b010190565b612eb290612ea2612d39565b5060208082518301019101612dc7565b8051519091906001600160a01b03161580612fdc575b612fca579060208101905f5b82518051821015612f4e576112e9612eef83612efc93612e82565b516001600160a01b031690565b15612f3c57612f1e612f1a612f15612eef848751612e82565b612456565b1590565b612f2a57600101612ed4565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015612fc1576112e9612eef83612f7593612e82565b15612fb057612f93612f1a612f8e612eef848751612e82565b6124c4565b612f9f57600101612f5a565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b506020820151511580612ec8575060408201515115612ec8565b908154905f829160058411613060575b613011935084612cb4565b8061303957505f905b6001600160d01b03821615611d5b57610ff99160016120d89201611ef5565b61305361304861305a92611f4a565b835f5260205f200190565b5460301c90565b9061301a565b919261306b81612b89565b8103908111611cd35761301193855f5265ffffffffffff808360205f20015416908516105f1461309c575091613006565b9291506130a890611cc5565b90613006565b604051906130bb82610d28565b5f6020838281520152565b906130ef6130e9613110926130d96130ae565b506130e26130ae565b5084611ef5565b50612100565b91600165ffffffffffff845116936020828060d01b03910151169101611ef5565b9054906040519261312084610d28565b835260031b1c602082015290565b8054600160401b811015610d435761314b91600182018155611ef5565b61317657815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b8054929392801561323c576131a06131ab91611f4a565b825f5260205f200190565b9182549265ffffffffffff9182851692811680841161322a578793036131f157506131ea92509065ffffffffffff82549181199060301b169116179055565b60301c9190565b91505061322591613211613203610dae565b65ffffffffffff9093168352565b6001600160d01b038616602083015261312e565b6131ea565b604051632520601d60e01b8152600490fd5b50906132619161324d613203610dae565b6001600160d01b038516602083015261312e565b5f9190565b60ff5f805160206132d58339815191525460401c161561328257565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212204499a4e541806b6efe7986c303b25f7c58d6541a27cb7ee070507be47989947d64736f6c63430008190033","sourceMap":"7866:3473:92:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;7866:3473:92;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;7866:3473:92;;;;;;;;;;3551:87:23;-1:-1:-1;;;1134:40:32;;-1:-1:-1;3551:87:23;;;7866:3473:92;-1:-1:-1;7866:3473:92;;;-1:-1:-1;;;;;7866:3473:92;;;;;:::o;:::-;;;;;;-1:-1:-1;;7866:3473:92;;;;;;;;;;;:::i;:::-;;;3202:4:23;;;:::i;:::-;7866:3473:92;-1:-1:-1;7866:3473:92;;;;;2662:52:88;:43;7866:3473:92;;-1:-1:-1;7866:3473:92;;;;;;;;;;;;;;;;;2662:43:88;:52;:::i;:::-;3458;3454:102;;7866:3473:92;3656:53:88;7866:3473:92;;-1:-1:-1;7866:3473:92;;;;3566:74:88;7866:3473:92;3566:43:88;7866:3473:92;;-1:-1:-1;7866:3473:92;;;;;;;;;;;;;;;;;3566:43:88;819:34:73;837:15;819:34;:::i;:::-;3566:74:88;;:::i;:::-;-1:-1:-1;;7866:3473:92;;;;;-1:-1:-1;;;;;7866:3473:92;;3656:53:88;7866:3473:92;3454:102:88;7866:3473:92;;-1:-1:-1;;;3533:12:88;;7866:3473:92;;3533:12:88;7866:3473:92;;;;;;;;;;;;;;;;;;3202:4:23;;;:::i;:::-;7866:3473:92;-1:-1:-1;7866:3473:92;2910:15:88;7866:3473:92;;;-1:-1:-1;7866:3473:92;;2901:36:88;;2897:98;;7866:3473:92;-1:-1:-1;7866:3473:92;2103:13:88;7866:3473:92;;;2103:34:88;7866:3473:92;-1:-1:-1;7866:3473:92;2103:34:88;:::i;:::-;3009;3005:84;;3099:25;3171:35;3099:25;:56;3171:35;3099:25;;;7866:3473:92;;2103:13:88;7866:3473:92;;;;;;;3099:56:88;-1:-1:-1;;7866:3473:92;;;;;;;;;;;;3171:35:88;;;;7866:3473:92;3005:84:88;7866:3473:92;-1:-1:-1;;;3066:12:88;;7866:3473:92;;3066:12:88;2897:98;7866:3473:92;-1:-1:-1;;;2960:24:88;;7866:3473:92;;2960:24:88;7866:3473:92;;;;;;-1:-1:-1;;7866:3473:92;;;;;;1537:38:87;-1:-1:-1;;;;;7866:3473:92;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;7866:3473:92;;;;;;;;-1:-1:-1;;7866:3473:92;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;7866:3473:92;;;;;2662:52:88;:43;7866:3473:92;;;;;:::i;:::-;;;-1:-1:-1;7866:3473:92;;;;;-1:-1:-1;7866:3473:92;;;;;;;;;;;;;;;;;2662:52:88;7866:3473:92;;;;;;;;;;;;-1:-1:-1;;7866:3473:92;;;;;;1632:54:87;-1:-1:-1;;;;;7866:3473:92;;;;;;;;;;;;-1:-1:-1;;7866:3473:92;;;;;;:::i;:::-;449:5:93;-1:-1:-1;;;;;7866:3473:92;435:10:93;:19;431:71;;8670:64:92;7866:3473;;;-1:-1:-1;7866:3473:92;8670:13;7866:3473;;;-1:-1:-1;7866:3473:92;8670:64;:::i;:::-;7866:3473;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:92;431:71:93;7866:3473:92;;-1:-1:-1;;;477:14:93;;7866:3473:92;;477:14:93;7866:3473:92;;;;;;-1:-1:-1;;7866:3473:92;;;;;;1743:56:87;-1:-1:-1;;;;;7866:3473:92;;;;;;;;;;;;-1:-1:-1;;7866:3473:92;;;;;;-1:-1:-1;;;;;7866:3473:92;;;;;;;;3361:103:30;;;:::i;:::-;7866:3473:92;;-1:-1:-1;;;4285:48:87;;4322:10;7866:3473:92;4285:48:87;;7866:3473:92;;;;;-1:-1:-1;;;;;4295:16:87;7866:3473:92;4285:48:87;;;;;;;-1:-1:-1;4285:48:87;;;7866:3473:92;4284:49:87;;4280:99;;-1:-1:-1;;;;;7866:3473:92;-1:-1:-1;;4322:10:87;297:2:99;7866:3473:92;;267:46:99;4459:27:87;;;;7866:3473:92;;4459:15:87;7866:3473:92;;;;;;;4459:27:87;7866:3473:92;4459:37:87;4455:87;;4654:38;4552:27;4654:38;4552:27;;;7866:3473:92;;4459:15:87;7866:3473:92;;;;;;;4552:27:87;7866:3473:92;4631:6:87;;;;:::i;:::-;7866:3473:92;;;;;;;;;;;;;4654:38:87;;;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;7866:3473:92;3860:283:30;3426:1;7866:3473:92;4280:99:87;7866:3473:92;;-1:-1:-1;;;4356:12:87;;7866:3473:92;;4356:12:87;4285:48;;;;7866:3473:92;4285:48:87;7866:3473:92;4285:48:87;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;7866:3473:92:-;;;;;;-1:-1:-1;;7866:3473:92;;;;;;-1:-1:-1;7866:3473:92;-1:-1:-1;;;;;;;;;;;7866:3473:92;;;4919:24:23;7866:3473:92;-1:-1:-1;7866:3473:92;4919:24:23;7866:3473:92;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;7866:3473:92;;;;;;322:32:80;-1:-1:-1;;;;;7866:3473:92;;;;;;;;;;;;-1:-1:-1;;7866:3473:92;;;;5350:25:23;7866:3473:92;;;;;;;:::i;:::-;;-1:-1:-1;7866:3473:92;-1:-1:-1;;;;;;;;;;;7866:3473:92;;3202:4:23;4919:24;7866:3473:92;-1:-1:-1;7866:3473:92;4919:24:23;7866:3473:92;3202:4:23;:::i;:::-;5350:25;:::i;7866:3473:92:-;;;;;;-1:-1:-1;;7866:3473:92;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;7866:3473:92;;6441:34:23;6437:102;;6549:37;7866:3473:92;;;6549:37:23;:::i;6437:102::-;7866:3473:92;;-1:-1:-1;;;6498:30:23;;7866:3473:92;;6498:30:23;7866:3473:92;;;;;;-1:-1:-1;;7866:3473:92;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;966:10:28;-1:-1:-1;7866:3473:92;;;;;;;;;;1356:26:87;;7866:3473:92;;4468:23:23;4464:108;;-1:-1:-1;4861:4:87;7866:3473:92;-1:-1:-1;;;;;7866:3473:92;;;;;;4861:13:87;;4857:63;;-1:-1:-1;;;;;;7866:3473:92;;;4861:4:87;7866:3473:92;4958:14:87;-1:-1:-1;;4958:14:87;4861:4;-1:-1:-1;;;;;;;;;;;7866:3473:92;;4464:108:23;7866:3473:92;;;;4514:47:23;;;;;;966:10:28;7866:3473:92;4514:47:23;;7866:3473:92;;;;;4514:47:23;7866:3473:92;;;;;;-1:-1:-1;;7866:3473:92;;;;;;-1:-1:-1;7866:3473:92;2103:13:88;7866:3473:92;;;2103:34:88;7866:3473:92;-1:-1:-1;7866:3473:92;2103:34:88;:::i;7866:3473:92:-;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:92;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;7866:3473:92;;;;-1:-1:-1;;;;;7866:3473:92;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;7866:3473:92;;;;;;;4301:16:26;7866:3473:92;;4726:16:26;;:34;;;;7866:3473:92;4805:1:26;4790:16;:50;;;;7866:3473:92;4855:13:26;:30;;;;7866:3473:92;4851:91:26;;;-1:-1:-1;;;;;;;;;;;7866:3473:92;;-1:-1:-1;;7866:3473:92;;;;;718:4:80;;4951:18:26;4979:67;;718:4:80;:::i;:::-;5066:101:26;;7866:3473:92;5066:101:26;-1:-1:-1;;;;;;;;;;;7866:3473:92;;-1:-1:-1;;;;7866:3473:92;;;;;-1:-1:-1;7866:3473:92;;5142:14:26;;7866:3473:92;;5142:14:26;7866:3473:92;4979:67:26;-1:-1:-1;;;;;;;;;;;7866:3473:92;;-1:-1:-1;;;;7866:3473:92;-1:-1:-1;;;7866:3473:92;;;718:4:80;:::i;4851:91:26:-;7866:3473:92;;-1:-1:-1;;;4908:23:26;;7866:3473:92;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;7866:3473:92;;;;;;-1:-1:-1;;7866:3473:92;;;;;;8038:36;-1:-1:-1;;;;;7866:3473:92;;;;;;;;;;;;-1:-1:-1;;7866:3473:92;;;;;;;952:44:88;7866:3473:92;;;;;;;;;-1:-1:-1;;7866:3473:92;;;;;;;1253:6:87;7866:3473:92;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:92;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;7866:3473:92;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;7866:3473:92;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:92;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;7866:3473:92;;;;;;-1:-1:-1;;7866:3473:92;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;7866:3473:92;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;7866:3473:92;;;;;;:::i;:::-;;;-1:-1:-1;;;;;7866:3473:92;;;;;;;1870:60:88;7866:3473:92;;;;;;:::i;:::-;;;;-1:-1:-1;7866:3473:92;1870:13:88;7866:3473:92;;;-1:-1:-1;7866:3473:92;1870:60:88;:::i;7866:3473:92:-;;;;;;-1:-1:-1;;7866:3473:92;;;;;;;1356:26:87;7866:3473:92;;;;;;;;;-1:-1:-1;;7866:3473:92;;;;;;7987:45;-1:-1:-1;;;;;7866:3473:92;;;;;;;;;;;;-1:-1:-1;;7866:3473:92;;;;;;;795:35:88;7866:3473:92;;;;;;;;;-1:-1:-1;;7866:3473:92;;;;;;;;-1:-1:-1;;;;;7866:3473:92;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:92;;;;;;3901:31:23;7866:3473:92;;;;;:::i;:::-;;;-1:-1:-1;7866:3473:92;-1:-1:-1;;;;;;;;;;;7866:3473:92;;;-1:-1:-1;7866:3473:92;;;;;;;;;;;;;;;;;3901:31:23;7866:3473:92;;;;;;;;;;;;;-1:-1:-1;;7866:3473:92;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:92;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;2399:78:88;:43;7866:3473:92;;;:::i;:::-;;;;;-1:-1:-1;7866:3473:92;;;;;-1:-1:-1;7866:3473:92;;;;;;;;;;;;;;;;;2399:43:88;:78;:::i;7866:3473:92:-;;;;;;-1:-1:-1;;7866:3473:92;;;;;;8080:45;-1:-1:-1;;;;;7866:3473:92;;;;;;;;;;;;-1:-1:-1;;7866:3473:92;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;7866:3473:92;;;;-1:-1:-1;7866:3473:92;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:86;;;;477:31;416:25;;:::i;:::-;7866:3473:92;;;;;;;;;;477:31:86;;7866:3473:92;;;;;;;;;;;:::i;:::-;477:31:86;7866:3473:92;;477:31:86;;;;;;:::i;:::-;518:79;;;7866:3473:92;518:79:86;;7866:3473:92;;;;;;-1:-1:-1;;7866:3473:92;;;;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:92;;;;;;;-1:-1:-1;;;;;404:28:80;7866:3473:92;;;;;;;;;;-1:-1:-1;;7866:3473:92;;;;;;1439:41:87;-1:-1:-1;;;;;7866:3473:92;;;;;;;;;;;;-1:-1:-1;;7866:3473:92;;;;;;-1:-1:-1;7866:3473:92;2009:67:87;7866:3473:92;;;;-1:-1:-1;7866:3473:92;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:92;;;;5767:26:23;7866:3473:92;;;;;;;:::i;:::-;;-1:-1:-1;7866:3473:92;-1:-1:-1;;;;;;;;;;;7866:3473:92;;3202:4:23;4919:24;7866:3473:92;-1:-1:-1;7866:3473:92;4919:24:23;7866:3473:92;3202:4:23;:::i;:::-;5767:26;:::i;7866:3473:92:-;;;;;;-1:-1:-1;;7866:3473:92;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;7866:3473:92;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;7866:3473:92;;;;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;-1:-1:-1;7866:3473:92;;;5246:21:87;;:13;;-1:-1:-1;;;;;7866:3473:92;5246:13:87;7866:3473:92;;-1:-1:-1;;;;;7866:3473:92;;;5246:21:87;7866:3473:92;;-1:-1:-1;;;5246:23:87;;7866:3473:92;;;;;5246:23:87;;;;;;;-1:-1:-1;5246:23:87;;;7866:3473:92;-1:-1:-1;;;;;;7866:3473:92;;;5232:10:87;:37;5228:87;;5341:4;7866:3473:92;-1:-1:-1;;;;;7866:3473:92;;;;5355:469:87;;7866:3473:92;-1:-1:-1;;7866:3473:92;;;;;;;;;;;;;;;;5839:55:87;;7866:3473:92;;;;5839:55:87;;;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;7866:3473:92;3860:283:30;5355:469:87;7866:3473:92;;;;5435:94:87;;;;7866:3473:92;5435:94:87;;;;;;;;;;;;7866:3473:92;5435:94:87;;;:::i;:::-;;7866:3473:92;;5435:94:87;;;;;;:::i;:::-;7866:3473:92;5548:9:87;:51;5544:118;;-1:-1:-1;5839:55:87;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;7866:3473:92;;-1:-1:-1;;;5626:21:87;;7866:3473:92;;5626:21:87;5228:87;7866:3473:92;;-1:-1:-1;;;5292:12:87;;7866:3473:92;;5292:12:87;5246:23;;;;;7866:3473:92;5246:23:87;7866:3473:92;5246:23:87;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;7866:3473:92;;;;;;-1:-1:-1;;7866:3473:92;;;;;;;;;:::i;:::-;;;:::i;:::-;449:5:93;-1:-1:-1;;;;;7866:3473:92;435:10:93;:19;431:71;;9461:43:92;:82;7866:3473;;;-1:-1:-1;7866:3473:92;;;;;-1:-1:-1;7866:3473:92;;;;;;;;;;;;;;;;;9461:43;:82;:::i;7866:3473::-;;;;;;-1:-1:-1;;7866:3473:92;;;;;;;;-1:-1:-1;;;;;7866:3473:92;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:92;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;7866:3473:92;;;;;;;1150:7:87;7866:3473:92;;;;;;;;;-1:-1:-1;;7866:3473:92;;;;;;;2700:1:87;7866:3473:92;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;9556:591::-;;;;7866:3473;9556:591;7866:3473;;;;9870:147;;;;;;;;;;;7866:3473;;;;;;;;;;;;;;;;;9870:147;;7866:3473;;;;;;;-1:-1:-1;;;;;7866:3473:92;;;;;9778:291;7866:3473;9802:229;7866:3473;;;9802:229;:::i;:::-;9870:147;7866:3473;;;9778:291;;;;;;:::i;:::-;10080:61;;;9556:591;:::o;10080:61::-;7866:3473;;;;;;;;9870:147;10113:17;;7866:3473;9870:147;10113:17;;;;;:::i;7866:3473::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;7866:3473:92;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:92;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;10153:1184::-;7866:3473;;-1:-1:-1;;;10370:99:92;;-1:-1:-1;;;;;7866:3473:92;;;10370:99;;;7866:3473;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7866:3473:92;;;10389:20;7866:3473;;10370:99;;;;;;;;;;;10153:1184;-1:-1:-1;7866:3473:92;;-1:-1:-1;;;10563:32:92;;;7866:3473;10370:99;7866:3473;;;;10563:32;;;;;;;10523:84;10563:32;10370:99;10563:32;;;;;;;10153:1184;-1:-1:-1;7866:3473:92;;-1:-1:-1;;;10523:84:92;;-1:-1:-1;;;;;7866:3473:92;;;10370:99;10523:84;;7866:3473;;;;;;;;;;;;;-1:-1:-1;7866:3473:92;;;;;;;;;10523:84;;10534:11;;7866:3473;10523:84;;;;;;;10370:99;10523:84;;;10153:1184;10651:50;;;;;10752:68;10651:50;;;;:::i;:::-;10752:68;;:::i;:::-;7866:3473;;;10848:21;;;:52;;;10153:1184;10848:85;;;;10153:1184;10848:142;;;;10153:1184;10831:500;;10153:1184;;;;;;:::o;10831:500::-;11022:298;7866:3473;;11022:298;7866:3473;;;;:::i;:::-;;;;10563:32;11050:256;;7866:3473;;11050:256;;7866:3473;;11050:256;;7866:3473;;;11022:298;;;10563:32;11022:298;;;:::i;10848:142::-;7866:3473;;;10953:37;;10848:142;;:85;7866:3473;;;10904:29;;10848:85;;:52;7866:3473;;;10873:27;;10848:52;;10523:84;10752:68;10523:84;;;;;;;;;10370:99;10523:84;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;10563:32;;;;;;;;;;;;;;:::i;:::-;;;;10370:99;;;;;;;;;;;;;;:::i;:::-;;;;;1742:195:88;;1870:60;1742:195;;-1:-1:-1;7866:3473:92;1870:13:88;7866:3473:92;;;-1:-1:-1;7866:3473:92;1870:60:88;:::i;2207:277::-;-1:-1:-1;7866:3473:92;;;2399:21:88;7866:3473:92;;;;;;;;-1:-1:-1;;;;;7866:3473:92;;;;;;;;;2399:78:88;;2207:277;;2399:78;:::i;7866:3473:92:-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;7866:3473:92;;;;:::o;:::-;;;:::o;8747:485::-;8935:219;8747:485;8959:157;8747:485;;;;7866:3473;;;;;9011:91;;;;;;;;;;;7866:3473;;;;;;;9011:91;;;;;:::i;:::-;8959:157;:::i;7866:3473::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:92;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;7866:3473:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:87:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;7866:3473:92;;:::i;:::-;;;;3086:20:87;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:87;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;7866:3473:92;;;;;;;;;;3430:180:87;;467:2:99;7866:3473:92;3430:180:87;;;;;:::i;:::-;;7866:3473:92;3444:31:87;-1:-1:-1;;;;;7866:3473:92;3430:180:87;;;;;;;-1:-1:-1;3430:180:87;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;7866:3473:92;;;-1:-1:-1;;;;;;7866:3473:92;3248:161:87;3354:37;;;7866:3473:92;3248:161:87;7866:3473:92;;;;;;;;;;3248:161:87;;;;;;;:::i;:::-;;7866:3473:92;3262:29:87;-1:-1:-1;;;;;7866:3473:92;3248:161:87;;;;;;;-1:-1:-1;3248:161:87;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;7866:3473:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;8889:1:97;7866:3473:92;;;;;;;:::o;:::-;;:::i;3740:389:87:-;3918:5;7866:3473:92;;;-1:-1:-1;;;3853:71:87;;;-1:-1:-1;;;;;7866:3473:92;;;3853:71:87;;;7866:3473:92;;;;;;;;3740:389:87;;7866:3473:92;3853:71:87;;7866:3473:92;;3853:71:87;7866:3473:92;;;3867:29:87;7866:3473:92;;3853:71:87;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;7866:3473:92;;;3852:181:87;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;7866:3473:92;;3945:88:87;;;-1:-1:-1;;;;;7866:3473:92;;3853:71:87;3945:88;;7866:3473:92;467:2:99;7866:3473:92;;;;;;;;-1:-1:-1;7866:3473:92;;;;;;;;3959:31:87;7866:3473:92;3945:88:87;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:87;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;4148:103:23;966:10:28;-1:-1:-1;7866:3473:92;;;;;;;;;952:44:88;;7866:3473:92;;3901:31:23;7866:3473:92;;4468:23:23;4464:108;;4148:103;:::o;:::-;966:10:28;-1:-1:-1;7866:3473:92;;;;;;;;;795:35:88;;7866:3473:92;;3901:31:23;7866:3473:92;4148:103:23;-1:-1:-1;7866:3473:92;;;-1:-1:-1;;;;;;;;;;;7866:3473:92;;;;;;;;966:10:28;7866:3473:92;;;;;;;;;3901:31:23;7866:3473:92;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7866:3473:92;;-1:-1:-1;7866:3473:92;;;-1:-1:-1;7866:3473:92;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;;7866:3473:92;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7866:3473:92;;;;;;;;:::o;6246:584:97:-;;;;;6360:12;;;7866:3473:92;;;6360:24:97;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;7866:3473:92;;;;;;6578:12:97;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:97;;;-1:-1:-1;;;;;7866:3473:92;;;;;;;6644:21:97;;;:29;:21;;:::i;:29::-;6798:25;6246:584;:::o;6600:188::-;6753:24;;7866:3473:92;;8310:38:71;;-1:-1:-1;;;;;7866:3473:92;;;;;8310:38:71;:::i;:::-;6753:24:97;;;:::i;6604:::-;7866:3473:92;;;;;;6614:14:97;;-1:-1:-1;6604:24:97;;;6356:75;-1:-1:-1;;;7866:3473:92;;;;;;6360:12:97;7866:3473:92;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:97;;;525:595:93;-1:-1:-1;525:595:93;;;;7866:3473:92;;716:88:93;;7866:3473:92;716:88:93;;;;;;;;;783:4;716:88;;;7866:3473:92;;;;;;;;;;;:::i;716:88:93:-;698:107;;;;;;;:::i;:::-;7866:3473:92;;857:45:93;;7866:3473:92;;;;;;;;716:88:93;857:45;;7866:3473:92;:::i;:::-;;;;;;;-1:-1:-1;;;;;7866:3473:92;;;;;857:45:93;716:88;857:45;;;7866:3473:92;;;;:::i;:::-;916:8:93;;912:175;;525:595;:::o;912:175::-;7866:3473:92;;944:22:93;;;940:36;;716:88;990:87;;10580:184:97;7866:3473:92;;10446:8:71;;;:63;-1:-1:-1;10446:63:71;-1:-1:-1;;;;;7866:3473:92;;10726:7:97;7866:3473:92;;10736:12:97;:17;:12;;:17;:::i;:::-;7866:3473:92;;;;;;10580:184:97;:::o;10446:63:71:-;7866:3473:92;;;;;;;;;;13267:109:97;-1:-1:-1;13267:109:97;;-1:-1:-1;13267:109:97;;;7866:3473:92;;;10446:63:71;;7866:3473:92;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;8406:869:97:-;;;7866:3473:92;;8620:15:97;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;7866:3473:92;9219:31:97;7866:3473:92;9130:48:97;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;9130:48;7866:3473:92;:::i;:::-;;9176:1:97;7866:3473:92;9232:17:97;7866:3473:92;;;;;;;;9232:17:97;;7866:3473:92;-1:-1:-1;;;;;7866:3473:92;;;;9219:12:97;;:31;:::i;7866:3473:92:-;9259:7:97;;:::i;:::-;7866:3473:92;;;;9252:15:97;9176:1;;9188:80;;8406:869::o;9010:62::-;8578:11;;-1:-1:-1;8578:11:97;;-1:-1:-1;8578:11:97;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;7866:3473:92;;;;;;;8939:60:97;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;7866:3473:92;;;;;;8759:49:97;7866:3473:92;;;;8753:55:97;7866:3473:92;;;8753:55:97;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;3470:384:30;-1:-1:-1;;;;;;;;;;;1991:1:30;7866:3473:92;;3670:20:30;3666:88;;1991:1;7866:3473:92;;3470:384:30:o;3666:88::-;7866:3473:92;;-1:-1:-1;;;3713:30:30;;;;;4758:308:88;;7866:3473:92;-1:-1:-1;7866:3473:92;4889:13:88;7866:3473:92;;;-1:-1:-1;7866:3473:92;11124:30:97;;;;:::i;:::-;11173;;;-1:-1:-1;11173:30:97;;;;11182:17;;-1:-1:-1;;;;;7866:3473:92;;11182:12:97;;:17;:::i;:::-;7866:3473:92;;;4889:13:88;7866:3473:92;;11173:30:97;4947::88;;;11173::97;4943:117:88;;;;4758:308;;:::o;4943:117::-;4993:56;7866:3473:92;-1:-1:-1;7866:3473:92;4889:13:88;7866:3473:92;;;-1:-1:-1;7866:3473:92;819:34:73;837:15;819:34;:::i;4993:56:88:-;4758:308;;:::o;4947:30::-;4957:20;;-1:-1:-1;4947:30:88;;;;11173::97;;;-1:-1:-1;11173:30:97;;7270:387:23;-1:-1:-1;;;;;7866:3473:92;;-1:-1:-1;7866:3473:92;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;7866:3473:92;;;;-1:-1:-1;7866:3473:92;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:92;;;;;;;;;;-1:-1:-1;;7866:3473:92;7509:4:23;7866:3473:92;;;966:10:28;;-1:-1:-1;;;;;7866:3473:92;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;7866:3473:92;;-1:-1:-1;7866:3473:92;;;;;;;;;1356:26:87;;-1:-1:-1;;;;;;;;;;;2887:71:23;7866:3473:92;;3901:31:23;7866:3473:92;;;;-1:-1:-1;7866:3473:92;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:92;;;;;;;;;;-1:-1:-1;;7866:3473:92;7509:4:23;7866:3473:92;;;966:10:28;;-1:-1:-1;;;;;7866:3473:92;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;7866:3473:92;;-1:-1:-1;7866:3473:92;;;;;;;;;795:35:88;;-1:-1:-1;;;;;;;;;;;2887:71:23;7866:3473:92;;3901:31:23;7866:3473:92;7270:387:23;-1:-1:-1;;;;;7866:3473:92;;-1:-1:-1;7866:3473:92;;;;;;;;;952:44:88;;-1:-1:-1;;;;;;;;;;;2887:71:23;7866:3473:92;;3901:31:23;7866:3473:92;7270:387:23;-1:-1:-1;7866:3473:92;;;-1:-1:-1;;;;;;;;;;;7866:3473:92;;;;;;;;-1:-1:-1;;;;;7866:3473:92;;;;;;;;;;;;3901:31:23;7866:3473:92;7892:388:23;-1:-1:-1;7866:3473:92;;;-1:-1:-1;;;;;;;;;;;7866:3473:92;;;;;;;;-1:-1:-1;;;;;7866:3473:92;;;;;;;;;;;;;;;;-1:-1:-1;7866:3473:92;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:92;;;;;;;;;;-1:-1:-1;;7866:3473:92;;;966:10:28;;-1:-1:-1;;;;;7866:3473:92;;8155:40:23;-1:-1:-1;;8155:40:23;7866:3473:92;8209:11:23;:::o;7866:3473:92:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;7866:3473:92;;;;;;;;:::i;5907:716:87:-;6030:34;5907:716;6030:34;;;;:::i;:::-;7866:3473:92;;-1:-1:-1;;;6080:41:87;;-1:-1:-1;;;;;7866:3473:92;;;6080:41:87;;;7866:3473:92;;;;;6080:41:87;7866:3473:92;;;6090:13:87;7866:3473:92;;6080:41:87;;;;;;;-1:-1:-1;6080:41:87;;;5907:716;6079:42;;6075:90;;6266:27;7866:3473:92;2684:111:30;6210:14:87;7866:3473:92;2684:111:30;;;:::i;:::-;7866:3473:92;;;;;;-1:-1:-1;;;;;7866:3473:92;;-1:-1:-1;7866:3473:92;;;-1:-1:-1;7866:3473:92;;6210:14:87;6266:27;:::i;:::-;6080:41;6311:15;;7866:3473:92;;;;-1:-1:-1;;;;;;7866:3473:92;-1:-1:-1;;;;;7866:3473:92;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:92;;;;6337:143:87;;5907:716;-1:-1:-1;6493:28:87;7866:3473:92;-1:-1:-1;;;;;7866:3473:92;;;;;;;6489:128:87;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;7866:3473:92;;-1:-1:-1;;;6144:10:87;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;7866:3473:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;7558:604:97:-;;7866:3473:92;;7686:17:97;7682:83;;7866:3473:92;7789:27:97;7866:3473:92;7789:27:97;7866:3473:92;;7789:27:97;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;7866:3473:92;;;;;;;;;;;;;;;;7888:22:97;;;7884:77;;7975:21;-1:-1:-1;7975:84:97;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;7866:3473:92;8075:24:97;:::o;7975:84::-;7866:3473:92;;;8009:16:97;7866:3473:92;;8009:16:97;:::i;:::-;7866:3473:92;;;8001:24:97;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;7866:3473:92;;;;;8029:29:97;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;7866:3473:92;7926:24:97;:::o;7682:83::-;7726:28;;;;:::i;7866:3473:92:-;;;;;;;;;;-1:-1:-1;;;;;7866:3473:92;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:92;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;3722:766:88:-;;;;;7866:3473:92;;:::i;:::-;;;;3962:16:88;3958:92;;3722:766;7866:3473:92;;4107:67:88;7866:3473:92;;;4146:27:88;4107;:13;7866:3473:92;-1:-1:-1;7866:3473:92;;;;;;;;;4107:27:88;4146;;;;7866:3473:92;;;;;;;;;;;4107:67:88;;;;;;;:::i;:::-;;;;;;;;;;4081:355;4107:67;-1:-1:-1;4107:67:88;;;3722:766;4260:28;4311:93;4260:28;4192:230;4260:28;;4222:67;7866:3473:92;4260:28:88;;;4222:67;;;:::i;:::-;4367:36;;;;;4311:93;;:::i;:::-;4192:230;3463:5:68;;;;3066;;7866:3473:92;3060:42:68;3371:111;;4081:355:88;4450:21;;3722:766;:::o;4107:67::-;4192:230;4107:67;;;;4311:93;4107:67;4146:27;4107:67;4146:27;4107:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;3958:92;4107:67;4008:31;;;;;;;;;;;;;;:::i;:::-;3958:92;;;;;4494:258;4635:5;7866:3473:92;;;-1:-1:-1;;;4628:27:88;;7866:3473:92;4494:258:88;4628:27;;7866:3473:92;;4628:27:88;;7866:3473:92;;-1:-1:-1;;;;;7866:3473:92;4628:27:88;;;;;;;4635:5;4628:27;;;4494:258;2103:25;2662:43;:52;2103:25;:34;:25;;7866:3473:92;;2103:13:88;7866:3473:92;;;;;;;2103:34:88;7866:3473:92;4635:5:88;7866:3473:92;4628:27:88;;7866:3473:92;;4635:5:88;7866:3473:92;;;;;;;;;;;;;;;;;2662:52:88;3463:5:68;;;;;3066;;7866:3473:92;3060:42:68;3463:5;;;;;3066;;7866:3473:92;3060:42:68;4494:258:88;:::o;4628:27::-;2662:52;4628:27;;;;2662:43;4628:27;;;;;;;;;;;:::i;:::-;;;;;;14296:213:69;7866:3473:92;14374:24:69;;;;14370:103;;7866:3473:92;14296:213:69;:::o;14370:103::-;7866:3473:92;;;;14421:41:69;;;;;;14452:2;14421:41;;;7866:3473:92;;;;;14421:41:69;10695:389:71;7866:3473:92;;10871:8:71;;;10895:20;;10833:17;10895:20;10833:17;10895:20;10833:17;10895:20;:::o;10867:211::-;7866:3473:92;;;;;;;;;;10833:17:71;13267:109:97;;10833:17:71;13267:109:97;;;7866:3473:92;11014:1:71;7866:3473:92;;;;;;;11030:37:71;:::o;18080:5181:68:-;18246:1;18241:6;;;18237:53;;18246:1;19217:14;-1:-1:-1;;;19278:16:68;;;19274:92;;18080:5181;22827:18;22717;22607;22498;22387;22278;23216:28;19383:15;19898:6;19383:15;-1:-1:-1;;;23237:6:68;19383:15;;;19379:90;;18080:5181;19493:7;19486:15;;;19482:90;;18080:5181;19596:7;19589:15;;;19585:89;;18080:5181;19698:6;19691:14;;;19687:87;;18080:5181;19798:6;19791:14;;;19787:87;;18080:5181;19891:14;;19887:61;;18080:5181;20374:1;7866:3473:92;18246:1:68;7866:3473:92;22284:6:68;;;;:::i;:::-;7866:3473:92;;;;;22278:18:68;22393:6;;;;:::i;22387:18::-;22504:6;;;;:::i;22498:18::-;22613:6;;;;:::i;22607:18::-;22723:6;;;;:::i;22717:18::-;22833:6;;;;:::i;22827:18::-;23237:6;;;:::i;:::-;23232:11;;;7866:3473:92;23216:28:68;7866:3473:92;;18080:5181:68;:::o;19887:61::-;18246:1;7866:3473:92;19887:61:68;;19787:87;7866:3473:92;;;;;19787:87:68;;;19687;7866:3473:92;;;;;19687:87:68;;;19585:89;7866:3473:92;;;;;19585:89:68;;;19482:90;7866:3473:92;;;;;19482:90:68;;;19379;7866:3473:92;;;;;19379:90:68;;;19274:92;-1:-1:-1;;;;7866:3473:92;-1:-1:-1;7866:3473:92;;;;19274:92:68;;12497:447:97;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;3721:5:68;;;;;;7866:3473:92;;3731:5:68;;;7866:3473:92;;;;;;;;;13267:109:97;-1:-1:-1;13267:109:97;7866:3473:92;13267:109:97;;;-1:-1:-1;13267:109:97;;7866:3473:92;;;;;-1:-1:-1;12771:136:97;7866:3473:92;;;12830:10:97;;12771:136;;12687:230;;;;12771:136;7866:3473:92;;;;;;;;;;;12771:136:97;;;6893:76:26;;;:::i;:::-;;;:::i;:::-;1949:1:30;-1:-1:-1;;;;;;;;;;;7866:3473:92;6893:76:26:o;7866:3473:92:-;;;;;;;:::i;:::-;-1:-1:-1;7866:3473:92;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:92;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7866:3473:92;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;5072:1269:88:-;5220:30;5072:1269;7866:3473:92;;:::i;:::-;;5220:30:88;7866:3473:92;;;5220:30:88;;;;;;:::i;:::-;5278:17;;7866:3473:92;5278:17:88;;7866:3473:92;-1:-1:-1;;;;;7866:3473:92;5278:54:88;;:178;;5072:1269;5261:258;;5534:9;5220:30;5549:33;;;5278:17;5591:3;5549:33;;7866:3473:92;;5545:44:88;;;;;5614:36;;;:50;:36;;:::i;:::-;7866:3473:92;-1:-1:-1;;;;;7866:3473:92;;;5614:50:88;;5610:119;;5747:73;5748:72;5783:36;;:33;;;:36;:::i;:::-;5748:72;:::i;:::-;5747:73;;7866:3473:92;5747:73:88;5743:140;;7866:3473:92;;5534:9:88;;5743:140;7866:3473:92;;-1:-1:-1;;;5847:21:88;;;;;5610:119;7866:3473:92;;-1:-1:-1;;;5691:23:88;;;;;5545:44;-1:-1:-1;5923:41:88;;-1:-1:-1;;5923:41:88;;;;5278:17;5973:3;5923:41;;7866:3473:92;;5919:52:88;;;;;5996:44;;;:58;:44;;:::i;:58::-;;5992:127;;6137:90;6138:89;6182:44;;:41;;;:44;:::i;:::-;6138:89;:::i;6137:90::-;6133:157;;7866:3473:92;;5908:9:88;;6133:157;7866:3473:92;;-1:-1:-1;;;6254:21:88;;;;;5992:127;7866:3473:92;;-1:-1:-1;;;6081:23:88;;;;;5919:52;;;;;;6317:17;5072:1269;:::o;5261:258::-;7866:3473:92;;-1:-1:-1;;;5488:20:88;;;;;5278:178;5353:33;5220:30;5353:33;;;7866:3473:92;5353:45:88;:102;5278:178;5353:102;5402:41;;;;;7866:3473:92;5402:53:88;5278:178;;6999:207:97;;7866:3473:92;;9737:15:71;-1:-1:-1;9762:18:71;9795:7;9801:1;9795:7;;9791:234;;6999:207:97;10049:53:71;;;;;:::i;:::-;10120:8;;;:63;-1:-1:-1;10120:63:71;;-1:-1:-1;;;;;7866:3473:92;;7168:7:97;7866:3473:92;;;7178:12:97;;:17;:12;;:17;:::i;10120:63:71:-;10135:41;10168:7;10135:48;10168:7;;:::i;:::-;10135:41;13267:109:97;;;;;;13089:293;;10135:41:71;7866:3473:92;;;;;10135:48:71;10120:63;;;9791:234;9838:14;;;;;:::i;:::-;7866:3473:92;;;;;;;10049:53:71;13267:109:97;;-1:-1:-1;13267:109:97;7866:3473:92;13267:109:97;;;-1:-1:-1;13267:109:97;;7866:3473:92;;;;;9870:48:71;9866:149;7866:3473:92;;;9938:10:71;9866:149;9791:234;;9866:149;9993:7;;;;;;:::i;:::-;9866:149;9791:234;;7866:3473:92;;;;;;;:::i;:::-;-1:-1:-1;7866:3473:92;;;;;;;:::o;11486:272:97:-;;7866:3473:92;11452:22:71;11718:31:97;11486:272;7866:3473:92;;:::i;:::-;;;;:::i;:::-;;11452:22:71;;:::i;:::-;7866:3473:92;;:::i;:::-;;11718:12:97;7866:3473:92;;;;;11731:17:97;7866:3473:92;;;;;11731:17:97;;7866:3473:92;;11718:12:97;;:31;:::i;:::-;7866:3473:92;;;;;;;;;:::i;:::-;;;;;;11731:17:97;11672:79;;7866:3473:92;11486:272:97;:::o;7866:3473:92:-;;;-1:-1:-1;;;7866:3473:92;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;7866:3473:92;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11657:922:71;7866:3473:92;;11657:922:71;;;11864:7;;;;11936;11916:28;11936:7;;:::i;:::-;11916:28;13267:109:97;;;;;;13089:293;;11916:28:71;7866:3473:92;;;;;;;;;;;;12103:13:71;;;12099:89;;12251:14;;;;;12285:19;;;;7866:3473:92;;;;;;;;;;;;;;;;;12285:19:71;7866:3473:92;;12423:25:71;;:::o;12247:163::-;7866:3473:92;;;12343:52:71;7866:3473:92;12353:41:71;7866:3473:92;;:::i;:::-;;;;;;;;12353:41:71;-1:-1:-1;;;;;7866:3473:92;;12353:41:71;;;7866:3473:92;12343:52:71;:::i;:::-;12247:163;;12099:89;7866:3473:92;;-1:-1:-1;;;12143:30:71;;;;;11860:713;7866:3473:92;;12479:52:71;7866:3473:92;12489:41:71;7866:3473:92;;:::i;12489:41:71:-;-1:-1:-1;;;;;7866:3473:92;;12489:41:71;;;7866:3473:92;12343:52:71;:::i;12479:::-;11870:1;12545:17;;:::o;7084:141:26:-;7866:3473:92;-1:-1:-1;;;;;;;;;;;7866:3473:92;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;7866:3473:92;;-1:-1:-1;;;7191:17:26;;;;","linkReferences":{},"immutableReferences":{"59800":[{"start":2349,"length":32}],"59803":[{"start":4427,"length":32}],"60754":[{"start":1953,"length":32},{"start":4484,"length":32}],"60757":[{"start":1250,"length":32},{"start":9830,"length":32}],"60760":[{"start":1612,"length":32},{"start":7136,"length":32},{"start":7439,"length":32}],"60763":[{"start":1823,"length":32},{"start":6983,"length":32},{"start":7565,"length":32}],"63654":[{"start":3772,"length":32},{"start":6042,"length":32}],"63656":[{"start":3215,"length":32},{"start":6203,"length":32}],"63658":[{"start":4175,"length":32}],"64360":[{"start":1686,"length":32},{"start":5260,"length":32}]}},"methodIdentifiers":{"BASE_DELEGATOR_HINTS()":"79d89614","DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_LIMIT_SET_ROLE()":"7d24bb27","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_LIMIT_SET_ROLE()":"518504ba","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","OPT_IN_SERVICE_HINTS()":"9b656b22","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VAULT_HINTS()":"45e78fcb","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","networkLimit(bytes32)":"3eb22c0f","networkLimitAt(bytes32,uint48,bytes)":"5d32a1c9","networkLimitHint(address,bytes32,uint48)":"da749d2b","networkLimitHintInternal(bytes32,uint48)":"197aa7ea","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operatorNetworkLimit(bytes32,address)":"11422095","operatorNetworkLimitAt(bytes32,address,uint48,bytes)":"94d2558a","operatorNetworkLimitHint(address,bytes32,address,uint48)":"10a28b5d","operatorNetworkLimitHintInternal(bytes32,address,uint48)":"f7b05547","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","setNetworkLimit(bytes32,uint256)":"02145348","setOperatorNetworkLimit(bytes32,address,uint256)":"020cf0c2","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","stakeHints(address,bytes32,address,uint48)":"25dc9708","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseDelegatorHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"optInServiceHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateRoleHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExceedsMaxNetworkLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoleHolders\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressRoleHolder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetOperatorNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPT_IN_SERVICE_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"networkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"networkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"operatorNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"operatorNetworkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"operatorNetworkLimitHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"operatorNetworkLimitHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setOperatorNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetOperatorNetworkLimit(bytes32,address,uint256)\":{\"params\":{\"amount\":\"new operator's limit for the subnetwork (how much stake the vault curator is ready to give to the operator for the subnetwork)\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"networkLimit(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the subnetwork\"}},\"networkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the subnetwork limit at\"},\"returns\":{\"_0\":\"limit of the subnetwork at the given timestamp\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"operatorNetworkLimit(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the operator for the subnetwork\"}},\"operatorNetworkLimitAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the operator's limit for the subnetwork at\"},\"returns\":{\"_0\":\"limit of the operator for the subnetwork at the given timestamp\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"setNetworkLimit(bytes32,uint256)\":{\"details\":\"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"setOperatorNetworkLimit(bytes32,address,uint256)\":{\"details\":\"Only an OPERATOR_NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the operator for the subnetwork\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"},\"SetNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's limit is set.\"},\"SetOperatorNetworkLimit(bytes32,address,uint256)\":{\"notice\":\"Emitted when an operator's limit for a subnetwork is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get a subnetwork limit setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get an operator-subnetwork limit setter's role.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"networkLimit(bytes32)\":{\"notice\":\"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"networkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operatorNetworkLimit(bytes32,address)\":{\"notice\":\"Get an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)\"},\"operatorNetworkLimitAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get an operator's limit for a subnetwork at a given timestamp using a hint (how much stake the vault curator is ready to give to the operator for the subnetwork).\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"setNetworkLimit(bytes32,uint256)\":{\"notice\":\"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"setOperatorNetworkLimit(bytes32,address,uint256)\":{\"notice\":\"Set an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/DelegatorHints.sol\":\"FullRestakeDelegatorHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf\",\"dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x4aaaf1c0737dd16e81f0d2b9833c549747a5ede6873bf1444bc72aa572d03e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eada27d7668eebaea16c3b890aa1b38ffc53965292e26c96f7c44834623f4710\",\"dweb:/ipfs/QmVSWuLtxyCqNbLyY89ptxkvsk4CLLKDQYigEne5Qj8k1L\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a\",\"dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c\",\"dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e\",\"dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0xbdc3bb48ccedb818cd75a6d74a16df55a822e9f6d3cc54c59f576f10aab67b5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2284f25f2478f419d7781573b17a89d0e7c5589a865d55e2d6ed5163aee23aa8\",\"dweb:/ipfs/QmNsr2625APBQiNKpYnX5VcSnYgfUHR9Uzzp9pRXjoDqK7\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44\",\"dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x303ad40a3de8fa808cc30a6fbd5998633f6a89b982e6db1fa981e0566ab445e7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fa8fb92995ead02798e013190b87b84b44cc68668262f045c9b0b4783940e2bf\",\"dweb:/ipfs/QmV1uKGVLKwWisc714R8fCt71gXUQJpaKvdc6LQ8WtvMpL\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0xd71e9102e99a25ee8b5435779f011a24558f56074aa2b16c18b623b57754ae97\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://29db5552e55dab51bea1ae40ba00ca674cb50fcb10997999a72a94527b6eb591\",\"dweb:/ipfs/QmQrYyTPx73ubNxMhYWJCkprCVFVtuTFcKaabYiKTe71tY\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x7ee6dbf060c45d6eba95315f4ac0b3b467dd9c4999b84c31d6f66d4d8b53a116\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://301948b8ea522db292aa2722ba42def3911dae95f0b376f7023c3fef470f8676\",\"dweb:/ipfs/QmSDbP2HdzhDAzstr8Zz5isEAcSkma8ABc5UwPsoazaumZ\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseDelegatorHints","type":"address"},{"internalType":"address","name":"vaultHints","type":"address"},{"internalType":"address","name":"optInServiceHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DuplicateRoleHolder"},{"inputs":[],"type":"error","name":"ExceedsMaxNetworkLimit"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"MissingRoleHolders"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"ZeroAddressRoleHolder"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetOperatorNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPT_IN_SERVICE_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"networkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"networkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"operatorNetworkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"operatorNetworkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"operatorNetworkLimitHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"operatorNetworkLimitHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setOperatorNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"networkLimit(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the subnetwork"}},"networkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the subnetwork limit at"},"returns":{"_0":"limit of the subnetwork at the given timestamp"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"operatorNetworkLimit(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the operator for the subnetwork"}},"operatorNetworkLimitAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the operator's limit for the subnetwork at"},"returns":{"_0":"limit of the operator for the subnetwork at the given timestamp"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"setNetworkLimit(bytes32,uint256)":{"details":"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"setOperatorNetworkLimit(bytes32,address,uint256)":{"details":"Only an OPERATOR_NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the operator for the subnetwork","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_LIMIT_SET_ROLE()":{"notice":"Get a subnetwork limit setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_LIMIT_SET_ROLE()":{"notice":"Get an operator-subnetwork limit setter's role."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"networkLimit(bytes32)":{"notice":"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"networkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operatorNetworkLimit(bytes32,address)":{"notice":"Get an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)"},"operatorNetworkLimitAt(bytes32,address,uint48,bytes)":{"notice":"Get an operator's limit for a subnetwork at a given timestamp using a hint (how much stake the vault curator is ready to give to the operator for the subnetwork)."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"setNetworkLimit(bytes32,uint256)":{"notice":"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"setOperatorNetworkLimit(bytes32,address,uint256)":{"notice":"Set an operator's limit for a subnetwork. (how much stake the vault curator is ready to give to the operator for the subnetwork)"},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/DelegatorHints.sol":"FullRestakeDelegatorHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866","urls":["bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf","dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab","urls":["bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89","dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606","urls":["bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1","dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x4aaaf1c0737dd16e81f0d2b9833c549747a5ede6873bf1444bc72aa572d03e98","urls":["bzz-raw://eada27d7668eebaea16c3b890aa1b38ffc53965292e26c96f7c44834623f4710","dweb:/ipfs/QmVSWuLtxyCqNbLyY89ptxkvsk4CLLKDQYigEne5Qj8k1L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol":{"keccak256":"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549","urls":["bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a","dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed","urls":["bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0","dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d","urls":["bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c","dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575","urls":["bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e","dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0xbdc3bb48ccedb818cd75a6d74a16df55a822e9f6d3cc54c59f576f10aab67b5f","urls":["bzz-raw://2284f25f2478f419d7781573b17a89d0e7c5589a865d55e2d6ed5163aee23aa8","dweb:/ipfs/QmNsr2625APBQiNKpYnX5VcSnYgfUHR9Uzzp9pRXjoDqK7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f","urls":["bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44","dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x303ad40a3de8fa808cc30a6fbd5998633f6a89b982e6db1fa981e0566ab445e7","urls":["bzz-raw://fa8fb92995ead02798e013190b87b84b44cc68668262f045c9b0b4783940e2bf","dweb:/ipfs/QmV1uKGVLKwWisc714R8fCt71gXUQJpaKvdc6LQ8WtvMpL"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0xd71e9102e99a25ee8b5435779f011a24558f56074aa2b16c18b623b57754ae97","urls":["bzz-raw://29db5552e55dab51bea1ae40ba00ca674cb50fcb10997999a72a94527b6eb591","dweb:/ipfs/QmQrYyTPx73ubNxMhYWJCkprCVFVtuTFcKaabYiKTe71tY"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x7ee6dbf060c45d6eba95315f4ac0b3b467dd9c4999b84c31d6f66d4d8b53a116","urls":["bzz-raw://301948b8ea522db292aa2722ba42def3911dae95f0b376f7023c3fef470f8676","dweb:/ipfs/QmSDbP2HdzhDAzstr8Zz5isEAcSkma8ABc5UwPsoazaumZ"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":92} \ No newline at end of file diff --git a/out/DelegatorHints.sol/NetworkRestakeDelegatorHints.json b/out/DelegatorHints.sol/NetworkRestakeDelegatorHints.json index 1e557e0f..675cb624 100644 --- a/out/DelegatorHints.sol/NetworkRestakeDelegatorHints.json +++ b/out/DelegatorHints.sol/NetworkRestakeDelegatorHints.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"baseDelegatorHints","type":"address","internalType":"address"},{"name":"vaultHints","type":"address","internalType":"address"},{"name":"optInServiceHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_SHARES_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPT_IN_SERVICE_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VAULT_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkSharesAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkSharesHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkSharesHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"totalOperatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalOperatorNetworkSharesAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalOperatorNetworkSharesHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"totalOperatorNetworkSharesHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetOperatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DuplicateRoleHolder","inputs":[]},{"type":"error","name":"ExceedsMaxNetworkLimit","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"MissingRoleHolders","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddressRoleHolder","inputs":[]}],"bytecode":{"object":"0x6101c0346101cf57601f61383338819003918201601f19168301916001600160401b0391828411858510176101d35781606092869260409687528339810103126101cf5761004c836101e7565b926100648361005d602084016101e7565b92016101e7565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101be57808083160361017a575b5050505f60a0525f60c0525f60e052610100935f8552610120935f8552610140905f82526101609283526101809384526101a0948552519461363796876101fc88396080518781816105a001528181610fd70152611629015260a051876109e9015260c051876112ac015260e05187818161084b01526112e5015251868181610512015261298501525185818161055601528181611e330152611f3b0152518481816107c901528181611d9a0152611fb9015251838181610e95015261194d015251828181610d9701526119ee015251816110490152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101cf5756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461030457806302145348146102ff57806307f9d5fd146102fa578063103f2907146102f5578063128e5d82146102f0578063197aa7ea146102eb5780631a7a7044146102e65780631a80e500146102e157806323f752d5146102dc578063248a9ca3146102d757806325dc9708146102d25780632dd31000146102cd5780632f2ff15d146102c857806336568abe146102c35780633dfd3873146102be5780633eb22c0f146102b957806342c53e33146102b4578063439fab91146102af57806345e78fcb146102aa578063557cab44146102a55780635d32a1c9146102a05780636679191e1461029b57806379d89614146102965780637d24bb27146102915780637f5a7c7b1461028c5780638b3f10b01461028757806391d1485414610282578063987b3ee81461027d5780639b656b22146102785780639f86fd8514610273578063a217fddf1461026e578063a33bc28714610269578063b549ef1f14610264578063bb24fe8a1461025f578063c0cd7c3e1461025a578063c43dc03f14610255578063d15b740e14610250578063d547741f1461024b578063da749d2b14610246578063e02f693714610241578063e49561ee1461023c578063e78eb6ae14610237578063ed4d89e514610232578063fbfa77cf1461022d578063fd4d447c14610228578063ff54740f146102235763ffa1ad741461021e575f80fd5b6116dc565b6116bf565b611695565b61166e565b61160e565b6115d4565b6113e9565b6113cd565b6113b3565b611367565b61133d565b611314565b6112d0565b61128d565b611273565b611126565b61110c565b611078565b611034565b610fa6565b610f48565b610f25565b610efd565b610ec4565b610e80565b610e46565b610e23565b610dc6565b610d82565b610c4a565b610bd1565b610ba8565b610aaf565b610a64565b610a18565b6109d4565b6109b7565b61097e565b6107f8565b6107b4565b61076e565b610585565b610541565b6104fd565b6104c8565b61035e565b3461035a57602036600319011261035a5760043563ffffffff60e01b811680910361035a57602090637965db0b60e01b8114908115610349575b506040519015158152f35b6301ffc9a760e01b1490505f61033e565b5f80fd5b3461035a5760408060031936011261035a57600435906024359061038061202e565b825f526002602052805f2054821161041a57825f526003602052816103a6825f206128d7565b1461040a5781610405916103f57e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103e6875f52600360205260405f2090565b6103ef42612d8e565b90612176565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b6001600160a01b0381160361035a57565b6024359065ffffffffffff8216820361035a57565b6064359065ffffffffffff8216820361035a57565b608090600319011261035a5760043561047d8161042a565b906024359060443561048e8161042a565b9060643565ffffffffffff8116810361035a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461035a576104f96104e56104dc36610465565b92919091611736565b6040519182916020835260208301906104a4565b0390f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a5761059e61043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600360205260405f206122f5565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761064357604052565b610614565b606081019081106001600160401b0382111761064357604052565b60a081019081106001600160401b0382111761064357604052565b90601f801991011681019081106001600160401b0382111761064357604052565b604051906106ac82610663565b565b604051906106ac82610628565b6001600160401b03811161064357601f01601f191660200190565b81601f8201121561035a578035906106ed826106bb565b926106fb604051948561067e565b8284526020838301011161035a57815f926020809301838601378301015290565b90608060031983011261035a57600435916024356107398161042a565b9160443565ffffffffffff8116810361035a5791606435906001600160401b03821161035a5761076b916004016106d6565b90565b3461035a5760206107ac6107a76107843661071c565b939190925f526005865260405f209060018060a01b03165f5260205260405f2090565b61242d565b604051908152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356001600160601b038116810361035a5760243590610828612505565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610979575f9161094a575b5015610938576001600160601b03166bffffffffffffffffffffffff193360601b161790806108b2835f52600260205260405f2090565b54146109265761090b817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c926108f0855f52600260205260405f2090565b556108fb8185612534565b6040519081529081906020820190565b0390a261092460015f805160206135c283398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b61096c915060203d602011610972575b610964818361067e565b8101906117e8565b5f61087b565b503d61095a565b6117fc565b3461035a57602036600319011261035a576004355f525f805160206135a28339815191526020526020600160405f200154604051908152f35b3461035a576104f96104e56109cb36610465565b92919091611904565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a57610924602435600435610a3b8261042a565b805f525f805160206135a2833981519152602052610a5f600160405f2001546120e1565b61280f565b3461035a57604036600319011261035a57602435610a818161042a565b336001600160a01b03821603610a9d5761092490600435612845565b60405163334bd91960e11b8152600490fd5b3461035a57602036600319011261035a57600435610acc8161042a565b610ad4612505565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610b8a57506001546001600160a01b039182169181168214610926576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f805160206135c283398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461035a57602036600319011261035a576004355f52600360205260206107ac60405f206128d7565b3461035a57604036600319011261035a5760206107ac610c18602435610bf68161042a565b6004355f526005845260405f209060018060a01b03165f5260205260405f2090565b6128d7565b9181601f8401121561035a578235916001600160401b03831161035a576020838186019501011161035a57565b3461035a57602036600319011261035a576001600160401b0360043581811161035a57610c7b903690600401610c1d565b5f805160206135e2833981519152549260ff8460401c1615931680159081610d7a575b6001149081610d70575b159081610d67575b50610d55575f805160206135e2833981519152805467ffffffffffffffff19166001179055610ce39183610d3157612950565b610ce957005b5f805160206135e2833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f805160206135e2833981519152805460ff60401b1916600160401b179055612950565b60405163f92ee8a960e01b8152600490fd5b9050155f610cb0565b303b159150610ca8565b849150610c9e565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576020604051614e208152f35b606060031982011261035a576004359160243565ffffffffffff8116810361035a5791604435906001600160401b03821161035a5761076b916004016106d6565b3461035a5760206107ac610e3636610de2565b915f526003845260405f2061242d565b3461035a575f36600319011261035a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461035a575f36600319011261035a576001546040516001600160a01b039091168152602090f35b3461035a5760206107ac610f3836610de2565b915f526004845260405f2061242d565b3461035a57604036600319011261035a57602060ff610f9a602435610f6c8161042a565b6004355f525f805160206135a2833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461035a57606036600319011261035a57602435610fc38161042a565b60443565ffffffffffff8116810361035a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106025761102f6105e5926004355f52600560205260405f209060018060a01b03165f5260205260405f2090565b6122f5565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356110958161042a565b6024356001600160401b03811161035a575f916110b783923690600401610c1d565b90816040519283928337810184815203915af46111046110d5611b60565b916110f66040519384921515602084015260408084015260608301906104a4565b03601f19810183528261067e565b805190602001fd5b3461035a575f36600319011261035a5760206040515f8152f35b3461035a57606036600319011261035a576024356004356111468261042a565b6044359161115261208a565b5f8281526005602090815260408083206001600160a01b0385168452909152902061117c906128d7565b838114610926577f739a5a3ec0ff71e2386d0013deac5f44e0935a98def2e2a5ddf9a709518c8294916111ef61123c92855f52600460205260405f20906111e9886111e46111c942612d8e565b936111df610c188c5f52600460205260405f2090565b611bb6565b611bd1565b91612176565b5050611220856103e68361120b885f52600560205260405f2090565b9060018060a01b03165f5260205260405f2090565b50506040519485526001600160a01b0316939081906020820190565b0390a3005b606090600319011261035a576004356112598161042a565b906024359060443565ffffffffffff8116810361035a5790565b3461035a576104f96104e561128736611241565b91611bde565b3461035a575f36600319011261035a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57602036600319011261035a576004355f52600460205260206107ac60405f206128d7565b3461035a57602036600319011261035a576004355f526002602052602060405f2054604051908152f35b3461035a57604036600319011261035a5761092460243560043561138a8261042a565b805f525f805160206135a28339815191526020526113ae600160405f2001546120e1565b612845565b3461035a576104f96104e56113c736611241565b91611c28565b3461035a5760206107ac6113e03661071c565b92919091611d24565b3461035a5760a036600319011261035a576024356004356114098261042a565b60443591611415610450565b90608435906001600160401b03821161035a57611437600492369084016106d6565b61143f612505565b5f5460209061146490611458906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa928315610979575f936115a3575b506001600160a01b039283163303611591576001546001600160a01b0316838116611506575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361092460015f805160206135c283398151915255565b90936040519461153d8661152f602082019363724ab0f760e11b8552858c898d60248701611eae565b03601f19810188528761067e565b62042e305a1061157f575f6114ed938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f150936114ac565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b6115c691935060203d6020116115cd575b6115be818361067e565b810190611872565b915f611486565b503d6115b4565b3461035a575f36600319011261035a5760206040517f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846258152f35b3461035a57604036600319011261035a5761162761043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600460205260405f206122f5565b3461035a575f36600319011261035a575f546040516001600160a01b039091168152602090f35b3461035a57604036600319011261035a5760206107ac6024356116b78161042a565b600435611f04565b3461035a575f36600319011261035a5760206040516203d0908152f35b3461035a575f36600319011261035a57602060405160018152f35b5190811515820361035a57565b519063ffffffff8216820361035a57565b919082604091031261035a5761076b602061172f846116f7565b9301611704565b906117869165ffffffffffff6117959496956060976040519463130f67dd60e31b6020870152602486015260018060a01b031660448501521660648301526064825261178182610663565b612238565b60208082518301019101611715565b9061179d5750565b90915063ffffffff604051911660208201526020815261076b81610628565b5f9081526005602090815260408083206001600160a01b0390941683529290522061076b92919061242d565b9081602091031261035a5761076b906116f7565b6040513d5f823e3d90fd5b81601f8201121561035a5780519061181e826106bb565b9261182c604051948561067e565b8284526020838301011161035a57815f9260208093018386015e8301015290565b9060208282031261035a5781516001600160401b03811161035a5761076b9201611807565b9081602091031261035a575161076b8161042a565b9061076b91602081526118a6825160a0602084015260c08301906104a4565b9060a060806118f46118e16118cd602088015196601f1997888883030160408901526104a4565b6040880151878783030160608801526104a4565b60608701518686830301848701526104a4565b94015192828503019101526104a4565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491935f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa948515610979575f95611b18575b5060405163fbfa77cf60e01b8152602081600481888d165afa908115610979576119ea995f9285928491611af9575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa978815610979575f98611acf575b509081611a3b82611a3381611a419689611c28565b958388611736565b94611bde565b90835115801590611ac5575b8015611abb575b8015611ab1575b8015611aa7575b611a6f5750505050909150565b6110f6955061076b9496611a8161069f565b948552602085015260408401526060830152608082015260405192839160208301611887565b5081511515611a62565b5082511515611a5b565b5080511515611a54565b5086511515611a4d565b611a4192919850611af1903d805f833e611ae9818361067e565b81019061184d565b979091611a1e565b611b12915060203d6020116115cd576115be818361067e565b5f6119ad565b611b2d9195503d805f833e611ae9818361067e565b935f61197e565b9061076b92915f52600360205260405f2061242d565b9061076b92915f52600460205260405f2061242d565b3d15611b8a573d90611b71826106bb565b91611b7f604051938461067e565b82523d5f602084013e565b606090565b634e487b7160e01b5f52601160045260245ffd5b5f19810191908211611bb157565b611b8f565b91908203918211611bb157565b9060018201809211611bb157565b91908201809211611bb157565b60405163ed4d89e560e01b6020820152602481019290925265ffffffffffff909216604482015260609291611795916117869161178182606481015b03601f19810184528361067e565b604051630cbd53f560e11b6020820152602481019290925265ffffffffffff90921660448201526060929161179591611786916117818260648101611c1a565b60405190611c7582610628565b60606020838281520152565b9060208282031261035a5781516001600160401b039283821161035a57019060408282031261035a5760405192611cb784610628565b825181811161035a5782611ccc918501611807565b8452602083015190811161035a57611ce49201611807565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261076b929101906104a4565b92611d3490929192828486612bb5565b929093611d3f611c68565b93805180611e92575b50508415938415611dfc575b8415611d6b575b50505050611d665790565b505f90565b602080949550611d96910151604051958694859463530e1d4360e01b865260601c9060048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611ddd575b50155f808080611d5b565b611df6915060203d60201161097257610964818361067e565b5f611dd2565b5f549094506001600160a01b0316602084865192611e2f604051948593849363530e1d4360e01b85528960048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611e73575b501593611d54565b611e8c915060203d60201161097257610964818361067e565b5f611e6b565b611ea6929550602080918301019101611c81565b925f80611d48565b919360a09361076b969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906104a4565b8115611ef0570490565b634e487b7160e01b5f52601260045260245ffd5b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610979575f91612011575b5015918215611f8d575b50509050611f875761076b91612ccb565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610979575f92611ff4575b505015805f80611f76565b61200a9250803d1061097257610964818361067e565b5f80611fe9565b6120289150843d861161097257610964818361067e565b5f611f6c565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b541615610b8a5750565b335f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846259060ff90612080565b5f8181525f805160206135a283398151915260209081526040808320338452909152902060ff90612080565b634e487b7160e01b5f52603260045260245ffd5b8054821015612136575f5260205f2001905f90565b61210d565b90815491600160401b831015610643578261215e9160016106ac95018155612121565b90919082549060031b91821b915f19901b1916179055565b90929192600182019081548015612208575b508461219384612dc0565b509490928454936121a3836128d7565b96816121f3575b50156121d0575050505f198101908111611bb15761215e85916121cc93612121565b9190565b6121cc9492936121ec926001600160d01b039091169190613486565b505061213b565b65ffffffffffff83811691161490505f6121aa565b600160401b811015610643578060016122249201845583612121565b8154905f199060031b1b191690555f612188565b5f9190829160405161226d816110f66020820194639f86fd8560e01b86523060248401526040604484015260648301906104a4565b51915afa5061227a611b60565b8051810160408282031261035a57612294602083016116f7565b916040810151916001600160401b03831161035a576122ba926020809201920101611807565b90156122c35790565b805190811561035a57602001fd5b906040516122de81610628565b915465ffffffffffff8116835260301c6020830152565b91908254905f82916005841161239d575b612311935085612f24565b9081156123915761238a61238161237b61237161234361233e61233388611ba3565b895f5260205f200190565b6122d1565b96600161236a602061235b8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101612121565b90549060031b1c90565b93611ba3565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926123a881612df9565b8103908111611bb15761231193865f526123dc6123d18360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff851610156123f2575091612306565b9291506123fe90611bc3565b90612306565b9081602091031261035a5761076b90611704565b90600163ffffffff80931601918211611bb157565b918051156124fb578060208061244893518301019101612404565b916124538382613056565b92612464845165ffffffffffff1690565b9065ffffffffffff80851692168281146124ef578211918261249a575b50506124915761076b9250612f86565b50506020015190565b9091506124a78354611ba3565b63ffffffff8316149182156124c0575b50505f80612481565b6124e79192506124db6124d56123d192612418565b85613056565b5165ffffffffffff1690565b115f806124b7565b50505050506020015190565b5061076b91612f86565b5f805160206135c283398151915260028154146125225760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161254b82612dc0565b9193905083156125a95761256b916001600160d01b031690600101612121565b90549060031b1c5b8261259f575b5050612583575050565b61259b915f52600360205260405f206103ef42612d8e565b5050565b119050815f612579565b50505f612573565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206135a28339815191529060ff16611f87575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206135a28339815191529060ff905b541661272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f805160206135a28339815191529060ff906126c7565b6001600160a01b0381165f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b5584625905f805160206135a28339815191529060ff906126c7565b5f8181525f805160206135a2833981519152602081815260408084206001600160a01b038716855290915290912060ff906126c7565b5f8181525f805160206135a2833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b8054806128fc57505f5b6001600160d01b03811615611f875760016123719201612121565b5f19908082810111611bb157825f5260205f2001015460301c6128e1565b91909160408184031261035a5780356129328161042a565b9260208201356001600160401b03811161035a5761076b92016106d6565b61295c9181019061291a565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610979575f91612a6f575b5015612a5d576129f16040916129ec612a37946129d16130be565b60018060a01b03166001600160601b0360a01b5f5416175f55565b61323e565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116612a4d575b5001516001600160a01b031690565b908116612a415750565b612a4a9061265c565b50565b612a56906125b1565b505f612a28565b6040516362df054560e01b8152600490fd5b612a88915060203d60201161097257610964818361067e565b5f6129b6565b6040519060a082018281106001600160401b038211176106435760405281608060609182815282602082015282604082015282808201520152565b9060208282031261035a5781516001600160401b039283821161035a57019060a08282031261035a57612afa61069f565b92825181811161035a5782612b10918501611807565b8452602083015181811161035a5782612b2a918501611807565b6020850152604083015181811161035a5782612b47918501611807565b6040850152606083015181811161035a5782612b64918501611807565b6060850152608083015190811161035a57612b7f9201611807565b608082015290565b9081602091031261035a575190565b60409065ffffffffffff61076b949316815281602082015201906104a4565b91939293612bc1612a8e565b94805180612caf575b5050612bdb60608601518285611b4a565b9182612bed57505050509051905f9190565b612c01612c3b9183608089015191876117bc565b916020612c1a6114586114585f5460018060a01b031690565b8189015190604051808096819463810da75d60e01b83528760048401612b96565b03915afa801561097957612c7795612c71935f92612c7c575b50612c65919260408a015191611b34565b90818082109118021890565b9061339e565b915190565b612c659250612ca29060203d602011612ca8575b612c9a818361067e565b810190612b87565b91612c54565b503d612c90565b612cc3929650602080918301019101612ac9565b935f80612bca565b612ce0610c18825f52600460205260405f2090565b9081612ced575050505f90565b612d08610c1860049461120b845f52600560205260405f2090565b5f5460405163bd49c35f60e01b81529491929160209186919082906001600160a01b03165afa9081156109795761076b945f92612d65575b50610c18612d56915f52600360205260405f2090565b9081808210911802189061339e565b612d56919250612d86610c189160203d602011612ca857612c9a818361067e565b929150612d40565b65ffffffffffff90818111612da1571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612dd15750505f905f905f90565b5f19918183810111611bb1575f5260205f2001015460019165ffffffffffff82169160301c90565b600181111561076b57600181600160801b811015612f12575b612eba612eb0612ea6612e9c612e92612e88612ec697600488600160401b612ec19a1015612f05575b640100000000811015612ef8575b62010000811015612eeb575b610100811015612edf575b6010811015612ed3575b1015612ecb575b60030260011c612e81818b611ee6565b0160011c90565b612e81818a611ee6565b612e818189611ee6565b612e818188611ee6565b612e818187611ee6565b612e818186611ee6565b8093611ee6565b821190565b900390565b60011b612e71565b811c9160021b91612e6a565b60081c91811b91612e60565b60101c9160081b91612e55565b60201c9160101b91612e49565b60401c9160201b91612e3b565b50600160401b9050608082901c612e12565b91905b838210612f345750505090565b909192808316906001818518811c8301809311611bb157855f5265ffffffffffff808460205f20015416908516105f14612f73575050925b9190612f27565b909493508101809111611bb15791612f6c565b908154905f829160058411612ff0575b612fa1935084612f24565b80612fc957505f905b6001600160d01b03821615611f875761076b9160016123719201612121565b612fe3612fd8612fea92611ba3565b835f5260205f200190565b5460301c90565b90612faa565b9192612ffb81612df9565b8103908111611bb157612fa193855f5265ffffffffffff808360205f20015416908516105f1461302c575091612f96565b92915061303890611bc3565b90612f96565b6040519061304b82610628565b5f6020838281520152565b9061307f6130796130a09261306961303e565b5061307261303e565b5084612121565b506122d1565b91600165ffffffffffff845116936020828060d01b03910151169101612121565b905490604051926130b084610628565b835260031b1c602082015290565b6130c6613563565b6130ce613563565b60015f805160206135c283398151915255565b604051906130ee82610648565b5f6040838281528260208201520152565b81601f8201121561035a578051916020916001600160401b038411610643578360051b90604051946131338584018761067e565b8552838086019282010192831161035a578301905b828210613156575050505090565b83809183516131648161042a565b815201910190613148565b9060208282031261035a5781516001600160401b039283821161035a5701908181039260a0841261035a576060604051946131a986610648565b1261035a576040516131ba81610648565b83516131c58161042a565b815260208401516131d58161042a565b602082015260408401516131e88161042a565b60408201528452606083015181811161035a57826132079185016130ff565b6020850152608083015190811161035a5761322292016130ff565b604082015290565b80518210156121365760209160051b010190565b61325a9061324a6130e1565b506020808251830101910161316f565b8051519091906001600160a01b03161580613384575b613372579060208101905f5b825180518210156132f657611458613297836132a49361322a565b516001600160a01b031690565b156132e4576132c66132c26132bd61329784875161322a565b612732565b1590565b6132d25760010161327c565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015613369576114586132978361331d9361322a565b156133585761333b6132c261333661329784875161322a565b6127a0565b61334757600101613302565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b506020820151511580613270575060408201515115613270565b91818302915f198185099383808610950394808603951461341e57848311156134115790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b8215600302601118613591565b50509061076b9250611ee6565b8054600160401b8110156106435761344891600182018155612121565b61347357815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939280156135395761349d6134a891611ba3565b825f5260205f200190565b9182549265ffffffffffff91828516928116808411613527578793036134ee57506134e792509065ffffffffffff82549181199060301b169116179055565b60301c9190565b9150506135229161350e6135006106ae565b65ffffffffffff9093168352565b6001600160d01b038616602083015261342b565b6134e7565b604051632520601d60e01b8152600490fd5b509061355e9161354a6135006106ae565b6001600160d01b038516602083015261342b565b5f9190565b60ff5f805160206135e28339815191525460401c161561357f57565b604051631afcd79f60e31b8152600490fd5b634e487b715f526020526024601cfdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220278ef6df078adf247d007f766b46a6e6ede134c1188c299ae823db920d132be464736f6c63430008190033","sourceMap":"3228:4636:94:-:0;;;;;;;;;;;;;-1:-1:-1;;3228:4636:94;;;;-1:-1:-1;;;;;3228:4636:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;348:4:95;;332:21;;8837:64:26;3228:4636:94;;;;;;;;;7896:76:26;;3228:4636:94;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:82;;;-1:-1:-1;525:17:82;;-1:-1:-1;552:12:82;;-1:-1:-1;2360:34:89;;2404:28;;-1:-1:-1;2404:28:89;;2442:57;;-1:-1:-1;2442:57:89;;2509:61;;-1:-1:-1;2509:61:89;;3714:41:94;;;;3765:24;;;;3799:40;;;;3228:4636;;;;;;;;332:21:95;3228:4636:94;;;;;;;;;;;;;;;525:17:82;3228:4636:94;;;;;552:12:82;3228:4636:94;;;;;2360:34:89;3228:4636:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;3228:4636:94;;;;;;;;;;;;;8087:29:26;;3228:4636:94;;8087:29:26;7981:146;;;;;7896:76;3228:4636:94;;-1:-1:-1;;;7938:23:26;;;;;3228:4636:94;-1:-1:-1;3228:4636:94;;;;;;-1:-1:-1;3228:4636:94;;;;;-1:-1:-1;3228:4636:94;;;;-1:-1:-1;;;;;3228:4636:94;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461030457806302145348146102ff57806307f9d5fd146102fa578063103f2907146102f5578063128e5d82146102f0578063197aa7ea146102eb5780631a7a7044146102e65780631a80e500146102e157806323f752d5146102dc578063248a9ca3146102d757806325dc9708146102d25780632dd31000146102cd5780632f2ff15d146102c857806336568abe146102c35780633dfd3873146102be5780633eb22c0f146102b957806342c53e33146102b4578063439fab91146102af57806345e78fcb146102aa578063557cab44146102a55780635d32a1c9146102a05780636679191e1461029b57806379d89614146102965780637d24bb27146102915780637f5a7c7b1461028c5780638b3f10b01461028757806391d1485414610282578063987b3ee81461027d5780639b656b22146102785780639f86fd8514610273578063a217fddf1461026e578063a33bc28714610269578063b549ef1f14610264578063bb24fe8a1461025f578063c0cd7c3e1461025a578063c43dc03f14610255578063d15b740e14610250578063d547741f1461024b578063da749d2b14610246578063e02f693714610241578063e49561ee1461023c578063e78eb6ae14610237578063ed4d89e514610232578063fbfa77cf1461022d578063fd4d447c14610228578063ff54740f146102235763ffa1ad741461021e575f80fd5b6116dc565b6116bf565b611695565b61166e565b61160e565b6115d4565b6113e9565b6113cd565b6113b3565b611367565b61133d565b611314565b6112d0565b61128d565b611273565b611126565b61110c565b611078565b611034565b610fa6565b610f48565b610f25565b610efd565b610ec4565b610e80565b610e46565b610e23565b610dc6565b610d82565b610c4a565b610bd1565b610ba8565b610aaf565b610a64565b610a18565b6109d4565b6109b7565b61097e565b6107f8565b6107b4565b61076e565b610585565b610541565b6104fd565b6104c8565b61035e565b3461035a57602036600319011261035a5760043563ffffffff60e01b811680910361035a57602090637965db0b60e01b8114908115610349575b506040519015158152f35b6301ffc9a760e01b1490505f61033e565b5f80fd5b3461035a5760408060031936011261035a57600435906024359061038061202e565b825f526002602052805f2054821161041a57825f526003602052816103a6825f206128d7565b1461040a5781610405916103f57e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103e6875f52600360205260405f2090565b6103ef42612d8e565b90612176565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b6001600160a01b0381160361035a57565b6024359065ffffffffffff8216820361035a57565b6064359065ffffffffffff8216820361035a57565b608090600319011261035a5760043561047d8161042a565b906024359060443561048e8161042a565b9060643565ffffffffffff8116810361035a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461035a576104f96104e56104dc36610465565b92919091611736565b6040519182916020835260208301906104a4565b0390f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a5761059e61043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600360205260405f206122f5565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761064357604052565b610614565b606081019081106001600160401b0382111761064357604052565b60a081019081106001600160401b0382111761064357604052565b90601f801991011681019081106001600160401b0382111761064357604052565b604051906106ac82610663565b565b604051906106ac82610628565b6001600160401b03811161064357601f01601f191660200190565b81601f8201121561035a578035906106ed826106bb565b926106fb604051948561067e565b8284526020838301011161035a57815f926020809301838601378301015290565b90608060031983011261035a57600435916024356107398161042a565b9160443565ffffffffffff8116810361035a5791606435906001600160401b03821161035a5761076b916004016106d6565b90565b3461035a5760206107ac6107a76107843661071c565b939190925f526005865260405f209060018060a01b03165f5260205260405f2090565b61242d565b604051908152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356001600160601b038116810361035a5760243590610828612505565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610979575f9161094a575b5015610938576001600160601b03166bffffffffffffffffffffffff193360601b161790806108b2835f52600260205260405f2090565b54146109265761090b817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c926108f0855f52600260205260405f2090565b556108fb8185612534565b6040519081529081906020820190565b0390a261092460015f805160206135c283398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b61096c915060203d602011610972575b610964818361067e565b8101906117e8565b5f61087b565b503d61095a565b6117fc565b3461035a57602036600319011261035a576004355f525f805160206135a28339815191526020526020600160405f200154604051908152f35b3461035a576104f96104e56109cb36610465565b92919091611904565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a57610924602435600435610a3b8261042a565b805f525f805160206135a2833981519152602052610a5f600160405f2001546120e1565b61280f565b3461035a57604036600319011261035a57602435610a818161042a565b336001600160a01b03821603610a9d5761092490600435612845565b60405163334bd91960e11b8152600490fd5b3461035a57602036600319011261035a57600435610acc8161042a565b610ad4612505565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610b8a57506001546001600160a01b039182169181168214610926576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f805160206135c283398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461035a57602036600319011261035a576004355f52600360205260206107ac60405f206128d7565b3461035a57604036600319011261035a5760206107ac610c18602435610bf68161042a565b6004355f526005845260405f209060018060a01b03165f5260205260405f2090565b6128d7565b9181601f8401121561035a578235916001600160401b03831161035a576020838186019501011161035a57565b3461035a57602036600319011261035a576001600160401b0360043581811161035a57610c7b903690600401610c1d565b5f805160206135e2833981519152549260ff8460401c1615931680159081610d7a575b6001149081610d70575b159081610d67575b50610d55575f805160206135e2833981519152805467ffffffffffffffff19166001179055610ce39183610d3157612950565b610ce957005b5f805160206135e2833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f805160206135e2833981519152805460ff60401b1916600160401b179055612950565b60405163f92ee8a960e01b8152600490fd5b9050155f610cb0565b303b159150610ca8565b849150610c9e565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576020604051614e208152f35b606060031982011261035a576004359160243565ffffffffffff8116810361035a5791604435906001600160401b03821161035a5761076b916004016106d6565b3461035a5760206107ac610e3636610de2565b915f526003845260405f2061242d565b3461035a575f36600319011261035a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461035a575f36600319011261035a576001546040516001600160a01b039091168152602090f35b3461035a5760206107ac610f3836610de2565b915f526004845260405f2061242d565b3461035a57604036600319011261035a57602060ff610f9a602435610f6c8161042a565b6004355f525f805160206135a2833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461035a57606036600319011261035a57602435610fc38161042a565b60443565ffffffffffff8116810361035a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106025761102f6105e5926004355f52600560205260405f209060018060a01b03165f5260205260405f2090565b6122f5565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356110958161042a565b6024356001600160401b03811161035a575f916110b783923690600401610c1d565b90816040519283928337810184815203915af46111046110d5611b60565b916110f66040519384921515602084015260408084015260608301906104a4565b03601f19810183528261067e565b805190602001fd5b3461035a575f36600319011261035a5760206040515f8152f35b3461035a57606036600319011261035a576024356004356111468261042a565b6044359161115261208a565b5f8281526005602090815260408083206001600160a01b0385168452909152902061117c906128d7565b838114610926577f739a5a3ec0ff71e2386d0013deac5f44e0935a98def2e2a5ddf9a709518c8294916111ef61123c92855f52600460205260405f20906111e9886111e46111c942612d8e565b936111df610c188c5f52600460205260405f2090565b611bb6565b611bd1565b91612176565b5050611220856103e68361120b885f52600560205260405f2090565b9060018060a01b03165f5260205260405f2090565b50506040519485526001600160a01b0316939081906020820190565b0390a3005b606090600319011261035a576004356112598161042a565b906024359060443565ffffffffffff8116810361035a5790565b3461035a576104f96104e561128736611241565b91611bde565b3461035a575f36600319011261035a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57602036600319011261035a576004355f52600460205260206107ac60405f206128d7565b3461035a57602036600319011261035a576004355f526002602052602060405f2054604051908152f35b3461035a57604036600319011261035a5761092460243560043561138a8261042a565b805f525f805160206135a28339815191526020526113ae600160405f2001546120e1565b612845565b3461035a576104f96104e56113c736611241565b91611c28565b3461035a5760206107ac6113e03661071c565b92919091611d24565b3461035a5760a036600319011261035a576024356004356114098261042a565b60443591611415610450565b90608435906001600160401b03821161035a57611437600492369084016106d6565b61143f612505565b5f5460209061146490611458906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa928315610979575f936115a3575b506001600160a01b039283163303611591576001546001600160a01b0316838116611506575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361092460015f805160206135c283398151915255565b90936040519461153d8661152f602082019363724ab0f760e11b8552858c898d60248701611eae565b03601f19810188528761067e565b62042e305a1061157f575f6114ed938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f150936114ac565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b6115c691935060203d6020116115cd575b6115be818361067e565b810190611872565b915f611486565b503d6115b4565b3461035a575f36600319011261035a5760206040517f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846258152f35b3461035a57604036600319011261035a5761162761043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600460205260405f206122f5565b3461035a575f36600319011261035a575f546040516001600160a01b039091168152602090f35b3461035a57604036600319011261035a5760206107ac6024356116b78161042a565b600435611f04565b3461035a575f36600319011261035a5760206040516203d0908152f35b3461035a575f36600319011261035a57602060405160018152f35b5190811515820361035a57565b519063ffffffff8216820361035a57565b919082604091031261035a5761076b602061172f846116f7565b9301611704565b906117869165ffffffffffff6117959496956060976040519463130f67dd60e31b6020870152602486015260018060a01b031660448501521660648301526064825261178182610663565b612238565b60208082518301019101611715565b9061179d5750565b90915063ffffffff604051911660208201526020815261076b81610628565b5f9081526005602090815260408083206001600160a01b0390941683529290522061076b92919061242d565b9081602091031261035a5761076b906116f7565b6040513d5f823e3d90fd5b81601f8201121561035a5780519061181e826106bb565b9261182c604051948561067e565b8284526020838301011161035a57815f9260208093018386015e8301015290565b9060208282031261035a5781516001600160401b03811161035a5761076b9201611807565b9081602091031261035a575161076b8161042a565b9061076b91602081526118a6825160a0602084015260c08301906104a4565b9060a060806118f46118e16118cd602088015196601f1997888883030160408901526104a4565b6040880151878783030160608801526104a4565b60608701518686830301848701526104a4565b94015192828503019101526104a4565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491935f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa948515610979575f95611b18575b5060405163fbfa77cf60e01b8152602081600481888d165afa908115610979576119ea995f9285928491611af9575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa978815610979575f98611acf575b509081611a3b82611a3381611a419689611c28565b958388611736565b94611bde565b90835115801590611ac5575b8015611abb575b8015611ab1575b8015611aa7575b611a6f5750505050909150565b6110f6955061076b9496611a8161069f565b948552602085015260408401526060830152608082015260405192839160208301611887565b5081511515611a62565b5082511515611a5b565b5080511515611a54565b5086511515611a4d565b611a4192919850611af1903d805f833e611ae9818361067e565b81019061184d565b979091611a1e565b611b12915060203d6020116115cd576115be818361067e565b5f6119ad565b611b2d9195503d805f833e611ae9818361067e565b935f61197e565b9061076b92915f52600360205260405f2061242d565b9061076b92915f52600460205260405f2061242d565b3d15611b8a573d90611b71826106bb565b91611b7f604051938461067e565b82523d5f602084013e565b606090565b634e487b7160e01b5f52601160045260245ffd5b5f19810191908211611bb157565b611b8f565b91908203918211611bb157565b9060018201809211611bb157565b91908201809211611bb157565b60405163ed4d89e560e01b6020820152602481019290925265ffffffffffff909216604482015260609291611795916117869161178182606481015b03601f19810184528361067e565b604051630cbd53f560e11b6020820152602481019290925265ffffffffffff90921660448201526060929161179591611786916117818260648101611c1a565b60405190611c7582610628565b60606020838281520152565b9060208282031261035a5781516001600160401b039283821161035a57019060408282031261035a5760405192611cb784610628565b825181811161035a5782611ccc918501611807565b8452602083015190811161035a57611ce49201611807565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261076b929101906104a4565b92611d3490929192828486612bb5565b929093611d3f611c68565b93805180611e92575b50508415938415611dfc575b8415611d6b575b50505050611d665790565b505f90565b602080949550611d96910151604051958694859463530e1d4360e01b865260601c9060048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611ddd575b50155f808080611d5b565b611df6915060203d60201161097257610964818361067e565b5f611dd2565b5f549094506001600160a01b0316602084865192611e2f604051948593849363530e1d4360e01b85528960048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611e73575b501593611d54565b611e8c915060203d60201161097257610964818361067e565b5f611e6b565b611ea6929550602080918301019101611c81565b925f80611d48565b919360a09361076b969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906104a4565b8115611ef0570490565b634e487b7160e01b5f52601260045260245ffd5b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610979575f91612011575b5015918215611f8d575b50509050611f875761076b91612ccb565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610979575f92611ff4575b505015805f80611f76565b61200a9250803d1061097257610964818361067e565b5f80611fe9565b6120289150843d861161097257610964818361067e565b5f611f6c565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b541615610b8a5750565b335f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846259060ff90612080565b5f8181525f805160206135a283398151915260209081526040808320338452909152902060ff90612080565b634e487b7160e01b5f52603260045260245ffd5b8054821015612136575f5260205f2001905f90565b61210d565b90815491600160401b831015610643578261215e9160016106ac95018155612121565b90919082549060031b91821b915f19901b1916179055565b90929192600182019081548015612208575b508461219384612dc0565b509490928454936121a3836128d7565b96816121f3575b50156121d0575050505f198101908111611bb15761215e85916121cc93612121565b9190565b6121cc9492936121ec926001600160d01b039091169190613486565b505061213b565b65ffffffffffff83811691161490505f6121aa565b600160401b811015610643578060016122249201845583612121565b8154905f199060031b1b191690555f612188565b5f9190829160405161226d816110f66020820194639f86fd8560e01b86523060248401526040604484015260648301906104a4565b51915afa5061227a611b60565b8051810160408282031261035a57612294602083016116f7565b916040810151916001600160401b03831161035a576122ba926020809201920101611807565b90156122c35790565b805190811561035a57602001fd5b906040516122de81610628565b915465ffffffffffff8116835260301c6020830152565b91908254905f82916005841161239d575b612311935085612f24565b9081156123915761238a61238161237b61237161234361233e61233388611ba3565b895f5260205f200190565b6122d1565b96600161236a602061235b8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101612121565b90549060031b1c90565b93611ba3565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926123a881612df9565b8103908111611bb15761231193865f526123dc6123d18360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff851610156123f2575091612306565b9291506123fe90611bc3565b90612306565b9081602091031261035a5761076b90611704565b90600163ffffffff80931601918211611bb157565b918051156124fb578060208061244893518301019101612404565b916124538382613056565b92612464845165ffffffffffff1690565b9065ffffffffffff80851692168281146124ef578211918261249a575b50506124915761076b9250612f86565b50506020015190565b9091506124a78354611ba3565b63ffffffff8316149182156124c0575b50505f80612481565b6124e79192506124db6124d56123d192612418565b85613056565b5165ffffffffffff1690565b115f806124b7565b50505050506020015190565b5061076b91612f86565b5f805160206135c283398151915260028154146125225760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161254b82612dc0565b9193905083156125a95761256b916001600160d01b031690600101612121565b90549060031b1c5b8261259f575b5050612583575050565b61259b915f52600360205260405f206103ef42612d8e565b5050565b119050815f612579565b50505f612573565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206135a28339815191529060ff16611f87575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206135a28339815191529060ff905b541661272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f805160206135a28339815191529060ff906126c7565b6001600160a01b0381165f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b5584625905f805160206135a28339815191529060ff906126c7565b5f8181525f805160206135a2833981519152602081815260408084206001600160a01b038716855290915290912060ff906126c7565b5f8181525f805160206135a2833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b8054806128fc57505f5b6001600160d01b03811615611f875760016123719201612121565b5f19908082810111611bb157825f5260205f2001015460301c6128e1565b91909160408184031261035a5780356129328161042a565b9260208201356001600160401b03811161035a5761076b92016106d6565b61295c9181019061291a565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610979575f91612a6f575b5015612a5d576129f16040916129ec612a37946129d16130be565b60018060a01b03166001600160601b0360a01b5f5416175f55565b61323e565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116612a4d575b5001516001600160a01b031690565b908116612a415750565b612a4a9061265c565b50565b612a56906125b1565b505f612a28565b6040516362df054560e01b8152600490fd5b612a88915060203d60201161097257610964818361067e565b5f6129b6565b6040519060a082018281106001600160401b038211176106435760405281608060609182815282602082015282604082015282808201520152565b9060208282031261035a5781516001600160401b039283821161035a57019060a08282031261035a57612afa61069f565b92825181811161035a5782612b10918501611807565b8452602083015181811161035a5782612b2a918501611807565b6020850152604083015181811161035a5782612b47918501611807565b6040850152606083015181811161035a5782612b64918501611807565b6060850152608083015190811161035a57612b7f9201611807565b608082015290565b9081602091031261035a575190565b60409065ffffffffffff61076b949316815281602082015201906104a4565b91939293612bc1612a8e565b94805180612caf575b5050612bdb60608601518285611b4a565b9182612bed57505050509051905f9190565b612c01612c3b9183608089015191876117bc565b916020612c1a6114586114585f5460018060a01b031690565b8189015190604051808096819463810da75d60e01b83528760048401612b96565b03915afa801561097957612c7795612c71935f92612c7c575b50612c65919260408a015191611b34565b90818082109118021890565b9061339e565b915190565b612c659250612ca29060203d602011612ca8575b612c9a818361067e565b810190612b87565b91612c54565b503d612c90565b612cc3929650602080918301019101612ac9565b935f80612bca565b612ce0610c18825f52600460205260405f2090565b9081612ced575050505f90565b612d08610c1860049461120b845f52600560205260405f2090565b5f5460405163bd49c35f60e01b81529491929160209186919082906001600160a01b03165afa9081156109795761076b945f92612d65575b50610c18612d56915f52600360205260405f2090565b9081808210911802189061339e565b612d56919250612d86610c189160203d602011612ca857612c9a818361067e565b929150612d40565b65ffffffffffff90818111612da1571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612dd15750505f905f905f90565b5f19918183810111611bb1575f5260205f2001015460019165ffffffffffff82169160301c90565b600181111561076b57600181600160801b811015612f12575b612eba612eb0612ea6612e9c612e92612e88612ec697600488600160401b612ec19a1015612f05575b640100000000811015612ef8575b62010000811015612eeb575b610100811015612edf575b6010811015612ed3575b1015612ecb575b60030260011c612e81818b611ee6565b0160011c90565b612e81818a611ee6565b612e818189611ee6565b612e818188611ee6565b612e818187611ee6565b612e818186611ee6565b8093611ee6565b821190565b900390565b60011b612e71565b811c9160021b91612e6a565b60081c91811b91612e60565b60101c9160081b91612e55565b60201c9160101b91612e49565b60401c9160201b91612e3b565b50600160401b9050608082901c612e12565b91905b838210612f345750505090565b909192808316906001818518811c8301809311611bb157855f5265ffffffffffff808460205f20015416908516105f14612f73575050925b9190612f27565b909493508101809111611bb15791612f6c565b908154905f829160058411612ff0575b612fa1935084612f24565b80612fc957505f905b6001600160d01b03821615611f875761076b9160016123719201612121565b612fe3612fd8612fea92611ba3565b835f5260205f200190565b5460301c90565b90612faa565b9192612ffb81612df9565b8103908111611bb157612fa193855f5265ffffffffffff808360205f20015416908516105f1461302c575091612f96565b92915061303890611bc3565b90612f96565b6040519061304b82610628565b5f6020838281520152565b9061307f6130796130a09261306961303e565b5061307261303e565b5084612121565b506122d1565b91600165ffffffffffff845116936020828060d01b03910151169101612121565b905490604051926130b084610628565b835260031b1c602082015290565b6130c6613563565b6130ce613563565b60015f805160206135c283398151915255565b604051906130ee82610648565b5f6040838281528260208201520152565b81601f8201121561035a578051916020916001600160401b038411610643578360051b90604051946131338584018761067e565b8552838086019282010192831161035a578301905b828210613156575050505090565b83809183516131648161042a565b815201910190613148565b9060208282031261035a5781516001600160401b039283821161035a5701908181039260a0841261035a576060604051946131a986610648565b1261035a576040516131ba81610648565b83516131c58161042a565b815260208401516131d58161042a565b602082015260408401516131e88161042a565b60408201528452606083015181811161035a57826132079185016130ff565b6020850152608083015190811161035a5761322292016130ff565b604082015290565b80518210156121365760209160051b010190565b61325a9061324a6130e1565b506020808251830101910161316f565b8051519091906001600160a01b03161580613384575b613372579060208101905f5b825180518210156132f657611458613297836132a49361322a565b516001600160a01b031690565b156132e4576132c66132c26132bd61329784875161322a565b612732565b1590565b6132d25760010161327c565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015613369576114586132978361331d9361322a565b156133585761333b6132c261333661329784875161322a565b6127a0565b61334757600101613302565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b506020820151511580613270575060408201515115613270565b91818302915f198185099383808610950394808603951461341e57848311156134115790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b8215600302601118613591565b50509061076b9250611ee6565b8054600160401b8110156106435761344891600182018155612121565b61347357815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939280156135395761349d6134a891611ba3565b825f5260205f200190565b9182549265ffffffffffff91828516928116808411613527578793036134ee57506134e792509065ffffffffffff82549181199060301b169116179055565b60301c9190565b9150506135229161350e6135006106ae565b65ffffffffffff9093168352565b6001600160d01b038616602083015261342b565b6134e7565b604051632520601d60e01b8152600490fd5b509061355e9161354a6135006106ae565b6001600160d01b038516602083015261342b565b5f9190565b60ff5f805160206135e28339815191525460401c161561357f57565b604051631afcd79f60e31b8152600490fd5b634e487b715f526020526024601cfdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220278ef6df078adf247d007f766b46a6e6ede134c1188c299ae823db920d132be464736f6c63430008190033","sourceMap":"3228:4636:94:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;3228:4636:94;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;3228:4636:94;;;;;;;;;;3551:87:23;-1:-1:-1;;;1134:40:32;;-1:-1:-1;3551:87:23;;;3228:4636:94;-1:-1:-1;3228:4636:94;;;;;;;;;;;;;;;;;;;;3202:4:23;;;:::i;:::-;3228:4636:94;-1:-1:-1;3228:4636:94;3610:15:91;3228:4636:94;;;-1:-1:-1;3228:4636:94;;3601:36:91;;3597:98;;3228:4636:94;-1:-1:-1;3228:4636:94;2233:13:91;3228:4636:94;;;2233:34:91;3228:4636:94;-1:-1:-1;3228:4636:94;2233:34:91;:::i;:::-;3709;3705:84;;3799:25;3871:35;3799:25;:56;3871:35;3799:25;;;3228:4636:94;;2233:13:91;3228:4636:94;;;;;;;3799:25:91;819:34:75;837:15;819:34;:::i;:::-;3799:56:91;;:::i;:::-;-1:-1:-1;;3228:4636:94;;;;;;;;;;;;3871:35:91;;;;3228:4636:94;3705:84:91;3228:4636:94;-1:-1:-1;;;3766:12:91;;3228:4636:94;;3766:12:91;3597:98;3228:4636:94;-1:-1:-1;;;3660:24:91;;3228:4636:94;;3660:24:91;3228:4636:94;-1:-1:-1;;;;;3228:4636:94;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;3228:4636:94;;;;;;;;-1:-1:-1;;3228:4636:94;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;3228:4636:94;;;;;;1537:38:89;-1:-1:-1;;;;;3228:4636:94;;;;;;;;;;;;-1:-1:-1;;3228:4636:94;;;;;;1632:54:89;-1:-1:-1;;;;;3228:4636:94;;;;;;;;;;;;-1:-1:-1;;3228:4636:94;;;;;;:::i;:::-;449:5:95;-1:-1:-1;;;;;3228:4636:94;435:10:95;:19;431:71;;4041:64:94;3228:4636;;;-1:-1:-1;3228:4636:94;4041:13;3228:4636;;;-1:-1:-1;3228:4636:94;4041:64;:::i;:::-;3228:4636;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3228:4636:94;431:71:95;3228:4636:94;;-1:-1:-1;;;477:14:95;;3228:4636:94;;477:14:95;3228:4636:94;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:94;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3228:4636:94;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;3228:4636:94;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:94;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;3228:4636:94;;;;;;-1:-1:-1;;3228:4636:94;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;3228:4636:94;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;3228:4636:94;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:94;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;3090:79:91;:44;3228:4636:94;;;:::i;:::-;;;;;-1:-1:-1;3228:4636:94;3090:22:91;3228:4636:94;;;-1:-1:-1;3228:4636:94;;;;;;;;;;;;;;;;;3090:44:91;:79;:::i;:::-;3228:4636:94;;;;;;;;;;;;-1:-1:-1;;3228:4636:94;;;;;;1743:56:89;-1:-1:-1;;;;;3228:4636:94;;;;;;;;;;;;-1:-1:-1;;3228:4636:94;;;;;;-1:-1:-1;;;;;3228:4636:94;;;;;;;;3361:103:30;;;:::i;:::-;3228:4636:94;;-1:-1:-1;;;4285:48:89;;4322:10;3228:4636:94;4285:48:89;;3228:4636:94;;;;;-1:-1:-1;;;;;4295:16:89;3228:4636:94;4285:48:89;;;;;;;-1:-1:-1;4285:48:89;;;3228:4636:94;4284:49:89;;4280:99;;-1:-1:-1;;;;;3228:4636:94;-1:-1:-1;;4322:10:89;297:2:101;3228:4636:94;;267:46:101;4459:27:89;;;;3228:4636:94;;4459:15:89;3228:4636:94;;;;;;;4459:27:89;3228:4636:94;4459:37:89;4455:87;;4654:38;4552:27;4654:38;4552:27;;;3228:4636:94;;4459:15:89;3228:4636:94;;;;;;;4552:27:89;3228:4636:94;4631:6:89;;;;:::i;:::-;3228:4636:94;;;;;;;;;;;;;4654:38:89;;;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;3228:4636:94;3860:283:30;3426:1;3228:4636:94;4455:87:89;3228:4636:94;;-1:-1:-1;;;4519:12:89;;3228:4636:94;;4519:12:89;4280:99;3228:4636:94;;-1:-1:-1;;;4356:12:89;;3228:4636:94;;4356:12:89;4285:48;;;;3228:4636:94;4285:48:89;3228:4636:94;4285:48:89;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;3228:4636:94:-;;;;;;-1:-1:-1;;3228:4636:94;;;;;;-1:-1:-1;3228:4636:94;-1:-1:-1;;;;;;;;;;;3228:4636:94;;;4919:24:23;3228:4636:94;-1:-1:-1;3228:4636:94;4919:24:23;3228:4636:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;3228:4636:94;;;;;;322:32:82;-1:-1:-1;;;;;3228:4636:94;;;;;;;;;;;;-1:-1:-1;;3228:4636:94;;;;5350:25:23;3228:4636:94;;;;;;;:::i;:::-;;-1:-1:-1;3228:4636:94;-1:-1:-1;;;;;;;;;;;3228:4636:94;;3202:4:23;4919:24;3228:4636:94;-1:-1:-1;3228:4636:94;4919:24:23;3228:4636:94;3202:4:23;:::i;:::-;5350:25;:::i;3228:4636:94:-;;;;;;-1:-1:-1;;3228:4636:94;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;3228:4636:94;;6441:34:23;6437:102;;6549:37;3228:4636:94;;;6549:37:23;:::i;6437:102::-;3228:4636:94;;-1:-1:-1;;;6498:30:23;;3228:4636:94;;6498:30:23;3228:4636:94;;;;;;-1:-1:-1;;3228:4636:94;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;966:10:28;-1:-1:-1;3228:4636:94;;;;;;;;;;1356:26:89;;3228:4636:94;;4468:23:23;4464:108;;-1:-1:-1;4861:4:89;3228:4636:94;-1:-1:-1;;;;;3228:4636:94;;;;;;4861:13:89;;4857:63;;-1:-1:-1;;;;;;3228:4636:94;;;4861:4:89;3228:4636:94;4958:14:89;-1:-1:-1;;4958:14:89;4861:4;-1:-1:-1;;;;;;;;;;;3228:4636:94;;4464:108:23;3228:4636:94;;;;4514:47:23;;;;;;966:10:28;3228:4636:94;4514:47:23;;3228:4636:94;;;;;4514:47:23;3228:4636:94;;;;;;-1:-1:-1;;3228:4636:94;;;;;;-1:-1:-1;3228:4636:94;2233:13:91;3228:4636:94;;;2233:34:91;3228:4636:94;-1:-1:-1;3228:4636:94;2233:34:91;:::i;3228:4636:94:-;;;;;;-1:-1:-1;;3228:4636:94;;;;;3358:53:91;:44;3228:4636:94;;;;;:::i;:::-;;;-1:-1:-1;3228:4636:94;3358:22:91;3228:4636:94;;;-1:-1:-1;3228:4636:94;;;;;;;;;;;;;;;;;3358:44:91;:53;:::i;3228:4636:94:-;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:94;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3228:4636:94;;;;-1:-1:-1;;;;;3228:4636:94;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;3228:4636:94;;;;;;;4301:16:26;3228:4636:94;;4726:16:26;;:34;;;;3228:4636:94;4805:1:26;4790:16;:50;;;;3228:4636:94;4855:13:26;:30;;;;3228:4636:94;4851:91:26;;;-1:-1:-1;;;;;;;;;;;3228:4636:94;;-1:-1:-1;;3228:4636:94;;;;;718:4:82;;4951:18:26;4979:67;;718:4:82;:::i;:::-;5066:101:26;;3228:4636:94;5066:101:26;-1:-1:-1;;;;;;;;;;;3228:4636:94;;-1:-1:-1;;;;3228:4636:94;;;;;-1:-1:-1;3228:4636:94;;5142:14:26;;3228:4636:94;;5142:14:26;3228:4636:94;4979:67:26;-1:-1:-1;;;;;;;;;;;3228:4636:94;;-1:-1:-1;;;;3228:4636:94;-1:-1:-1;;;3228:4636:94;;;718:4:82;:::i;4851:91:26:-;3228:4636:94;;-1:-1:-1;;;4908:23:26;;3228:4636:94;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;3228:4636:94;;;;;;-1:-1:-1;;3228:4636:94;;;;;;3406:36;-1:-1:-1;;;;;3228:4636:94;;;;;;;;;;;;-1:-1:-1;;3228:4636:94;;;;;;;1253:6:89;3228:4636:94;;;;;-1:-1:-1;;3228:4636:94;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:94;;;;;;;;;:::i;:::-;;;;;1997:60:91;3228:4636:94;;;:::i;:::-;;-1:-1:-1;3228:4636:94;1997:13:91;3228:4636:94;;;-1:-1:-1;3228:4636:94;1997:60:91;:::i;3228:4636:94:-;;;;;;-1:-1:-1;;3228:4636:94;;;;;;;1356:26:89;3228:4636:94;;;;;;;;;-1:-1:-1;;3228:4636:94;;;;;;3355:45;-1:-1:-1;;;;;3228:4636:94;;;;;;;;;;;;-1:-1:-1;;3228:4636:94;;;;;;;810:35:91;3228:4636:94;;;;;;;;;-1:-1:-1;;3228:4636:94;;;;;;;;-1:-1:-1;;;;;3228:4636:94;;;;;;;;;;;;;2512:74:91;3228:4636:94;;;:::i;:::-;;-1:-1:-1;3228:4636:94;;;;;-1:-1:-1;3228:4636:94;2512:74:91;:::i;3228:4636:94:-;;;;;;-1:-1:-1;;3228:4636:94;;;;;;3901:31:23;3228:4636:94;;;;;:::i;:::-;;;-1:-1:-1;3228:4636:94;-1:-1:-1;;;;;;;;;;;3228:4636:94;;;-1:-1:-1;3228:4636:94;;;;;;;;;;;;;;;;;3901:31:23;3228:4636:94;;;;;;;;;;;;;;;;-1:-1:-1;;3228:4636:94;;;;;;;;;:::i;:::-;;;;;;;;;;449:5:95;-1:-1:-1;;;;;3228:4636:94;435:10:95;:19;431:71;;4852:44:94;:83;3228:4636;;;-1:-1:-1;3228:4636:94;4852:22;3228:4636;;;-1:-1:-1;3228:4636:94;;;;;;;;;;;;;;;;;4852:44;:83;:::i;3228:4636::-;;;;;;-1:-1:-1;;3228:4636:94;;;;;;3448:45;-1:-1:-1;;;;;3228:4636:94;;;;;;;;;;;;-1:-1:-1;;3228:4636:94;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3228:4636:94;;;;-1:-1:-1;3228:4636:94;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:88;;;;477:31;416:25;;:::i;:::-;3228:4636:94;;;;;;;;;;477:31:88;;3228:4636:94;;;;;;;;;;;:::i;:::-;477:31:88;3228:4636:94;;477:31:88;;;;;;:::i;:::-;518:79;;;3228:4636:94;518:79:88;;3228:4636:94;;;;;;-1:-1:-1;;3228:4636:94;;;;;;;;;;;;;;;;;-1:-1:-1;;3228:4636:94;;;;;;;;;;;:::i;:::-;;;3202:4:23;;;:::i;:::-;-1:-1:-1;3228:4636:94;;;3358:22:91;3228:4636:94;;;;;;;;-1:-1:-1;;;;;3228:4636:94;;;;;;;;;3358:53:91;;;:::i;:::-;4249:32;;;4245:82;;4596:54;3228:4636:94;4337:158:91;4596:54;3228:4636:94;;-1:-1:-1;3228:4636:94;;;;;-1:-1:-1;3228:4636:94;837:15:75;4413:72:91;837:15:75;4413:63:91;819:34:75;837:15;819:34;:::i;:::-;2776:39:91;:48;:39;;3228:4636:94;;;;;;;;;;2776:48:91;4413:63;:::i;:::-;:72;:::i;:::-;4337:158;;:::i;:::-;4505:34;;:75;:34;:44;:34;;;3228:4636:94;;3358:22:91;3228:4636:94;;;;;;;4505:34:91;3228:4636:94;;;;;;;;;;;;;;;;4505:75:91;-1:-1:-1;;3228:4636:94;;;;;-1:-1:-1;;;;;3228:4636:94;;;;;;;;;;4596:54:91;;;;3228:4636:94;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;3228:4636:94;;;;;;;-1:-1:-1;;;;;404:28:82;3228:4636:94;;;;;;;;;;-1:-1:-1;;3228:4636:94;;;;;;1439:41:89;-1:-1:-1;;;;;3228:4636:94;;;;;;;;;;;;-1:-1:-1;;3228:4636:94;;;;;;-1:-1:-1;3228:4636:94;;;;;2776:48:91;3228:4636:94;-1:-1:-1;3228:4636:94;2776:48:91;:::i;3228:4636:94:-;;;;;;-1:-1:-1;;3228:4636:94;;;;;;-1:-1:-1;3228:4636:94;2009:67:89;3228:4636:94;;;;-1:-1:-1;3228:4636:94;;;;;;;;;;;;;;-1:-1:-1;;3228:4636:94;;;;5767:26:23;3228:4636:94;;;;;;;:::i;:::-;;-1:-1:-1;3228:4636:94;-1:-1:-1;;;;;;;;;;;3228:4636:94;;3202:4:23;4919:24;3228:4636:94;-1:-1:-1;3228:4636:94;4919:24:23;3228:4636:94;3202:4:23;:::i;:::-;5767:26;:::i;3228:4636:94:-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;3228:4636:94;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;3228:4636:94;;;;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;-1:-1:-1;3228:4636:94;;;5246:21:89;;:13;;-1:-1:-1;;;;;3228:4636:94;5246:13:89;3228:4636:94;;-1:-1:-1;;;;;3228:4636:94;;;5246:21:89;3228:4636:94;;-1:-1:-1;;;5246:23:89;;3228:4636:94;;;;;5246:23:89;;;;;;;-1:-1:-1;5246:23:89;;;3228:4636:94;-1:-1:-1;;;;;;3228:4636:94;;;5232:10:89;:37;5228:87;;5341:4;3228:4636:94;-1:-1:-1;;;;;3228:4636:94;;;;5355:469:89;;3228:4636:94;-1:-1:-1;;3228:4636:94;;;;;;;;;;;;;;;;5839:55:89;;3228:4636:94;;;;5839:55:89;;;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;3228:4636:94;3860:283:30;5355:469:89;3228:4636:94;;;;5435:94:89;;;;3228:4636:94;5435:94:89;;;;;;;;;;;;3228:4636:94;5435:94:89;;;:::i;:::-;;3228:4636:94;;5435:94:89;;;;;;:::i;:::-;3228:4636:94;5548:9:89;:51;5544:118;;-1:-1:-1;5839:55:89;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;3228:4636:94;;-1:-1:-1;;;5626:21:89;;3228:4636:94;;5626:21:89;5228:87;3228:4636:94;;-1:-1:-1;;;5292:12:89;;3228:4636:94;;5292:12:89;5246:23;;;;;3228:4636:94;5246:23:89;3228:4636:94;5246:23:89;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;3228:4636:94;;;;;;-1:-1:-1;;3228:4636:94;;;;;;;971:45:91;3228:4636:94;;;;;;;;;-1:-1:-1;;3228:4636:94;;;;;;:::i;:::-;449:5:95;-1:-1:-1;;;;;3228:4636:94;435:10:95;:19;431:71;;5753:78:94;3228:4636;;;-1:-1:-1;3228:4636:94;;;;;-1:-1:-1;3228:4636:94;5753:78;:::i;3228:4636::-;;;;;;-1:-1:-1;;3228:4636:94;;;;;;;;-1:-1:-1;;;;;3228:4636:94;;;;;;;;;;;;;;-1:-1:-1;;3228:4636:94;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;3228:4636:94;;;;;;;1150:7:89;3228:4636:94;;;;;;;;;-1:-1:-1;;3228:4636:94;;;;;;;2700:1:89;3228:4636:94;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;4948:596::-;;5195:233;4948:596;3228:4636;5171:295;4948:596;;;3228:4636;;;;5263:151;;;;;;;;;;;3228:4636;;;;;;;;;;;;;;;;;5263:151;;;;;:::i;:::-;5195:233;:::i;:::-;5263:151;3228:4636;;;5171:295;;;;;;:::i;:::-;5477:61;;;4948:596;:::o;5477:61::-;3228:4636;;;;;;;;5263:151;5510:17;;3228:4636;5263:151;5510:17;;;;;:::i;2897:279:91:-;-1:-1:-1;3228:4636:94;;;3090:22:91;3228:4636:94;;;;;;;;-1:-1:-1;;;;;3228:4636:94;;;;;;;;;3090:79:91;;2897:279;;3090:79;:::i;3228:4636:94:-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;3228:4636:94;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:94;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;6420:1442::-;3228:4636;;-1:-1:-1;;;6637:99:94;;-1:-1:-1;;;;;3228:4636:94;;;6637:99;;;3228:4636;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3228:4636:94;;;6656:20;3228:4636;;6637:99;;;;;;;;;;;6420:1442;-1:-1:-1;3228:4636:94;;-1:-1:-1;;;6830:32:94;;;3228:4636;6637:99;3228:4636;;;;6830:32;;;;;;;6790:84;6830:32;6637:99;6830:32;;;;;;;6420:1442;-1:-1:-1;3228:4636:94;;-1:-1:-1;;;6790:84:94;;-1:-1:-1;;;;;3228:4636:94;;;6637:99;6790:84;;3228:4636;;;;;;;;;;;;;-1:-1:-1;3228:4636:94;;;;;;;;;6790:84;;6801:11;;3228:4636;6790:84;;;;;;;6637:99;6790:84;;;6420:1442;6918:50;;;7020:69;6918:50;;;7146:64;6918:50;;;:::i;:::-;7020:69;;;;:::i;:::-;7146:64;;:::i;:::-;3228:4636;;;7238:21;;;:52;;;6420:1442;7238:85;;;;6420:1442;7238:143;;;;6420:1442;7238:190;;;;6420:1442;7221:635;;6420:1442;;;;;;;:::o;7221:635::-;7460:385;3228:4636;;7460:385;3228:4636;;;;:::i;:::-;;;;6830:32;7488:343;;3228:4636;;7488:343;;3228:4636;;7488:343;;3228:4636;7488:343;;;3228:4636;;;7460:385;;;6830:32;7460:385;;;:::i;7238:190::-;3228:4636;;;7385:43;;7238:190;;:143;3228:4636;;;7343:38;;7238:143;;:85;3228:4636;;;7294:29;;7238:85;;:52;3228:4636;;;7263:27;;7238:52;;6790:84;7146:64;6790:84;;;;;;;;6637:99;6790:84;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;6830:32;;;;;;;;;;;;;;:::i;:::-;;;;6637:99;;;;;;;;;;;;;;:::i;:::-;;;;;1869:195:91;;1997:60;1869:195;;-1:-1:-1;3228:4636:94;1997:13:91;3228:4636:94;;;-1:-1:-1;3228:4636:94;1997:60:91;:::i;2340:253::-;;2512:74;2340:253;;-1:-1:-1;3228:4636:94;2512:27:91;3228:4636:94;;;-1:-1:-1;3228:4636:94;2512:74:91;:::i;3228:4636:94:-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;3228:4636:94;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;3228:4636:94;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;:::o;:::-;;8889:1:99;3228:4636:94;;;;;;;:::o;:::-;;;;;;;;;;:::o;5844:570::-;3228:4636;;-1:-1:-1;;;6138:146:94;;;;;;;3228:4636;;;;;;;;;;;;;;5844:570;6046:290;;6070:228;;6138:146;3228:4636;;;;6138:146;;3228:4636;;6138:146;;;;;;:::i;4118:504::-;3228:4636;;-1:-1:-1;;;4398:94:94;;;;;;;3228:4636;;;;;;;;;;;;;;4118:504;4306:238;;4330:176;;4398:94;3228:4636;;;;4398:94;3228:4636;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:94;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;3228:4636:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:89:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;3228:4636:94;;:::i;:::-;;;;3086:20:89;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:89;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;3228:4636:94;;;;;;;;;;3430:180:89;;467:2:101;3228:4636:94;3430:180:89;;;;;:::i;:::-;;3228:4636:94;3444:31:89;-1:-1:-1;;;;;3228:4636:94;3430:180:89;;;;;;;-1:-1:-1;3430:180:89;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;3228:4636:94;;;-1:-1:-1;;;;;;3228:4636:94;3248:161:89;3354:37;;;3228:4636:94;3248:161:89;3228:4636:94;;;;;;;;;;3248:161:89;;;;;;;:::i;:::-;;3228:4636:94;3262:29:89;-1:-1:-1;;;;;3228:4636:94;3248:161:89;;;;;;;-1:-1:-1;3248:161:89;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;3228:4636:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;3740:389:89;3918:5;3228:4636:94;;;-1:-1:-1;;;3853:71:89;;;-1:-1:-1;;;;;3228:4636:94;;;3853:71:89;;;3228:4636:94;;;;;;;;3740:389:89;;3228:4636:94;3853:71:89;;3228:4636:94;;3853:71:89;3228:4636:94;;;3867:29:89;3228:4636:94;;3853:71:89;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;3228:4636:94;;;3852:181:89;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;3228:4636:94;;3945:88:89;;;-1:-1:-1;;;;;3228:4636:94;;3853:71:89;3945:88;;3228:4636:94;467:2:101;3228:4636:94;;;;;;;;-1:-1:-1;3228:4636:94;;;;;;;;3959:31:89;3228:4636:94;3945:88:89;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:89;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;4148:103:23;966:10:28;-1:-1:-1;3228:4636:94;;;;;;;;;810:35:91;;3228:4636:94;;3901:31:23;3228:4636:94;;4468:23:23;4464:108;;4148:103;:::o;:::-;966:10:28;-1:-1:-1;3228:4636:94;;;;;;;;;971:45:91;;3228:4636:94;;3901:31:23;3228:4636:94;4148:103:23;-1:-1:-1;3228:4636:94;;;-1:-1:-1;;;;;;;;;;;3228:4636:94;;;;;;;;966:10:28;3228:4636:94;;;;;;;;;3901:31:23;3228:4636:94;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3228:4636:94;;-1:-1:-1;3228:4636:94;;;-1:-1:-1;3228:4636:94;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;;3228:4636:94;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6246:584:99;;;;;6360:12;;;3228:4636:94;;;6360:24:99;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;3228:4636:94;;;;;;6578:12:99;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:99;;;-1:-1:-1;;;;;3228:4636:94;;;;;;;6644:21:99;;;:29;:21;;:::i;:29::-;6798:25;6246:584;:::o;6600:188::-;6753:24;;3228:4636:94;;8310:38:73;;-1:-1:-1;;;;;3228:4636:94;;;;;8310:38:73;:::i;:::-;6753:24:99;;;:::i;6604:::-;3228:4636:94;;;;;;6614:14:99;;-1:-1:-1;6604:24:99;;;6356:75;-1:-1:-1;;;3228:4636:94;;;;;;6360:12:99;3228:4636:94;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:99;;;525:595:95;-1:-1:-1;525:595:95;;;;3228:4636:94;;716:88:95;;3228:4636:94;716:88:95;;;;;;;;;783:4;716:88;;;3228:4636:94;;;;;;;;;;;:::i;716:88:95:-;698:107;;;;;;;:::i;:::-;3228:4636:94;;857:45:95;;3228:4636:94;;;;;;;;716:88:95;857:45;;3228:4636:94;:::i;:::-;;;;;;;-1:-1:-1;;;;;3228:4636:94;;;;;857:45:95;716:88;857:45;;;3228:4636:94;;;;:::i;:::-;916:8:95;;912:175;;525:595;:::o;912:175::-;3228:4636:94;;944:22:95;;;940:36;;716:88;990:87;;3228:4636:94;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;8406:869:99:-;;;3228:4636:94;;8620:15:99;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;3228:4636:94;9219:31:99;3228:4636:94;9130:48:99;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;9130:48;3228:4636:94;:::i;:::-;;9176:1:99;3228:4636:94;9232:17:99;3228:4636:94;;;;;;;;9232:17:99;;3228:4636:94;-1:-1:-1;;;;;3228:4636:94;;;;9219:12:99;;:31;:::i;:::-;3228:4636:94;;;;;;;;;9259:7:99;;:::i;:::-;3228:4636:94;;;;9252:15:99;9176:1;;9188:80;;8406:869::o;9010:62::-;8578:11;;-1:-1:-1;8578:11:99;;-1:-1:-1;8578:11:99;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;3228:4636:94;;;;;;;8939:60:99;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;3228:4636:94;;;;;;8759:49:99;3228:4636:94;;;;8753:55:99;3228:4636:94;;;8753:55:99;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;3228:4636:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;7558:604:99:-;;3228:4636:94;;7686:17:99;7682:83;;3228:4636:94;7789:27:99;3228:4636:94;7789:27:99;3228:4636:94;;7789:27:99;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;3228:4636:94;;;;;;;;;;;;;;;;7888:22:99;;;7884:77;;7975:21;-1:-1:-1;7975:84:99;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;3228:4636:94;8075:24:99;:::o;7975:84::-;3228:4636:94;;;8009:16:99;3228:4636:94;;8009:16:99;:::i;:::-;3228:4636:94;;;8001:24:99;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;3228:4636:94;;;;;8029:29:99;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;3228:4636:94;7926:24:99;:::o;7682:83::-;7726:28;;;;:::i;3470:384:30:-;-1:-1:-1;;;;;;;;;;;1991:1:30;3228:4636:94;;3670:20:30;3666:88;;1991:1;3228:4636:94;;3470:384:30:o;3666:88::-;3228:4636:94;;-1:-1:-1;;;3713:30:30;;;;;6196:308:91;;3228:4636:94;-1:-1:-1;3228:4636:94;6327:13:91;3228:4636:94;;;-1:-1:-1;3228:4636:94;11124:30:99;;;;:::i;:::-;11173;;;-1:-1:-1;11173:30:99;;;;11182:17;;-1:-1:-1;;;;;3228:4636:94;;11182:12:99;;:17;:::i;:::-;3228:4636:94;;;6327:13:91;3228:4636:94;;11173:30:99;6385::91;;;11173::99;6381:117:91;;;;6196:308;;:::o;6381:117::-;6431:56;3228:4636:94;-1:-1:-1;3228:4636:94;6327:13:91;3228:4636:94;;;-1:-1:-1;3228:4636:94;819:34:75;837:15;819:34;:::i;6431:56:91:-;6196:308;;:::o;6385:30::-;6395:20;;-1:-1:-1;6385:30:91;;;;11173::99;;;-1:-1:-1;11173:30:99;;7270:387:23;-1:-1:-1;;;;;3228:4636:94;;-1:-1:-1;3228:4636:94;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;3228:4636:94;;;;-1:-1:-1;3228:4636:94;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:94;;;;;;;;;;-1:-1:-1;;3228:4636:94;7509:4:23;3228:4636:94;;;966:10:28;;-1:-1:-1;;;;;3228:4636:94;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;3228:4636:94;;-1:-1:-1;3228:4636:94;;;;;;;;;1356:26:89;;-1:-1:-1;;;;;;;;;;;2887:71:23;3228:4636:94;;3901:31:23;3228:4636:94;;;;-1:-1:-1;3228:4636:94;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:94;;;;;;;;;;-1:-1:-1;;3228:4636:94;7509:4:23;3228:4636:94;;;966:10:28;;-1:-1:-1;;;;;3228:4636:94;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;3228:4636:94;;-1:-1:-1;3228:4636:94;;;;;;;;;810:35:91;;-1:-1:-1;;;;;;;;;;;2887:71:23;3228:4636:94;;3901:31:23;3228:4636:94;7270:387:23;-1:-1:-1;;;;;3228:4636:94;;-1:-1:-1;3228:4636:94;;;;;;;;;971:45:91;;-1:-1:-1;;;;;;;;;;;2887:71:23;3228:4636:94;;3901:31:23;3228:4636:94;7270:387:23;-1:-1:-1;3228:4636:94;;;-1:-1:-1;;;;;;;;;;;3228:4636:94;;;;;;;;-1:-1:-1;;;;;3228:4636:94;;;;;;;;;;;;3901:31:23;3228:4636:94;7892:388:23;-1:-1:-1;3228:4636:94;;;-1:-1:-1;;;;;;;;;;;3228:4636:94;;;;;;;;-1:-1:-1;;;;;3228:4636:94;;;;;;;;;;;;;;;;-1:-1:-1;3228:4636:94;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:94;;;;;;;;;;-1:-1:-1;;3228:4636:94;;;966:10:28;;-1:-1:-1;;;;;3228:4636:94;;8155:40:23;-1:-1:-1;;8155:40:23;3228:4636:94;8209:11:23;:::o;10580:184:99:-;3228:4636:94;;10446:8:73;;;:63;-1:-1:-1;10446:63:73;-1:-1:-1;;;;;3228:4636:94;;10726:7:99;3228:4636:94;;10736:12:99;:17;:12;;:17;:::i;10446:63:73:-;3228:4636:94;;;;;;;;;;13267:109:99;-1:-1:-1;13267:109:99;;-1:-1:-1;13267:109:99;;;3228:4636:94;;;10446:63:73;;3228:4636:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;3228:4636:94;;;;;;;;:::i;5907:716:89:-;6030:34;5907:716;6030:34;;;;:::i;:::-;3228:4636:94;;-1:-1:-1;;;6080:41:89;;-1:-1:-1;;;;;3228:4636:94;;;6080:41:89;;;3228:4636:94;;;;;6080:41:89;3228:4636:94;;;6090:13:89;3228:4636:94;;6080:41:89;;;;;;;-1:-1:-1;6080:41:89;;;5907:716;6079:42;;6075:90;;6266:27;3228:4636:94;2684:111:30;6210:14:89;3228:4636:94;2684:111:30;;;:::i;:::-;3228:4636:94;;;;;;-1:-1:-1;;;;;3228:4636:94;;-1:-1:-1;3228:4636:94;;;-1:-1:-1;3228:4636:94;;6210:14:89;6266:27;:::i;:::-;6080:41;6311:15;;3228:4636:94;;;;-1:-1:-1;;;;;;3228:4636:94;-1:-1:-1;;;;;3228:4636:94;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:94;;;;6337:143:89;;5907:716;-1:-1:-1;6493:28:89;3228:4636:94;-1:-1:-1;;;;;3228:4636:94;;;;;;;6489:128:89;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;3228:4636:94;;-1:-1:-1;;;6144:10:89;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;3228:4636:94;;;;;;;;;;-1:-1:-1;;;;;3228:4636:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:94;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;4663:1079:91:-;;;;;3228:4636:94;;:::i;:::-;;;;4903:16:91;4899:92;;4663:1079;5105:42;;5053:95;5105:42;;;;5053:95;;;:::i;:::-;5165:570;:34;;;5218:21;;;;;;5165:570;-1:-1:-1;5158:577:91;4663:1079;:::o;5165:570::-;5273:95;5431:67;5330:37;;;;;;5273:95;;;:::i;:::-;3228:4636:94;5470:27:91;5431;:13;3228:4636:94;-1:-1:-1;3228:4636:94;;;;;;;;;5431:27:91;5470;;;;3228:4636:94;;;;;;;;;;;5431:67:91;;;;;;;:::i;:::-;;;;;;;;;5273:409;5431:67;5397:216;5431:67;-1:-1:-1;5431:67:91;;;5165:570;5562:28;5524:67;5562:28;;3228:4636:94;5562:28:91;;;5524:67;;:::i;:::-;5397:216;3463:5:70;;;;3066;;3228:4636:94;3060:42:70;3371:111;;5397:216:91;5273:409;;:::i;:::-;5700:21;;4663:1079;:::o;5431:67::-;5524;5431;;;;5470:27;5431:67;5470:27;5431:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;4899:92;4949:31;;;;;;;;;;;;;:::i;:::-;4899:92;;;;;5748:442;2776:48;:39;;3228:4636:94;;;;;;;;;;2776:48:91;5946:237;:32;;;:237;;;-1:-1:-1;5748:442:91;:::o;5946:237::-;3358:53;:44;2776:27;3358:34;;;3228:4636:94;;3358:22:91;3228:4636:94;;;;;;;3358:53:91;-1:-1:-1;3228:4636:94;;;-1:-1:-1;;;6086:27:91;;3228:4636:94;;;;6086:27:91;;3228:4636:94;;;;;-1:-1:-1;;;;;3228:4636:94;6086:27:91;;;;;;;6009:174;6086:27;-1:-1:-1;6086:27:91;;;5946:237;2233:25;;:34;:25;3228:4636:94;;2233:13:91;3228:4636:94;;;;;;;2233:34:91;3463:5:70;;;;;3066;;3228:4636:94;3060:42:70;6009:174:91;;:::i;6086:27::-;2233:34;6086:27;;;;2233:25;6086:27;;;;;;;;;;;:::i;:::-;;;;;;14296:213:71;3228:4636:94;14374:24:71;;;;14370:103;;3228:4636:94;14296:213:71;:::o;14370:103::-;3228:4636:94;;;;14421:41:71;;;;;;14452:2;14421:41;;;3228:4636:94;;;;;14421:41:71;10695:389:73;3228:4636:94;;10871:8:73;;;10895:20;;10833:17;10895:20;10833:17;10895:20;10833:17;10895:20;:::o;10867:211::-;3228:4636:94;;;;;;;;;;10833:17:73;13267:109:99;;10833:17:73;13267:109:99;;;3228:4636:94;11014:1:73;3228:4636:94;;;;;;;11030:37:73;:::o;18080:5181:70:-;18246:1;18241:6;;;18237:53;;18246:1;19217:14;-1:-1:-1;;;19278:16:70;;;19274:92;;18080:5181;22827:18;22717;22607;22498;22387;22278;23216:28;19383:15;19898:6;19383:15;-1:-1:-1;;;23237:6:70;19383:15;;;19379:90;;18080:5181;19493:7;19486:15;;;19482:90;;18080:5181;19596:7;19589:15;;;19585:89;;18080:5181;19698:6;19691:14;;;19687:87;;18080:5181;19798:6;19791:14;;;19787:87;;18080:5181;19891:14;;19887:61;;18080:5181;20374:1;3228:4636:94;18246:1:70;3228:4636:94;22284:6:70;;;;:::i;:::-;3228:4636:94;;;;;22278:18:70;22393:6;;;;:::i;22387:18::-;22504:6;;;;:::i;22498:18::-;22613:6;;;;:::i;22607:18::-;22723:6;;;;:::i;22717:18::-;22833:6;;;;:::i;22827:18::-;23237:6;;;:::i;:::-;23232:11;;;3228:4636:94;23216:28:70;3228:4636:94;;18080:5181:70;:::o;19887:61::-;18246:1;3228:4636:94;19887:61:70;;19787:87;3228:4636:94;;;;;19787:87:70;;;19687;3228:4636:94;;;;;19687:87:70;;;19585:89;3228:4636:94;;;;;19585:89:70;;;19482:90;3228:4636:94;;;;;19482:90:70;;;19379;3228:4636:94;;;;;19379:90:70;;;19274:92;-1:-1:-1;;;;3228:4636:94;-1:-1:-1;3228:4636:94;;;;19274:92:70;;12497:447:99;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;3721:5:70;;;;;;3228:4636:94;;3731:5:70;;;3228:4636:94;;;;;;;;;13267:109:99;-1:-1:-1;13267:109:99;3228:4636:94;13267:109:99;;;-1:-1:-1;13267:109:99;;3228:4636:94;;;;;-1:-1:-1;12771:136:99;3228:4636:94;;;12830:10:99;;12771:136;;12687:230;;;;12771:136;3228:4636:94;;;;;;;;;;;12771:136:99;;;6999:207;;3228:4636:94;;9737:15:73;-1:-1:-1;9762:18:73;9795:7;9801:1;9795:7;;9791:234;;6999:207:99;10049:53:73;;;;;:::i;:::-;10120:8;;;:63;-1:-1:-1;10120:63:73;;-1:-1:-1;;;;;3228:4636:94;;7168:7:99;3228:4636:94;;;7178:12:99;;:17;:12;;:17;:::i;10120:63:73:-;10135:41;10168:7;10135:48;10168:7;;:::i;:::-;10135:41;13267:109:99;;;;;;13089:293;;10135:41:73;3228:4636:94;;;;;10135:48:73;10120:63;;;9791:234;9838:14;;;;;:::i;:::-;3228:4636:94;;;;;;;10049:53:73;13267:109:99;;-1:-1:-1;13267:109:99;3228:4636:94;13267:109:99;;;-1:-1:-1;13267:109:99;;3228:4636:94;;;;;9870:48:73;9866:149;3228:4636:94;;;9938:10:73;9866:149;9791:234;;9866:149;9993:7;;;;;;:::i;:::-;9866:149;9791:234;;3228:4636:94;;;;;;;:::i;:::-;-1:-1:-1;3228:4636:94;;;;;;;:::o;11486:272:99:-;;3228:4636:94;11452:22:73;11718:31:99;11486:272;3228:4636:94;;:::i;:::-;;;;:::i;:::-;;11452:22:73;;:::i;:::-;3228:4636:94;;:::i;:::-;;11718:12:99;3228:4636:94;;;;;11731:17:99;3228:4636:94;;;;;11731:17:99;;3228:4636:94;;11718:12:99;;:31;:::i;:::-;3228:4636:94;;;;;;;;;:::i;:::-;;;;;;11731:17:99;11672:79;;3228:4636:94;11486:272:99;:::o;6893:76:26:-;;;:::i;:::-;;;:::i;:::-;1949:1:30;-1:-1:-1;;;;;;;;;;;3228:4636:94;6893:76:26:o;3228:4636:94:-;;;;;;;:::i;:::-;-1:-1:-1;3228:4636:94;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:94;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:94;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;6510:1274:91:-;6658:30;6510:1274;3228:4636:94;;:::i;:::-;;6658:30:91;3228:4636:94;;;6658:30:91;;;;;;:::i;:::-;6716:17;;3228:4636:94;6716:17:91;;3228:4636:94;-1:-1:-1;;;;;3228:4636:94;6716:54:91;;:179;;6510:1274;6699:259;;6973:9;6658:30;6988:33;;;6716:17;7030:3;6988:33;;3228:4636:94;;6984:44:91;;;;;7053:36;;;:50;:36;;:::i;:::-;3228:4636:94;-1:-1:-1;;;;;3228:4636:94;;;7053:50:91;;7049:119;;7186:73;7187:72;7222:36;;:33;;;:36;:::i;:::-;7187:72;:::i;:::-;7186:73;;3228:4636:94;7186:73:91;7182:140;;3228:4636:94;;6973:9:91;;7182:140;3228:4636:94;;-1:-1:-1;;;7286:21:91;;;;;7049:119;3228:4636:94;;-1:-1:-1;;;7130:23:91;;;;;6984:44;-1:-1:-1;7362:42:91;;-1:-1:-1;;7362:42:91;;;;6716:17;7413:3;7362:42;;3228:4636:94;;7358:53:91;;;;;7436:45;;;:59;:45;;:::i;:59::-;;7432:128;;7578:92;7579:91;7624:45;;:42;;;:45;:::i;:::-;7579:91;:::i;7578:92::-;7574:159;;3228:4636:94;;7347:9:91;;7574:159;3228:4636:94;;-1:-1:-1;;;7697:21:91;;;;;7432:128;3228:4636:94;;-1:-1:-1;;;7522:23:91;;;;;7358:53;;;;;;7760:17;6510:1274;:::o;6699:259::-;3228:4636:94;;-1:-1:-1;;;6927:20:91;;;;;6716:179;6791:33;6658:30;6791:33;;;3228:4636:94;6791:45:91;:103;6716:179;6791:103;6840:42;;;;;3228:4636:94;6840:54:91;6716:179;;4996:4226:70;;3228:4636:94;;;;-1:-1:-1;;3228:4636:94;4996:4226:70;5584:131;;;;;;;;;;;;5796:10;;5792:368;;6270:20;;;;6266:143;;6695:300;;;;3228:4636:94;-1:-1:-1;3228:4636:94;7214:31:70;;7259:375;;;8094:1;3228:4636:94;;8075:1:70;3228:4636:94;8074:21:70;3228:4636:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7259:375:70;;;;-1:-1:-1;7259:375:70;;;6695:300;;;;;;3228:4636:94;6695:300:70;;7259:375;7700:21;3228:4636:94;4996:4226:70;:::o;6266:143::-;6330:16;;3066:5;3228:4636:94;940:4:60;3060:42:70;6322:71;:::i;5792:368::-;6126:19;;;;;;;:::i;3228:4636:94:-;;;-1:-1:-1;;;3228:4636:94;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;3228:4636:94;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11657:922:73;3228:4636:94;;11657:922:73;;;11864:7;;;;11936;11916:28;11936:7;;:::i;:::-;11916:28;13267:109:99;;;;;;13089:293;;11916:28:73;3228:4636:94;;;;;;;;;;;;12103:13:73;;;12099:89;;12251:14;;;;;12285:19;;;;3228:4636:94;;;;;;;;;;;;;;;;;12285:19:73;3228:4636:94;;12423:25:73;;:::o;12247:163::-;3228:4636:94;;;12343:52:73;3228:4636:94;12353:41:73;3228:4636:94;;:::i;:::-;;;;;;;;12353:41:73;-1:-1:-1;;;;;3228:4636:94;;12353:41:73;;;3228:4636:94;12343:52:73;:::i;:::-;12247:163;;12099:89;3228:4636:94;;-1:-1:-1;;;12143:30:73;;;;;11860:713;3228:4636:94;;12479:52:73;3228:4636:94;12489:41:73;3228:4636:94;;:::i;12489:41:73:-;-1:-1:-1;;;;;3228:4636:94;;12489:41:73;;;3228:4636:94;12343:52:73;:::i;12479:::-;11870:1;12545:17;;:::o;7084:141:26:-;3228:4636:94;-1:-1:-1;;;;;;;;;;;3228:4636:94;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;3228:4636:94;;-1:-1:-1;;;7191:17:26;;;;;1776:194:60;1829:135;;;;;;;","linkReferences":{},"immutableReferences":{"60120":[{"start":2537,"length":32}],"60123":[{"start":4780,"length":32}],"61074":[{"start":2123,"length":32},{"start":4837,"length":32}],"61077":[{"start":1298,"length":32},{"start":10629,"length":32}],"61080":[{"start":1366,"length":32},{"start":7731,"length":32},{"start":7995,"length":32}],"61083":[{"start":1993,"length":32},{"start":7578,"length":32},{"start":8121,"length":32}],"63598":[{"start":3733,"length":32},{"start":6477,"length":32}],"63600":[{"start":3479,"length":32},{"start":6638,"length":32}],"63602":[{"start":4169,"length":32}],"64680":[{"start":1440,"length":32},{"start":4055,"length":32},{"start":5673,"length":32}]}},"methodIdentifiers":{"BASE_DELEGATOR_HINTS()":"79d89614","DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_LIMIT_SET_ROLE()":"7d24bb27","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_NETWORK_SHARES_SET_ROLE()":"e78eb6ae","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","OPT_IN_SERVICE_HINTS()":"9b656b22","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VAULT_HINTS()":"45e78fcb","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","networkLimit(bytes32)":"3eb22c0f","networkLimitAt(bytes32,uint48,bytes)":"5d32a1c9","networkLimitHint(address,bytes32,uint48)":"da749d2b","networkLimitHintInternal(bytes32,uint48)":"197aa7ea","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operatorNetworkShares(bytes32,address)":"42c53e33","operatorNetworkSharesAt(bytes32,address,uint48,bytes)":"1a7a7044","operatorNetworkSharesHint(address,bytes32,address,uint48)":"07f9d5fd","operatorNetworkSharesHintInternal(bytes32,address,uint48)":"987b3ee8","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","setNetworkLimit(bytes32,uint256)":"02145348","setOperatorNetworkShares(bytes32,address,uint256)":"a33bc287","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","stakeHints(address,bytes32,address,uint48)":"25dc9708","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","totalOperatorNetworkShares(bytes32)":"c43dc03f","totalOperatorNetworkSharesAt(bytes32,uint48,bytes)":"8b3f10b0","totalOperatorNetworkSharesHint(address,bytes32,uint48)":"b549ef1f","totalOperatorNetworkSharesHintInternal(bytes32,uint48)":"ed4d89e5","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseDelegatorHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"optInServiceHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateRoleHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExceedsMaxNetworkLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoleHolders\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressRoleHolder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"SetOperatorNetworkShares\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_SHARES_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPT_IN_SERVICE_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"networkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"networkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"operatorNetworkShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"operatorNetworkSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"operatorNetworkSharesHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"operatorNetworkSharesHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"setOperatorNetworkShares\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"totalOperatorNetworkShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"totalOperatorNetworkSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"totalOperatorNetworkSharesHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"totalOperatorNetworkSharesHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetOperatorNetworkShares(bytes32,address,uint256)\":{\"params\":{\"operator\":\"address of the operator\",\"shares\":\"new operator's shares inside the subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"networkLimit(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the subnetwork\"}},\"networkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the subnetwork limit at\"},\"returns\":{\"_0\":\"limit of the subnetwork at the given timestamp\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"operatorNetworkShares(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"shares of the operator for the subnetwork\"}},\"operatorNetworkSharesAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the operator's shares at\"},\"returns\":{\"_0\":\"shares of the operator for the subnetwork at the given timestamp\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"setNetworkLimit(bytes32,uint256)\":{\"details\":\"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"setOperatorNetworkShares(bytes32,address,uint256)\":{\"details\":\"Only an OPERATOR_NETWORK_SHARES_SET_ROLE holder can call this function.\",\"params\":{\"operator\":\"address of the operator\",\"shares\":\"new shares of the operator for the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"totalOperatorNetworkShares(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"total shares of the operators for the subnetwork\"}},\"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the total operators' shares at\"},\"returns\":{\"_0\":\"total shares of the operators for the subnetwork at the given timestamp\"}}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"},\"SetNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's limit is set.\"},\"SetOperatorNetworkShares(bytes32,address,uint256)\":{\"notice\":\"Emitted when an operator's shares inside a subnetwork are set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get a subnetwork limit setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_NETWORK_SHARES_SET_ROLE()\":{\"notice\":\"Get an operator-subnetwork shares setter's role.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"networkLimit(bytes32)\":{\"notice\":\"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"networkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operatorNetworkShares(bytes32,address)\":{\"notice\":\"Get an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator).\"},\"operatorNetworkSharesAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get an operator's shares for a subnetwork at a given timestamp using a hint (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator).\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"setNetworkLimit(bytes32,uint256)\":{\"notice\":\"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"setOperatorNetworkShares(bytes32,address,uint256)\":{\"notice\":\"Set an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator).\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"totalOperatorNetworkShares(bytes32)\":{\"notice\":\"Get a sum of operators' shares for a subnetwork.\"},\"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a sum of operators' shares for a subnetwork at a given timestamp using a hint.\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/DelegatorHints.sol\":\"NetworkRestakeDelegatorHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf\",\"dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x4aaaf1c0737dd16e81f0d2b9833c549747a5ede6873bf1444bc72aa572d03e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eada27d7668eebaea16c3b890aa1b38ffc53965292e26c96f7c44834623f4710\",\"dweb:/ipfs/QmVSWuLtxyCqNbLyY89ptxkvsk4CLLKDQYigEne5Qj8k1L\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a\",\"dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c\",\"dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e\",\"dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0xbdc3bb48ccedb818cd75a6d74a16df55a822e9f6d3cc54c59f576f10aab67b5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2284f25f2478f419d7781573b17a89d0e7c5589a865d55e2d6ed5163aee23aa8\",\"dweb:/ipfs/QmNsr2625APBQiNKpYnX5VcSnYgfUHR9Uzzp9pRXjoDqK7\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44\",\"dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0xd71e9102e99a25ee8b5435779f011a24558f56074aa2b16c18b623b57754ae97\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://29db5552e55dab51bea1ae40ba00ca674cb50fcb10997999a72a94527b6eb591\",\"dweb:/ipfs/QmQrYyTPx73ubNxMhYWJCkprCVFVtuTFcKaabYiKTe71tY\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseDelegatorHints","type":"address"},{"internalType":"address","name":"vaultHints","type":"address"},{"internalType":"address","name":"optInServiceHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DuplicateRoleHolder"},{"inputs":[],"type":"error","name":"ExceedsMaxNetworkLimit"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"MissingRoleHolders"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"ZeroAddressRoleHolder"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"SetOperatorNetworkShares","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_SHARES_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPT_IN_SERVICE_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"networkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"networkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"operatorNetworkShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"operatorNetworkSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"operatorNetworkSharesHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"operatorNetworkSharesHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setOperatorNetworkShares"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"totalOperatorNetworkShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"totalOperatorNetworkSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"totalOperatorNetworkSharesHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"totalOperatorNetworkSharesHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"networkLimit(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the subnetwork"}},"networkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the subnetwork limit at"},"returns":{"_0":"limit of the subnetwork at the given timestamp"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"operatorNetworkShares(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"shares of the operator for the subnetwork"}},"operatorNetworkSharesAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the operator's shares at"},"returns":{"_0":"shares of the operator for the subnetwork at the given timestamp"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"setNetworkLimit(bytes32,uint256)":{"details":"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"setOperatorNetworkShares(bytes32,address,uint256)":{"details":"Only an OPERATOR_NETWORK_SHARES_SET_ROLE holder can call this function.","params":{"operator":"address of the operator","shares":"new shares of the operator for the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"totalOperatorNetworkShares(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"total shares of the operators for the subnetwork"}},"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the total operators' shares at"},"returns":{"_0":"total shares of the operators for the subnetwork at the given timestamp"}}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_LIMIT_SET_ROLE()":{"notice":"Get a subnetwork limit setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_NETWORK_SHARES_SET_ROLE()":{"notice":"Get an operator-subnetwork shares setter's role."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"networkLimit(bytes32)":{"notice":"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"networkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operatorNetworkShares(bytes32,address)":{"notice":"Get an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)."},"operatorNetworkSharesAt(bytes32,address,uint48,bytes)":{"notice":"Get an operator's shares for a subnetwork at a given timestamp using a hint (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"setNetworkLimit(bytes32,uint256)":{"notice":"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"setOperatorNetworkShares(bytes32,address,uint256)":{"notice":"Set an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)."},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"totalOperatorNetworkShares(bytes32)":{"notice":"Get a sum of operators' shares for a subnetwork."},"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)":{"notice":"Get a sum of operators' shares for a subnetwork at a given timestamp using a hint."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/DelegatorHints.sol":"NetworkRestakeDelegatorHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866","urls":["bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf","dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab","urls":["bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89","dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606","urls":["bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1","dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x4aaaf1c0737dd16e81f0d2b9833c549747a5ede6873bf1444bc72aa572d03e98","urls":["bzz-raw://eada27d7668eebaea16c3b890aa1b38ffc53965292e26c96f7c44834623f4710","dweb:/ipfs/QmVSWuLtxyCqNbLyY89ptxkvsk4CLLKDQYigEne5Qj8k1L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol":{"keccak256":"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549","urls":["bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a","dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed","urls":["bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0","dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d","urls":["bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c","dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575","urls":["bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e","dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0xbdc3bb48ccedb818cd75a6d74a16df55a822e9f6d3cc54c59f576f10aab67b5f","urls":["bzz-raw://2284f25f2478f419d7781573b17a89d0e7c5589a865d55e2d6ed5163aee23aa8","dweb:/ipfs/QmNsr2625APBQiNKpYnX5VcSnYgfUHR9Uzzp9pRXjoDqK7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f","urls":["bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44","dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0xd71e9102e99a25ee8b5435779f011a24558f56074aa2b16c18b623b57754ae97","urls":["bzz-raw://29db5552e55dab51bea1ae40ba00ca674cb50fcb10997999a72a94527b6eb591","dweb:/ipfs/QmQrYyTPx73ubNxMhYWJCkprCVFVtuTFcKaabYiKTe71tY"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":94} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"baseDelegatorHints","type":"address","internalType":"address"},{"name":"vaultHints","type":"address","internalType":"address"},{"name":"optInServiceHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_SHARES_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPT_IN_SERVICE_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VAULT_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkSharesAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkSharesHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"operatorNetworkSharesHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"totalOperatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalOperatorNetworkSharesAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalOperatorNetworkSharesHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"totalOperatorNetworkSharesHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetOperatorNetworkShares","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DuplicateRoleHolder","inputs":[]},{"type":"error","name":"ExceedsMaxNetworkLimit","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"MissingRoleHolders","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddressRoleHolder","inputs":[]}],"bytecode":{"object":"0x6101c0346101cf57601f61383338819003918201601f19168301916001600160401b0391828411858510176101d35781606092869260409687528339810103126101cf5761004c836101e7565b926100648361005d602084016101e7565b92016101e7565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101be57808083160361017a575b5050505f60a0525f60c0525f60e052610100935f8552610120935f8552610140905f82526101609283526101809384526101a0948552519461363796876101fc88396080518781816105a001528181610fd70152611629015260a051876109e9015260c051876112ac015260e05187818161084b01526112e5015251868181610512015261298501525185818161055601528181611e330152611f3b0152518481816107c901528181611d9a0152611fb9015251838181610e95015261194d015251828181610d9701526119ee015251816110490152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101cf5756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461030457806302145348146102ff57806307f9d5fd146102fa578063103f2907146102f5578063128e5d82146102f0578063197aa7ea146102eb5780631a7a7044146102e65780631a80e500146102e157806323f752d5146102dc578063248a9ca3146102d757806325dc9708146102d25780632dd31000146102cd5780632f2ff15d146102c857806336568abe146102c35780633dfd3873146102be5780633eb22c0f146102b957806342c53e33146102b4578063439fab91146102af57806345e78fcb146102aa578063557cab44146102a55780635d32a1c9146102a05780636679191e1461029b57806379d89614146102965780637d24bb27146102915780637f5a7c7b1461028c5780638b3f10b01461028757806391d1485414610282578063987b3ee81461027d5780639b656b22146102785780639f86fd8514610273578063a217fddf1461026e578063a33bc28714610269578063b549ef1f14610264578063bb24fe8a1461025f578063c0cd7c3e1461025a578063c43dc03f14610255578063d15b740e14610250578063d547741f1461024b578063da749d2b14610246578063e02f693714610241578063e49561ee1461023c578063e78eb6ae14610237578063ed4d89e514610232578063fbfa77cf1461022d578063fd4d447c14610228578063ff54740f146102235763ffa1ad741461021e575f80fd5b6116dc565b6116bf565b611695565b61166e565b61160e565b6115d4565b6113e9565b6113cd565b6113b3565b611367565b61133d565b611314565b6112d0565b61128d565b611273565b611126565b61110c565b611078565b611034565b610fa6565b610f48565b610f25565b610efd565b610ec4565b610e80565b610e46565b610e23565b610dc6565b610d82565b610c4a565b610bd1565b610ba8565b610aaf565b610a64565b610a18565b6109d4565b6109b7565b61097e565b6107f8565b6107b4565b61076e565b610585565b610541565b6104fd565b6104c8565b61035e565b3461035a57602036600319011261035a5760043563ffffffff60e01b811680910361035a57602090637965db0b60e01b8114908115610349575b506040519015158152f35b6301ffc9a760e01b1490505f61033e565b5f80fd5b3461035a5760408060031936011261035a57600435906024359061038061202e565b825f526002602052805f2054821161041a57825f526003602052816103a6825f206128d7565b1461040a5781610405916103f57e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103e6875f52600360205260405f2090565b6103ef42612d8e565b90612176565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b6001600160a01b0381160361035a57565b6024359065ffffffffffff8216820361035a57565b6064359065ffffffffffff8216820361035a57565b608090600319011261035a5760043561047d8161042a565b906024359060443561048e8161042a565b9060643565ffffffffffff8116810361035a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461035a576104f96104e56104dc36610465565b92919091611736565b6040519182916020835260208301906104a4565b0390f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a5761059e61043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600360205260405f206122f5565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761064357604052565b610614565b606081019081106001600160401b0382111761064357604052565b60a081019081106001600160401b0382111761064357604052565b90601f801991011681019081106001600160401b0382111761064357604052565b604051906106ac82610663565b565b604051906106ac82610628565b6001600160401b03811161064357601f01601f191660200190565b81601f8201121561035a578035906106ed826106bb565b926106fb604051948561067e565b8284526020838301011161035a57815f926020809301838601378301015290565b90608060031983011261035a57600435916024356107398161042a565b9160443565ffffffffffff8116810361035a5791606435906001600160401b03821161035a5761076b916004016106d6565b90565b3461035a5760206107ac6107a76107843661071c565b939190925f526005865260405f209060018060a01b03165f5260205260405f2090565b61242d565b604051908152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356001600160601b038116810361035a5760243590610828612505565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610979575f9161094a575b5015610938576001600160601b03166bffffffffffffffffffffffff193360601b161790806108b2835f52600260205260405f2090565b54146109265761090b817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c926108f0855f52600260205260405f2090565b556108fb8185612534565b6040519081529081906020820190565b0390a261092460015f805160206135c283398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b61096c915060203d602011610972575b610964818361067e565b8101906117e8565b5f61087b565b503d61095a565b6117fc565b3461035a57602036600319011261035a576004355f525f805160206135a28339815191526020526020600160405f200154604051908152f35b3461035a576104f96104e56109cb36610465565b92919091611904565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a57610924602435600435610a3b8261042a565b805f525f805160206135a2833981519152602052610a5f600160405f2001546120e1565b61280f565b3461035a57604036600319011261035a57602435610a818161042a565b336001600160a01b03821603610a9d5761092490600435612845565b60405163334bd91960e11b8152600490fd5b3461035a57602036600319011261035a57600435610acc8161042a565b610ad4612505565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610b8a57506001546001600160a01b039182169181168214610926576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f805160206135c283398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461035a57602036600319011261035a576004355f52600360205260206107ac60405f206128d7565b3461035a57604036600319011261035a5760206107ac610c18602435610bf68161042a565b6004355f526005845260405f209060018060a01b03165f5260205260405f2090565b6128d7565b9181601f8401121561035a578235916001600160401b03831161035a576020838186019501011161035a57565b3461035a57602036600319011261035a576001600160401b0360043581811161035a57610c7b903690600401610c1d565b5f805160206135e2833981519152549260ff8460401c1615931680159081610d7a575b6001149081610d70575b159081610d67575b50610d55575f805160206135e2833981519152805467ffffffffffffffff19166001179055610ce39183610d3157612950565b610ce957005b5f805160206135e2833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f805160206135e2833981519152805460ff60401b1916600160401b179055612950565b60405163f92ee8a960e01b8152600490fd5b9050155f610cb0565b303b159150610ca8565b849150610c9e565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576020604051614e208152f35b606060031982011261035a576004359160243565ffffffffffff8116810361035a5791604435906001600160401b03821161035a5761076b916004016106d6565b3461035a5760206107ac610e3636610de2565b915f526003845260405f2061242d565b3461035a575f36600319011261035a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461035a575f36600319011261035a576001546040516001600160a01b039091168152602090f35b3461035a5760206107ac610f3836610de2565b915f526004845260405f2061242d565b3461035a57604036600319011261035a57602060ff610f9a602435610f6c8161042a565b6004355f525f805160206135a2833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461035a57606036600319011261035a57602435610fc38161042a565b60443565ffffffffffff8116810361035a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106025761102f6105e5926004355f52600560205260405f209060018060a01b03165f5260205260405f2090565b6122f5565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356110958161042a565b6024356001600160401b03811161035a575f916110b783923690600401610c1d565b90816040519283928337810184815203915af46111046110d5611b60565b916110f66040519384921515602084015260408084015260608301906104a4565b03601f19810183528261067e565b805190602001fd5b3461035a575f36600319011261035a5760206040515f8152f35b3461035a57606036600319011261035a576024356004356111468261042a565b6044359161115261208a565b5f8281526005602090815260408083206001600160a01b0385168452909152902061117c906128d7565b838114610926577f739a5a3ec0ff71e2386d0013deac5f44e0935a98def2e2a5ddf9a709518c8294916111ef61123c92855f52600460205260405f20906111e9886111e46111c942612d8e565b936111df610c188c5f52600460205260405f2090565b611bb6565b611bd1565b91612176565b5050611220856103e68361120b885f52600560205260405f2090565b9060018060a01b03165f5260205260405f2090565b50506040519485526001600160a01b0316939081906020820190565b0390a3005b606090600319011261035a576004356112598161042a565b906024359060443565ffffffffffff8116810361035a5790565b3461035a576104f96104e561128736611241565b91611bde565b3461035a575f36600319011261035a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57602036600319011261035a576004355f52600460205260206107ac60405f206128d7565b3461035a57602036600319011261035a576004355f526002602052602060405f2054604051908152f35b3461035a57604036600319011261035a5761092460243560043561138a8261042a565b805f525f805160206135a28339815191526020526113ae600160405f2001546120e1565b612845565b3461035a576104f96104e56113c736611241565b91611c28565b3461035a5760206107ac6113e03661071c565b92919091611d24565b3461035a5760a036600319011261035a576024356004356114098261042a565b60443591611415610450565b90608435906001600160401b03821161035a57611437600492369084016106d6565b61143f612505565b5f5460209061146490611458906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa928315610979575f936115a3575b506001600160a01b039283163303611591576001546001600160a01b0316838116611506575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361092460015f805160206135c283398151915255565b90936040519461153d8661152f602082019363724ab0f760e11b8552858c898d60248701611eae565b03601f19810188528761067e565b62042e305a1061157f575f6114ed938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f150936114ac565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b6115c691935060203d6020116115cd575b6115be818361067e565b810190611872565b915f611486565b503d6115b4565b3461035a575f36600319011261035a5760206040517f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846258152f35b3461035a57604036600319011261035a5761162761043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600460205260405f206122f5565b3461035a575f36600319011261035a575f546040516001600160a01b039091168152602090f35b3461035a57604036600319011261035a5760206107ac6024356116b78161042a565b600435611f04565b3461035a575f36600319011261035a5760206040516203d0908152f35b3461035a575f36600319011261035a57602060405160018152f35b5190811515820361035a57565b519063ffffffff8216820361035a57565b919082604091031261035a5761076b602061172f846116f7565b9301611704565b906117869165ffffffffffff6117959496956060976040519463130f67dd60e31b6020870152602486015260018060a01b031660448501521660648301526064825261178182610663565b612238565b60208082518301019101611715565b9061179d5750565b90915063ffffffff604051911660208201526020815261076b81610628565b5f9081526005602090815260408083206001600160a01b0390941683529290522061076b92919061242d565b9081602091031261035a5761076b906116f7565b6040513d5f823e3d90fd5b81601f8201121561035a5780519061181e826106bb565b9261182c604051948561067e565b8284526020838301011161035a57815f9260208093018386015e8301015290565b9060208282031261035a5781516001600160401b03811161035a5761076b9201611807565b9081602091031261035a575161076b8161042a565b9061076b91602081526118a6825160a0602084015260c08301906104a4565b9060a060806118f46118e16118cd602088015196601f1997888883030160408901526104a4565b6040880151878783030160608801526104a4565b60608701518686830301848701526104a4565b94015192828503019101526104a4565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491935f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa948515610979575f95611b18575b5060405163fbfa77cf60e01b8152602081600481888d165afa908115610979576119ea995f9285928491611af9575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa978815610979575f98611acf575b509081611a3b82611a3381611a419689611c28565b958388611736565b94611bde565b90835115801590611ac5575b8015611abb575b8015611ab1575b8015611aa7575b611a6f5750505050909150565b6110f6955061076b9496611a8161069f565b948552602085015260408401526060830152608082015260405192839160208301611887565b5081511515611a62565b5082511515611a5b565b5080511515611a54565b5086511515611a4d565b611a4192919850611af1903d805f833e611ae9818361067e565b81019061184d565b979091611a1e565b611b12915060203d6020116115cd576115be818361067e565b5f6119ad565b611b2d9195503d805f833e611ae9818361067e565b935f61197e565b9061076b92915f52600360205260405f2061242d565b9061076b92915f52600460205260405f2061242d565b3d15611b8a573d90611b71826106bb565b91611b7f604051938461067e565b82523d5f602084013e565b606090565b634e487b7160e01b5f52601160045260245ffd5b5f19810191908211611bb157565b611b8f565b91908203918211611bb157565b9060018201809211611bb157565b91908201809211611bb157565b60405163ed4d89e560e01b6020820152602481019290925265ffffffffffff909216604482015260609291611795916117869161178182606481015b03601f19810184528361067e565b604051630cbd53f560e11b6020820152602481019290925265ffffffffffff90921660448201526060929161179591611786916117818260648101611c1a565b60405190611c7582610628565b60606020838281520152565b9060208282031261035a5781516001600160401b039283821161035a57019060408282031261035a5760405192611cb784610628565b825181811161035a5782611ccc918501611807565b8452602083015190811161035a57611ce49201611807565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261076b929101906104a4565b92611d3490929192828486612bb5565b929093611d3f611c68565b93805180611e92575b50508415938415611dfc575b8415611d6b575b50505050611d665790565b505f90565b602080949550611d96910151604051958694859463530e1d4360e01b865260601c9060048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611ddd575b50155f808080611d5b565b611df6915060203d60201161097257610964818361067e565b5f611dd2565b5f549094506001600160a01b0316602084865192611e2f604051948593849363530e1d4360e01b85528960048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611e73575b501593611d54565b611e8c915060203d60201161097257610964818361067e565b5f611e6b565b611ea6929550602080918301019101611c81565b925f80611d48565b919360a09361076b969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906104a4565b8115611ef0570490565b634e487b7160e01b5f52601260045260245ffd5b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610979575f91612011575b5015918215611f8d575b50509050611f875761076b91612ccb565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610979575f92611ff4575b505015805f80611f76565b61200a9250803d1061097257610964818361067e565b5f80611fe9565b6120289150843d861161097257610964818361067e565b5f611f6c565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b541615610b8a5750565b335f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846259060ff90612080565b5f8181525f805160206135a283398151915260209081526040808320338452909152902060ff90612080565b634e487b7160e01b5f52603260045260245ffd5b8054821015612136575f5260205f2001905f90565b61210d565b90815491600160401b831015610643578261215e9160016106ac95018155612121565b90919082549060031b91821b915f19901b1916179055565b90929192600182019081548015612208575b508461219384612dc0565b509490928454936121a3836128d7565b96816121f3575b50156121d0575050505f198101908111611bb15761215e85916121cc93612121565b9190565b6121cc9492936121ec926001600160d01b039091169190613486565b505061213b565b65ffffffffffff83811691161490505f6121aa565b600160401b811015610643578060016122249201845583612121565b8154905f199060031b1b191690555f612188565b5f9190829160405161226d816110f66020820194639f86fd8560e01b86523060248401526040604484015260648301906104a4565b51915afa5061227a611b60565b8051810160408282031261035a57612294602083016116f7565b916040810151916001600160401b03831161035a576122ba926020809201920101611807565b90156122c35790565b805190811561035a57602001fd5b906040516122de81610628565b915465ffffffffffff8116835260301c6020830152565b91908254905f82916005841161239d575b612311935085612f24565b9081156123915761238a61238161237b61237161234361233e61233388611ba3565b895f5260205f200190565b6122d1565b96600161236a602061235b8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101612121565b90549060031b1c90565b93611ba3565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926123a881612df9565b8103908111611bb15761231193865f526123dc6123d18360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff851610156123f2575091612306565b9291506123fe90611bc3565b90612306565b9081602091031261035a5761076b90611704565b90600163ffffffff80931601918211611bb157565b918051156124fb578060208061244893518301019101612404565b916124538382613056565b92612464845165ffffffffffff1690565b9065ffffffffffff80851692168281146124ef578211918261249a575b50506124915761076b9250612f86565b50506020015190565b9091506124a78354611ba3565b63ffffffff8316149182156124c0575b50505f80612481565b6124e79192506124db6124d56123d192612418565b85613056565b5165ffffffffffff1690565b115f806124b7565b50505050506020015190565b5061076b91612f86565b5f805160206135c283398151915260028154146125225760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161254b82612dc0565b9193905083156125a95761256b916001600160d01b031690600101612121565b90549060031b1c5b8261259f575b5050612583575050565b61259b915f52600360205260405f206103ef42612d8e565b5050565b119050815f612579565b50505f612573565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206135a28339815191529060ff16611f87575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206135a28339815191529060ff905b541661272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f805160206135a28339815191529060ff906126c7565b6001600160a01b0381165f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b5584625905f805160206135a28339815191529060ff906126c7565b5f8181525f805160206135a2833981519152602081815260408084206001600160a01b038716855290915290912060ff906126c7565b5f8181525f805160206135a2833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b8054806128fc57505f5b6001600160d01b03811615611f875760016123719201612121565b5f19908082810111611bb157825f5260205f2001015460301c6128e1565b91909160408184031261035a5780356129328161042a565b9260208201356001600160401b03811161035a5761076b92016106d6565b61295c9181019061291a565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610979575f91612a6f575b5015612a5d576129f16040916129ec612a37946129d16130be565b60018060a01b03166001600160601b0360a01b5f5416175f55565b61323e565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116612a4d575b5001516001600160a01b031690565b908116612a415750565b612a4a9061265c565b50565b612a56906125b1565b505f612a28565b6040516362df054560e01b8152600490fd5b612a88915060203d60201161097257610964818361067e565b5f6129b6565b6040519060a082018281106001600160401b038211176106435760405281608060609182815282602082015282604082015282808201520152565b9060208282031261035a5781516001600160401b039283821161035a57019060a08282031261035a57612afa61069f565b92825181811161035a5782612b10918501611807565b8452602083015181811161035a5782612b2a918501611807565b6020850152604083015181811161035a5782612b47918501611807565b6040850152606083015181811161035a5782612b64918501611807565b6060850152608083015190811161035a57612b7f9201611807565b608082015290565b9081602091031261035a575190565b60409065ffffffffffff61076b949316815281602082015201906104a4565b91939293612bc1612a8e565b94805180612caf575b5050612bdb60608601518285611b4a565b9182612bed57505050509051905f9190565b612c01612c3b9183608089015191876117bc565b916020612c1a6114586114585f5460018060a01b031690565b8189015190604051808096819463810da75d60e01b83528760048401612b96565b03915afa801561097957612c7795612c71935f92612c7c575b50612c65919260408a015191611b34565b90818082109118021890565b9061339e565b915190565b612c659250612ca29060203d602011612ca8575b612c9a818361067e565b810190612b87565b91612c54565b503d612c90565b612cc3929650602080918301019101612ac9565b935f80612bca565b612ce0610c18825f52600460205260405f2090565b9081612ced575050505f90565b612d08610c1860049461120b845f52600560205260405f2090565b5f5460405163bd49c35f60e01b81529491929160209186919082906001600160a01b03165afa9081156109795761076b945f92612d65575b50610c18612d56915f52600360205260405f2090565b9081808210911802189061339e565b612d56919250612d86610c189160203d602011612ca857612c9a818361067e565b929150612d40565b65ffffffffffff90818111612da1571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612dd15750505f905f905f90565b5f19918183810111611bb1575f5260205f2001015460019165ffffffffffff82169160301c90565b600181111561076b57600181600160801b811015612f12575b612eba612eb0612ea6612e9c612e92612e88612ec697600488600160401b612ec19a1015612f05575b640100000000811015612ef8575b62010000811015612eeb575b610100811015612edf575b6010811015612ed3575b1015612ecb575b60030260011c612e81818b611ee6565b0160011c90565b612e81818a611ee6565b612e818189611ee6565b612e818188611ee6565b612e818187611ee6565b612e818186611ee6565b8093611ee6565b821190565b900390565b60011b612e71565b811c9160021b91612e6a565b60081c91811b91612e60565b60101c9160081b91612e55565b60201c9160101b91612e49565b60401c9160201b91612e3b565b50600160401b9050608082901c612e12565b91905b838210612f345750505090565b909192808316906001818518811c8301809311611bb157855f5265ffffffffffff808460205f20015416908516105f14612f73575050925b9190612f27565b909493508101809111611bb15791612f6c565b908154905f829160058411612ff0575b612fa1935084612f24565b80612fc957505f905b6001600160d01b03821615611f875761076b9160016123719201612121565b612fe3612fd8612fea92611ba3565b835f5260205f200190565b5460301c90565b90612faa565b9192612ffb81612df9565b8103908111611bb157612fa193855f5265ffffffffffff808360205f20015416908516105f1461302c575091612f96565b92915061303890611bc3565b90612f96565b6040519061304b82610628565b5f6020838281520152565b9061307f6130796130a09261306961303e565b5061307261303e565b5084612121565b506122d1565b91600165ffffffffffff845116936020828060d01b03910151169101612121565b905490604051926130b084610628565b835260031b1c602082015290565b6130c6613563565b6130ce613563565b60015f805160206135c283398151915255565b604051906130ee82610648565b5f6040838281528260208201520152565b81601f8201121561035a578051916020916001600160401b038411610643578360051b90604051946131338584018761067e565b8552838086019282010192831161035a578301905b828210613156575050505090565b83809183516131648161042a565b815201910190613148565b9060208282031261035a5781516001600160401b039283821161035a5701908181039260a0841261035a576060604051946131a986610648565b1261035a576040516131ba81610648565b83516131c58161042a565b815260208401516131d58161042a565b602082015260408401516131e88161042a565b60408201528452606083015181811161035a57826132079185016130ff565b6020850152608083015190811161035a5761322292016130ff565b604082015290565b80518210156121365760209160051b010190565b61325a9061324a6130e1565b506020808251830101910161316f565b8051519091906001600160a01b03161580613384575b613372579060208101905f5b825180518210156132f657611458613297836132a49361322a565b516001600160a01b031690565b156132e4576132c66132c26132bd61329784875161322a565b612732565b1590565b6132d25760010161327c565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015613369576114586132978361331d9361322a565b156133585761333b6132c261333661329784875161322a565b6127a0565b61334757600101613302565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b506020820151511580613270575060408201515115613270565b91818302915f198185099383808610950394808603951461341e57848311156134115790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b8215600302601118613591565b50509061076b9250611ee6565b8054600160401b8110156106435761344891600182018155612121565b61347357815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939280156135395761349d6134a891611ba3565b825f5260205f200190565b9182549265ffffffffffff91828516928116808411613527578793036134ee57506134e792509065ffffffffffff82549181199060301b169116179055565b60301c9190565b9150506135229161350e6135006106ae565b65ffffffffffff9093168352565b6001600160d01b038616602083015261342b565b6134e7565b604051632520601d60e01b8152600490fd5b509061355e9161354a6135006106ae565b6001600160d01b038516602083015261342b565b5f9190565b60ff5f805160206135e28339815191525460401c161561357f57565b604051631afcd79f60e31b8152600490fd5b634e487b715f526020526024601cfdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220634e3b6b986f1093753acb2fce82d90613d9763273e8cb9fc5d156adf1a11ace64736f6c63430008190033","sourceMap":"3228:4636:92:-:0;;;;;;;;;;;;;-1:-1:-1;;3228:4636:92;;;;-1:-1:-1;;;;;3228:4636:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;348:4:93;;332:21;;8837:64:26;3228:4636:92;;;;;;;;;7896:76:26;;3228:4636:92;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:80;;;-1:-1:-1;525:17:80;;-1:-1:-1;552:12:80;;-1:-1:-1;2360:34:87;;2404:28;;-1:-1:-1;2404:28:87;;2442:57;;-1:-1:-1;2442:57:87;;2509:61;;-1:-1:-1;2509:61:87;;3714:41:92;;;;3765:24;;;;3799:40;;;;3228:4636;;;;;;;;332:21:93;3228:4636:92;;;;;;;;;;;;;;;525:17:80;3228:4636:92;;;;;552:12:80;3228:4636:92;;;;;2360:34:87;3228:4636:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;3228:4636:92;;;;;;;;;;;;;8087:29:26;;3228:4636:92;;8087:29:26;7981:146;;;;;7896:76;3228:4636:92;;-1:-1:-1;;;7938:23:26;;;;;3228:4636:92;-1:-1:-1;3228:4636:92;;;;;;-1:-1:-1;3228:4636:92;;;;;-1:-1:-1;3228:4636:92;;;;-1:-1:-1;;;;;3228:4636:92;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461030457806302145348146102ff57806307f9d5fd146102fa578063103f2907146102f5578063128e5d82146102f0578063197aa7ea146102eb5780631a7a7044146102e65780631a80e500146102e157806323f752d5146102dc578063248a9ca3146102d757806325dc9708146102d25780632dd31000146102cd5780632f2ff15d146102c857806336568abe146102c35780633dfd3873146102be5780633eb22c0f146102b957806342c53e33146102b4578063439fab91146102af57806345e78fcb146102aa578063557cab44146102a55780635d32a1c9146102a05780636679191e1461029b57806379d89614146102965780637d24bb27146102915780637f5a7c7b1461028c5780638b3f10b01461028757806391d1485414610282578063987b3ee81461027d5780639b656b22146102785780639f86fd8514610273578063a217fddf1461026e578063a33bc28714610269578063b549ef1f14610264578063bb24fe8a1461025f578063c0cd7c3e1461025a578063c43dc03f14610255578063d15b740e14610250578063d547741f1461024b578063da749d2b14610246578063e02f693714610241578063e49561ee1461023c578063e78eb6ae14610237578063ed4d89e514610232578063fbfa77cf1461022d578063fd4d447c14610228578063ff54740f146102235763ffa1ad741461021e575f80fd5b6116dc565b6116bf565b611695565b61166e565b61160e565b6115d4565b6113e9565b6113cd565b6113b3565b611367565b61133d565b611314565b6112d0565b61128d565b611273565b611126565b61110c565b611078565b611034565b610fa6565b610f48565b610f25565b610efd565b610ec4565b610e80565b610e46565b610e23565b610dc6565b610d82565b610c4a565b610bd1565b610ba8565b610aaf565b610a64565b610a18565b6109d4565b6109b7565b61097e565b6107f8565b6107b4565b61076e565b610585565b610541565b6104fd565b6104c8565b61035e565b3461035a57602036600319011261035a5760043563ffffffff60e01b811680910361035a57602090637965db0b60e01b8114908115610349575b506040519015158152f35b6301ffc9a760e01b1490505f61033e565b5f80fd5b3461035a5760408060031936011261035a57600435906024359061038061202e565b825f526002602052805f2054821161041a57825f526003602052816103a6825f206128d7565b1461040a5781610405916103f57e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f946103e6875f52600360205260405f2090565b6103ef42612d8e565b90612176565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b6001600160a01b0381160361035a57565b6024359065ffffffffffff8216820361035a57565b6064359065ffffffffffff8216820361035a57565b608090600319011261035a5760043561047d8161042a565b906024359060443561048e8161042a565b9060643565ffffffffffff8116810361035a5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461035a576104f96104e56104dc36610465565b92919091611736565b6040519182916020835260208301906104a4565b0390f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a5761059e61043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600360205260405f206122f5565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761064357604052565b610614565b606081019081106001600160401b0382111761064357604052565b60a081019081106001600160401b0382111761064357604052565b90601f801991011681019081106001600160401b0382111761064357604052565b604051906106ac82610663565b565b604051906106ac82610628565b6001600160401b03811161064357601f01601f191660200190565b81601f8201121561035a578035906106ed826106bb565b926106fb604051948561067e565b8284526020838301011161035a57815f926020809301838601378301015290565b90608060031983011261035a57600435916024356107398161042a565b9160443565ffffffffffff8116810361035a5791606435906001600160401b03821161035a5761076b916004016106d6565b90565b3461035a5760206107ac6107a76107843661071c565b939190925f526005865260405f209060018060a01b03165f5260205260405f2090565b61242d565b604051908152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356001600160601b038116810361035a5760243590610828612505565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610979575f9161094a575b5015610938576001600160601b03166bffffffffffffffffffffffff193360601b161790806108b2835f52600260205260405f2090565b54146109265761090b817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c926108f0855f52600260205260405f2090565b556108fb8185612534565b6040519081529081906020820190565b0390a261092460015f805160206135c283398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b61096c915060203d602011610972575b610964818361067e565b8101906117e8565b5f61087b565b503d61095a565b6117fc565b3461035a57602036600319011261035a576004355f525f805160206135a28339815191526020526020600160405f200154604051908152f35b3461035a576104f96104e56109cb36610465565b92919091611904565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a57610924602435600435610a3b8261042a565b805f525f805160206135a2833981519152602052610a5f600160405f2001546120e1565b61280f565b3461035a57604036600319011261035a57602435610a818161042a565b336001600160a01b03821603610a9d5761092490600435612845565b60405163334bd91960e11b8152600490fd5b3461035a57602036600319011261035a57600435610acc8161042a565b610ad4612505565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff1615610b8a57506001546001600160a01b039182169181168214610926576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f805160206135c283398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461035a57602036600319011261035a576004355f52600360205260206107ac60405f206128d7565b3461035a57604036600319011261035a5760206107ac610c18602435610bf68161042a565b6004355f526005845260405f209060018060a01b03165f5260205260405f2090565b6128d7565b9181601f8401121561035a578235916001600160401b03831161035a576020838186019501011161035a57565b3461035a57602036600319011261035a576001600160401b0360043581811161035a57610c7b903690600401610c1d565b5f805160206135e2833981519152549260ff8460401c1615931680159081610d7a575b6001149081610d70575b159081610d67575b50610d55575f805160206135e2833981519152805467ffffffffffffffff19166001179055610ce39183610d3157612950565b610ce957005b5f805160206135e2833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f805160206135e2833981519152805460ff60401b1916600160401b179055612950565b60405163f92ee8a960e01b8152600490fd5b9050155f610cb0565b303b159150610ca8565b849150610c9e565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a576020604051614e208152f35b606060031982011261035a576004359160243565ffffffffffff8116810361035a5791604435906001600160401b03821161035a5761076b916004016106d6565b3461035a5760206107ac610e3636610de2565b915f526003845260405f2061242d565b3461035a575f36600319011261035a5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a575f36600319011261035a5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b3461035a575f36600319011261035a576001546040516001600160a01b039091168152602090f35b3461035a5760206107ac610f3836610de2565b915f526004845260405f2061242d565b3461035a57604036600319011261035a57602060ff610f9a602435610f6c8161042a565b6004355f525f805160206135a2833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461035a57606036600319011261035a57602435610fc38161042a565b60443565ffffffffffff8116810361035a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106025761102f6105e5926004355f52600560205260405f209060018060a01b03165f5260205260405f2090565b6122f5565b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57604036600319011261035a576004356110958161042a565b6024356001600160401b03811161035a575f916110b783923690600401610c1d565b90816040519283928337810184815203915af46111046110d5611b60565b916110f66040519384921515602084015260408084015260608301906104a4565b03601f19810183528261067e565b805190602001fd5b3461035a575f36600319011261035a5760206040515f8152f35b3461035a57606036600319011261035a576024356004356111468261042a565b6044359161115261208a565b5f8281526005602090815260408083206001600160a01b0385168452909152902061117c906128d7565b838114610926577f739a5a3ec0ff71e2386d0013deac5f44e0935a98def2e2a5ddf9a709518c8294916111ef61123c92855f52600460205260405f20906111e9886111e46111c942612d8e565b936111df610c188c5f52600460205260405f2090565b611bb6565b611bd1565b91612176565b5050611220856103e68361120b885f52600560205260405f2090565b9060018060a01b03165f5260205260405f2090565b50506040519485526001600160a01b0316939081906020820190565b0390a3005b606090600319011261035a576004356112598161042a565b906024359060443565ffffffffffff8116810361035a5790565b3461035a576104f96104e561128736611241565b91611bde565b3461035a575f36600319011261035a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461035a575f36600319011261035a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461035a57602036600319011261035a576004355f52600460205260206107ac60405f206128d7565b3461035a57602036600319011261035a576004355f526002602052602060405f2054604051908152f35b3461035a57604036600319011261035a5761092460243560043561138a8261042a565b805f525f805160206135a28339815191526020526113ae600160405f2001546120e1565b612845565b3461035a576104f96104e56113c736611241565b91611c28565b3461035a5760206107ac6113e03661071c565b92919091611d24565b3461035a5760a036600319011261035a576024356004356114098261042a565b60443591611415610450565b90608435906001600160401b03821161035a57611437600492369084016106d6565b61143f612505565b5f5460209061146490611458906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa928315610979575f936115a3575b506001600160a01b039283163303611591576001546001600160a01b0316838116611506575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361092460015f805160206135c283398151915255565b90936040519461153d8661152f602082019363724ab0f760e11b8552858c898d60248701611eae565b03601f19810188528761067e565b62042e305a1061157f575f6114ed938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f150936114ac565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b6115c691935060203d6020116115cd575b6115be818361067e565b810190611872565b915f611486565b503d6115b4565b3461035a575f36600319011261035a5760206040517f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846258152f35b3461035a57604036600319011261035a5761162761043b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610602576105e5906004355f52600460205260405f206122f5565b3461035a575f36600319011261035a575f546040516001600160a01b039091168152602090f35b3461035a57604036600319011261035a5760206107ac6024356116b78161042a565b600435611f04565b3461035a575f36600319011261035a5760206040516203d0908152f35b3461035a575f36600319011261035a57602060405160018152f35b5190811515820361035a57565b519063ffffffff8216820361035a57565b919082604091031261035a5761076b602061172f846116f7565b9301611704565b906117869165ffffffffffff6117959496956060976040519463130f67dd60e31b6020870152602486015260018060a01b031660448501521660648301526064825261178182610663565b612238565b60208082518301019101611715565b9061179d5750565b90915063ffffffff604051911660208201526020815261076b81610628565b5f9081526005602090815260408083206001600160a01b0390941683529290522061076b92919061242d565b9081602091031261035a5761076b906116f7565b6040513d5f823e3d90fd5b81601f8201121561035a5780519061181e826106bb565b9261182c604051948561067e565b8284526020838301011161035a57815f9260208093018386015e8301015290565b9060208282031261035a5781516001600160401b03811161035a5761076b9201611807565b9081602091031261035a575161076b8161042a565b9061076b91602081526118a6825160a0602084015260c08301906104a4565b9060a060806118f46118e16118cd602088015196601f1997888883030160408901526104a4565b6040880151878783030160608801526104a4565b60608701518686830301848701526104a4565b94015192828503019101526104a4565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052848116604483015265ffffffffffff8616606483015295606095909491935f856084817f00000000000000000000000000000000000000000000000000000000000000008c165afa948515610979575f95611b18575b5060405163fbfa77cf60e01b8152602081600481888d165afa908115610979576119ea995f9285928491611af9575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff909216602483015290998a9190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa978815610979575f98611acf575b509081611a3b82611a3381611a419689611c28565b958388611736565b94611bde565b90835115801590611ac5575b8015611abb575b8015611ab1575b8015611aa7575b611a6f5750505050909150565b6110f6955061076b9496611a8161069f565b948552602085015260408401526060830152608082015260405192839160208301611887565b5081511515611a62565b5082511515611a5b565b5080511515611a54565b5086511515611a4d565b611a4192919850611af1903d805f833e611ae9818361067e565b81019061184d565b979091611a1e565b611b12915060203d6020116115cd576115be818361067e565b5f6119ad565b611b2d9195503d805f833e611ae9818361067e565b935f61197e565b9061076b92915f52600360205260405f2061242d565b9061076b92915f52600460205260405f2061242d565b3d15611b8a573d90611b71826106bb565b91611b7f604051938461067e565b82523d5f602084013e565b606090565b634e487b7160e01b5f52601160045260245ffd5b5f19810191908211611bb157565b611b8f565b91908203918211611bb157565b9060018201809211611bb157565b91908201809211611bb157565b60405163ed4d89e560e01b6020820152602481019290925265ffffffffffff909216604482015260609291611795916117869161178182606481015b03601f19810184528361067e565b604051630cbd53f560e11b6020820152602481019290925265ffffffffffff90921660448201526060929161179591611786916117818260648101611c1a565b60405190611c7582610628565b60606020838281520152565b9060208282031261035a5781516001600160401b039283821161035a57019060408282031261035a5760405192611cb784610628565b825181811161035a5782611ccc918501611807565b8452602083015190811161035a57611ce49201611807565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261076b929101906104a4565b92611d3490929192828486612bb5565b929093611d3f611c68565b93805180611e92575b50508415938415611dfc575b8415611d6b575b50505050611d665790565b505f90565b602080949550611d96910151604051958694859463530e1d4360e01b865260601c9060048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611ddd575b50155f808080611d5b565b611df6915060203d60201161097257610964818361067e565b5f611dd2565b5f549094506001600160a01b0316602084865192611e2f604051948593849363530e1d4360e01b85528960048601611cec565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610979575f91611e73575b501593611d54565b611e8c915060203d60201161097257610964818361067e565b5f611e6b565b611ea6929550602080918301019101611c81565b925f80611d48565b919360a09361076b969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906104a4565b8115611ef0570490565b634e487b7160e01b5f52601260045260245ffd5b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610979575f91612011575b5015918215611f8d575b50509050611f875761076b91612ccb565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610979575f92611ff4575b505015805f80611f76565b61200a9250803d1061097257610964818361067e565b5f80611fe9565b6120289150843d861161097257610964818361067e565b5f611f6c565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b541615610b8a5750565b335f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b55846259060ff90612080565b5f8181525f805160206135a283398151915260209081526040808320338452909152902060ff90612080565b634e487b7160e01b5f52603260045260245ffd5b8054821015612136575f5260205f2001905f90565b61210d565b90815491600160401b831015610643578261215e9160016106ac95018155612121565b90919082549060031b91821b915f19901b1916179055565b90929192600182019081548015612208575b508461219384612dc0565b509490928454936121a3836128d7565b96816121f3575b50156121d0575050505f198101908111611bb15761215e85916121cc93612121565b9190565b6121cc9492936121ec926001600160d01b039091169190613486565b505061213b565b65ffffffffffff83811691161490505f6121aa565b600160401b811015610643578060016122249201845583612121565b8154905f199060031b1b191690555f612188565b5f9190829160405161226d816110f66020820194639f86fd8560e01b86523060248401526040604484015260648301906104a4565b51915afa5061227a611b60565b8051810160408282031261035a57612294602083016116f7565b916040810151916001600160401b03831161035a576122ba926020809201920101611807565b90156122c35790565b805190811561035a57602001fd5b906040516122de81610628565b915465ffffffffffff8116835260301c6020830152565b91908254905f82916005841161239d575b612311935085612f24565b9081156123915761238a61238161237b61237161234361233e61233388611ba3565b895f5260205f200190565b6122d1565b96600161236a602061235b8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101612121565b90549060031b1c90565b93611ba3565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926123a881612df9565b8103908111611bb15761231193865f526123dc6123d18360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff851610156123f2575091612306565b9291506123fe90611bc3565b90612306565b9081602091031261035a5761076b90611704565b90600163ffffffff80931601918211611bb157565b918051156124fb578060208061244893518301019101612404565b916124538382613056565b92612464845165ffffffffffff1690565b9065ffffffffffff80851692168281146124ef578211918261249a575b50506124915761076b9250612f86565b50506020015190565b9091506124a78354611ba3565b63ffffffff8316149182156124c0575b50505f80612481565b6124e79192506124db6124d56123d192612418565b85613056565b5165ffffffffffff1690565b115f806124b7565b50505050506020015190565b5061076b91612f86565b5f805160206135c283398151915260028154146125225760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f208161254b82612dc0565b9193905083156125a95761256b916001600160d01b031690600101612121565b90549060031b1c5b8261259f575b5050612583575050565b61259b915f52600360205260405f206103ef42612d8e565b5050565b119050815f612579565b50505f612573565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206135a28339815191529060ff16611f87575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f805160206135a28339815191529060ff905b541661272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f805160206135a28339815191529060ff906126c7565b6001600160a01b0381165f9081527f8f2dae99798887da307a4daa2c2d11f840b0cb9a6a67822660c531e9ad14dd00602052604090207f1312a1cf530e56add9be4fd84db9051dcc7635952f09f735f9a29405b5584625905f805160206135a28339815191529060ff906126c7565b5f8181525f805160206135a2833981519152602081815260408084206001600160a01b038716855290915290912060ff906126c7565b5f8181525f805160206135a2833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561272b575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b8054806128fc57505f5b6001600160d01b03811615611f875760016123719201612121565b5f19908082810111611bb157825f5260205f2001015460301c6128e1565b91909160408184031261035a5780356129328161042a565b9260208201356001600160401b03811161035a5761076b92016106d6565b61295c9181019061291a565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610979575f91612a6f575b5015612a5d576129f16040916129ec612a37946129d16130be565b60018060a01b03166001600160601b0360a01b5f5416175f55565b61323e565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116612a4d575b5001516001600160a01b031690565b908116612a415750565b612a4a9061265c565b50565b612a56906125b1565b505f612a28565b6040516362df054560e01b8152600490fd5b612a88915060203d60201161097257610964818361067e565b5f6129b6565b6040519060a082018281106001600160401b038211176106435760405281608060609182815282602082015282604082015282808201520152565b9060208282031261035a5781516001600160401b039283821161035a57019060a08282031261035a57612afa61069f565b92825181811161035a5782612b10918501611807565b8452602083015181811161035a5782612b2a918501611807565b6020850152604083015181811161035a5782612b47918501611807565b6040850152606083015181811161035a5782612b64918501611807565b6060850152608083015190811161035a57612b7f9201611807565b608082015290565b9081602091031261035a575190565b60409065ffffffffffff61076b949316815281602082015201906104a4565b91939293612bc1612a8e565b94805180612caf575b5050612bdb60608601518285611b4a565b9182612bed57505050509051905f9190565b612c01612c3b9183608089015191876117bc565b916020612c1a6114586114585f5460018060a01b031690565b8189015190604051808096819463810da75d60e01b83528760048401612b96565b03915afa801561097957612c7795612c71935f92612c7c575b50612c65919260408a015191611b34565b90818082109118021890565b9061339e565b915190565b612c659250612ca29060203d602011612ca8575b612c9a818361067e565b810190612b87565b91612c54565b503d612c90565b612cc3929650602080918301019101612ac9565b935f80612bca565b612ce0610c18825f52600460205260405f2090565b9081612ced575050505f90565b612d08610c1860049461120b845f52600560205260405f2090565b5f5460405163bd49c35f60e01b81529491929160209186919082906001600160a01b03165afa9081156109795761076b945f92612d65575b50610c18612d56915f52600360205260405f2090565b9081808210911802189061339e565b612d56919250612d86610c189160203d602011612ca857612c9a818361067e565b929150612d40565b65ffffffffffff90818111612da1571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b805480612dd15750505f905f905f90565b5f19918183810111611bb1575f5260205f2001015460019165ffffffffffff82169160301c90565b600181111561076b57600181600160801b811015612f12575b612eba612eb0612ea6612e9c612e92612e88612ec697600488600160401b612ec19a1015612f05575b640100000000811015612ef8575b62010000811015612eeb575b610100811015612edf575b6010811015612ed3575b1015612ecb575b60030260011c612e81818b611ee6565b0160011c90565b612e81818a611ee6565b612e818189611ee6565b612e818188611ee6565b612e818187611ee6565b612e818186611ee6565b8093611ee6565b821190565b900390565b60011b612e71565b811c9160021b91612e6a565b60081c91811b91612e60565b60101c9160081b91612e55565b60201c9160101b91612e49565b60401c9160201b91612e3b565b50600160401b9050608082901c612e12565b91905b838210612f345750505090565b909192808316906001818518811c8301809311611bb157855f5265ffffffffffff808460205f20015416908516105f14612f73575050925b9190612f27565b909493508101809111611bb15791612f6c565b908154905f829160058411612ff0575b612fa1935084612f24565b80612fc957505f905b6001600160d01b03821615611f875761076b9160016123719201612121565b612fe3612fd8612fea92611ba3565b835f5260205f200190565b5460301c90565b90612faa565b9192612ffb81612df9565b8103908111611bb157612fa193855f5265ffffffffffff808360205f20015416908516105f1461302c575091612f96565b92915061303890611bc3565b90612f96565b6040519061304b82610628565b5f6020838281520152565b9061307f6130796130a09261306961303e565b5061307261303e565b5084612121565b506122d1565b91600165ffffffffffff845116936020828060d01b03910151169101612121565b905490604051926130b084610628565b835260031b1c602082015290565b6130c6613563565b6130ce613563565b60015f805160206135c283398151915255565b604051906130ee82610648565b5f6040838281528260208201520152565b81601f8201121561035a578051916020916001600160401b038411610643578360051b90604051946131338584018761067e565b8552838086019282010192831161035a578301905b828210613156575050505090565b83809183516131648161042a565b815201910190613148565b9060208282031261035a5781516001600160401b039283821161035a5701908181039260a0841261035a576060604051946131a986610648565b1261035a576040516131ba81610648565b83516131c58161042a565b815260208401516131d58161042a565b602082015260408401516131e88161042a565b60408201528452606083015181811161035a57826132079185016130ff565b6020850152608083015190811161035a5761322292016130ff565b604082015290565b80518210156121365760209160051b010190565b61325a9061324a6130e1565b506020808251830101910161316f565b8051519091906001600160a01b03161580613384575b613372579060208101905f5b825180518210156132f657611458613297836132a49361322a565b516001600160a01b031690565b156132e4576132c66132c26132bd61329784875161322a565b612732565b1590565b6132d25760010161327c565b604051635140fefd60e11b8152600490fd5b6040516323cda06760e01b8152600490fd5b506040925050818101905f5b82518051821015613369576114586132978361331d9361322a565b156133585761333b6132c261333661329784875161322a565b6127a0565b61334757600101613302565b8351635140fefd60e11b8152600490fd5b83516323cda06760e01b8152600490fd5b50509150505190565b6040516303501f5960e11b8152600490fd5b506020820151511580613270575060408201515115613270565b91818302915f198185099383808610950394808603951461341e57848311156134115790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b8215600302601118613591565b50509061076b9250611ee6565b8054600160401b8110156106435761344891600182018155612121565b61347357815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939280156135395761349d6134a891611ba3565b825f5260205f200190565b9182549265ffffffffffff91828516928116808411613527578793036134ee57506134e792509065ffffffffffff82549181199060301b169116179055565b60301c9190565b9150506135229161350e6135006106ae565b65ffffffffffff9093168352565b6001600160d01b038616602083015261342b565b6134e7565b604051632520601d60e01b8152600490fd5b509061355e9161354a6135006106ae565b6001600160d01b038516602083015261342b565b5f9190565b60ff5f805160206135e28339815191525460401c161561357f57565b604051631afcd79f60e31b8152600490fd5b634e487b715f526020526024601cfdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220634e3b6b986f1093753acb2fce82d90613d9763273e8cb9fc5d156adf1a11ace64736f6c63430008190033","sourceMap":"3228:4636:92:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;3228:4636:92;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;3228:4636:92;;;;;;;;;;3551:87:23;-1:-1:-1;;;1134:40:32;;-1:-1:-1;3551:87:23;;;3228:4636:92;-1:-1:-1;3228:4636:92;;;;;;;;;;;;;;;;;;;;3202:4:23;;;:::i;:::-;3228:4636:92;-1:-1:-1;3228:4636:92;3610:15:89;3228:4636:92;;;-1:-1:-1;3228:4636:92;;3601:36:89;;3597:98;;3228:4636:92;-1:-1:-1;3228:4636:92;2233:13:89;3228:4636:92;;;2233:34:89;3228:4636:92;-1:-1:-1;3228:4636:92;2233:34:89;:::i;:::-;3709;3705:84;;3799:25;3871:35;3799:25;:56;3871:35;3799:25;;;3228:4636:92;;2233:13:89;3228:4636:92;;;;;;;3799:25:89;819:34:73;837:15;819:34;:::i;:::-;3799:56:89;;:::i;:::-;-1:-1:-1;;3228:4636:92;;;;;;;;;;;;3871:35:89;;;;3228:4636:92;3705:84:89;3228:4636:92;-1:-1:-1;;;3766:12:89;;3228:4636:92;;3766:12:89;3597:98;3228:4636:92;-1:-1:-1;;;3660:24:89;;3228:4636:92;;3660:24:89;3228:4636:92;-1:-1:-1;;;;;3228:4636:92;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;3228:4636:92;;;;;;;;-1:-1:-1;;3228:4636:92;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;3228:4636:92;;;;;;1537:38:87;-1:-1:-1;;;;;3228:4636:92;;;;;;;;;;;;-1:-1:-1;;3228:4636:92;;;;;;1632:54:87;-1:-1:-1;;;;;3228:4636:92;;;;;;;;;;;;-1:-1:-1;;3228:4636:92;;;;;;:::i;:::-;449:5:93;-1:-1:-1;;;;;3228:4636:92;435:10:93;:19;431:71;;4041:64:92;3228:4636;;;-1:-1:-1;3228:4636:92;4041:13;3228:4636;;;-1:-1:-1;3228:4636:92;4041:64;:::i;:::-;3228:4636;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3228:4636:92;431:71:93;3228:4636:92;;-1:-1:-1;;;477:14:93;;3228:4636:92;;477:14:93;3228:4636:92;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:92;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3228:4636:92;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;3228:4636:92;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:92;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;3228:4636:92;;;;;;-1:-1:-1;;3228:4636:92;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;3228:4636:92;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;3228:4636:92;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:92;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;3090:79:89;:44;3228:4636:92;;;:::i;:::-;;;;;-1:-1:-1;3228:4636:92;3090:22:89;3228:4636:92;;;-1:-1:-1;3228:4636:92;;;;;;;;;;;;;;;;;3090:44:89;:79;:::i;:::-;3228:4636:92;;;;;;;;;;;;-1:-1:-1;;3228:4636:92;;;;;;1743:56:87;-1:-1:-1;;;;;3228:4636:92;;;;;;;;;;;;-1:-1:-1;;3228:4636:92;;;;;;-1:-1:-1;;;;;3228:4636:92;;;;;;;;3361:103:30;;;:::i;:::-;3228:4636:92;;-1:-1:-1;;;4285:48:87;;4322:10;3228:4636:92;4285:48:87;;3228:4636:92;;;;;-1:-1:-1;;;;;4295:16:87;3228:4636:92;4285:48:87;;;;;;;-1:-1:-1;4285:48:87;;;3228:4636:92;4284:49:87;;4280:99;;-1:-1:-1;;;;;3228:4636:92;-1:-1:-1;;4322:10:87;297:2:99;3228:4636:92;;267:46:99;4459:27:87;;;;3228:4636:92;;4459:15:87;3228:4636:92;;;;;;;4459:27:87;3228:4636:92;4459:37:87;4455:87;;4654:38;4552:27;4654:38;4552:27;;;3228:4636:92;;4459:15:87;3228:4636:92;;;;;;;4552:27:87;3228:4636:92;4631:6:87;;;;:::i;:::-;3228:4636:92;;;;;;;;;;;;;4654:38:87;;;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;3228:4636:92;3860:283:30;3426:1;3228:4636:92;4455:87:87;3228:4636:92;;-1:-1:-1;;;4519:12:87;;3228:4636:92;;4519:12:87;4280:99;3228:4636:92;;-1:-1:-1;;;4356:12:87;;3228:4636:92;;4356:12:87;4285:48;;;;3228:4636:92;4285:48:87;3228:4636:92;4285:48:87;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;3228:4636:92:-;;;;;;-1:-1:-1;;3228:4636:92;;;;;;-1:-1:-1;3228:4636:92;-1:-1:-1;;;;;;;;;;;3228:4636:92;;;4919:24:23;3228:4636:92;-1:-1:-1;3228:4636:92;4919:24:23;3228:4636:92;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;3228:4636:92;;;;;;322:32:80;-1:-1:-1;;;;;3228:4636:92;;;;;;;;;;;;-1:-1:-1;;3228:4636:92;;;;5350:25:23;3228:4636:92;;;;;;;:::i;:::-;;-1:-1:-1;3228:4636:92;-1:-1:-1;;;;;;;;;;;3228:4636:92;;3202:4:23;4919:24;3228:4636:92;-1:-1:-1;3228:4636:92;4919:24:23;3228:4636:92;3202:4:23;:::i;:::-;5350:25;:::i;3228:4636:92:-;;;;;;-1:-1:-1;;3228:4636:92;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;3228:4636:92;;6441:34:23;6437:102;;6549:37;3228:4636:92;;;6549:37:23;:::i;6437:102::-;3228:4636:92;;-1:-1:-1;;;6498:30:23;;3228:4636:92;;6498:30:23;3228:4636:92;;;;;;-1:-1:-1;;3228:4636:92;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;966:10:28;-1:-1:-1;3228:4636:92;;;;;;;;;;1356:26:87;;3228:4636:92;;4468:23:23;4464:108;;-1:-1:-1;4861:4:87;3228:4636:92;-1:-1:-1;;;;;3228:4636:92;;;;;;4861:13:87;;4857:63;;-1:-1:-1;;;;;;3228:4636:92;;;4861:4:87;3228:4636:92;4958:14:87;-1:-1:-1;;4958:14:87;4861:4;-1:-1:-1;;;;;;;;;;;3228:4636:92;;4464:108:23;3228:4636:92;;;;4514:47:23;;;;;;966:10:28;3228:4636:92;4514:47:23;;3228:4636:92;;;;;4514:47:23;3228:4636:92;;;;;;-1:-1:-1;;3228:4636:92;;;;;;-1:-1:-1;3228:4636:92;2233:13:89;3228:4636:92;;;2233:34:89;3228:4636:92;-1:-1:-1;3228:4636:92;2233:34:89;:::i;3228:4636:92:-;;;;;;-1:-1:-1;;3228:4636:92;;;;;3358:53:89;:44;3228:4636:92;;;;;:::i;:::-;;;-1:-1:-1;3228:4636:92;3358:22:89;3228:4636:92;;;-1:-1:-1;3228:4636:92;;;;;;;;;;;;;;;;;3358:44:89;:53;:::i;3228:4636:92:-;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:92;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3228:4636:92;;;;-1:-1:-1;;;;;3228:4636:92;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;3228:4636:92;;;;;;;4301:16:26;3228:4636:92;;4726:16:26;;:34;;;;3228:4636:92;4805:1:26;4790:16;:50;;;;3228:4636:92;4855:13:26;:30;;;;3228:4636:92;4851:91:26;;;-1:-1:-1;;;;;;;;;;;3228:4636:92;;-1:-1:-1;;3228:4636:92;;;;;718:4:80;;4951:18:26;4979:67;;718:4:80;:::i;:::-;5066:101:26;;3228:4636:92;5066:101:26;-1:-1:-1;;;;;;;;;;;3228:4636:92;;-1:-1:-1;;;;3228:4636:92;;;;;-1:-1:-1;3228:4636:92;;5142:14:26;;3228:4636:92;;5142:14:26;3228:4636:92;4979:67:26;-1:-1:-1;;;;;;;;;;;3228:4636:92;;-1:-1:-1;;;;3228:4636:92;-1:-1:-1;;;3228:4636:92;;;718:4:80;:::i;4851:91:26:-;3228:4636:92;;-1:-1:-1;;;4908:23:26;;3228:4636:92;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;3228:4636:92;;;;;;-1:-1:-1;;3228:4636:92;;;;;;3406:36;-1:-1:-1;;;;;3228:4636:92;;;;;;;;;;;;-1:-1:-1;;3228:4636:92;;;;;;;1253:6:87;3228:4636:92;;;;;-1:-1:-1;;3228:4636:92;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:92;;;;;;;;;:::i;:::-;;;;;1997:60:89;3228:4636:92;;;:::i;:::-;;-1:-1:-1;3228:4636:92;1997:13:89;3228:4636:92;;;-1:-1:-1;3228:4636:92;1997:60:89;:::i;3228:4636:92:-;;;;;;-1:-1:-1;;3228:4636:92;;;;;;;1356:26:87;3228:4636:92;;;;;;;;;-1:-1:-1;;3228:4636:92;;;;;;3355:45;-1:-1:-1;;;;;3228:4636:92;;;;;;;;;;;;-1:-1:-1;;3228:4636:92;;;;;;;810:35:89;3228:4636:92;;;;;;;;;-1:-1:-1;;3228:4636:92;;;;;;;;-1:-1:-1;;;;;3228:4636:92;;;;;;;;;;;;;2512:74:89;3228:4636:92;;;:::i;:::-;;-1:-1:-1;3228:4636:92;;;;;-1:-1:-1;3228:4636:92;2512:74:89;:::i;3228:4636:92:-;;;;;;-1:-1:-1;;3228:4636:92;;;;;;3901:31:23;3228:4636:92;;;;;:::i;:::-;;;-1:-1:-1;3228:4636:92;-1:-1:-1;;;;;;;;;;;3228:4636:92;;;-1:-1:-1;3228:4636:92;;;;;;;;;;;;;;;;;3901:31:23;3228:4636:92;;;;;;;;;;;;;;;;-1:-1:-1;;3228:4636:92;;;;;;;;;:::i;:::-;;;;;;;;;;449:5:93;-1:-1:-1;;;;;3228:4636:92;435:10:93;:19;431:71;;4852:44:92;:83;3228:4636;;;-1:-1:-1;3228:4636:92;4852:22;3228:4636;;;-1:-1:-1;3228:4636:92;;;;;;;;;;;;;;;;;4852:44;:83;:::i;3228:4636::-;;;;;;-1:-1:-1;;3228:4636:92;;;;;;3448:45;-1:-1:-1;;;;;3228:4636:92;;;;;;;;;;;;-1:-1:-1;;3228:4636:92;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3228:4636:92;;;;-1:-1:-1;3228:4636:92;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:86;;;;477:31;416:25;;:::i;:::-;3228:4636:92;;;;;;;;;;477:31:86;;3228:4636:92;;;;;;;;;;;:::i;:::-;477:31:86;3228:4636:92;;477:31:86;;;;;;:::i;:::-;518:79;;;3228:4636:92;518:79:86;;3228:4636:92;;;;;;-1:-1:-1;;3228:4636:92;;;;;;;;;;;;;;;;;-1:-1:-1;;3228:4636:92;;;;;;;;;;;:::i;:::-;;;3202:4:23;;;:::i;:::-;-1:-1:-1;3228:4636:92;;;3358:22:89;3228:4636:92;;;;;;;;-1:-1:-1;;;;;3228:4636:92;;;;;;;;;3358:53:89;;;:::i;:::-;4249:32;;;4245:82;;4596:54;3228:4636:92;4337:158:89;4596:54;3228:4636:92;;-1:-1:-1;3228:4636:92;;;;;-1:-1:-1;3228:4636:92;837:15:73;4413:72:89;837:15:73;4413:63:89;819:34:73;837:15;819:34;:::i;:::-;2776:39:89;:48;:39;;3228:4636:92;;;;;;;;;;2776:48:89;4413:63;:::i;:::-;:72;:::i;:::-;4337:158;;:::i;:::-;4505:34;;:75;:34;:44;:34;;;3228:4636:92;;3358:22:89;3228:4636:92;;;;;;;4505:34:89;3228:4636:92;;;;;;;;;;;;;;;;4505:75:89;-1:-1:-1;;3228:4636:92;;;;;-1:-1:-1;;;;;3228:4636:92;;;;;;;;;;4596:54:89;;;;3228:4636:92;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;3228:4636:92;;;;;;;-1:-1:-1;;;;;404:28:80;3228:4636:92;;;;;;;;;;-1:-1:-1;;3228:4636:92;;;;;;1439:41:87;-1:-1:-1;;;;;3228:4636:92;;;;;;;;;;;;-1:-1:-1;;3228:4636:92;;;;;;-1:-1:-1;3228:4636:92;;;;;2776:48:89;3228:4636:92;-1:-1:-1;3228:4636:92;2776:48:89;:::i;3228:4636:92:-;;;;;;-1:-1:-1;;3228:4636:92;;;;;;-1:-1:-1;3228:4636:92;2009:67:87;3228:4636:92;;;;-1:-1:-1;3228:4636:92;;;;;;;;;;;;;;-1:-1:-1;;3228:4636:92;;;;5767:26:23;3228:4636:92;;;;;;;:::i;:::-;;-1:-1:-1;3228:4636:92;-1:-1:-1;;;;;;;;;;;3228:4636:92;;3202:4:23;4919:24;3228:4636:92;-1:-1:-1;3228:4636:92;4919:24:23;3228:4636:92;3202:4:23;:::i;:::-;5767:26;:::i;3228:4636:92:-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;3228:4636:92;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;3228:4636:92;;;;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;-1:-1:-1;3228:4636:92;;;5246:21:87;;:13;;-1:-1:-1;;;;;3228:4636:92;5246:13:87;3228:4636:92;;-1:-1:-1;;;;;3228:4636:92;;;5246:21:87;3228:4636:92;;-1:-1:-1;;;5246:23:87;;3228:4636:92;;;;;5246:23:87;;;;;;;-1:-1:-1;5246:23:87;;;3228:4636:92;-1:-1:-1;;;;;;3228:4636:92;;;5232:10:87;:37;5228:87;;5341:4;3228:4636:92;-1:-1:-1;;;;;3228:4636:92;;;;5355:469:87;;3228:4636:92;-1:-1:-1;;3228:4636:92;;;;;;;;;;;;;;;;5839:55:87;;3228:4636:92;;;;5839:55:87;;;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;3228:4636:92;3860:283:30;5355:469:87;3228:4636:92;;;;5435:94:87;;;;3228:4636:92;5435:94:87;;;;;;;;;;;;3228:4636:92;5435:94:87;;;:::i;:::-;;3228:4636:92;;5435:94:87;;;;;;:::i;:::-;3228:4636:92;5548:9:87;:51;5544:118;;-1:-1:-1;5839:55:87;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;3228:4636:92;;-1:-1:-1;;;5626:21:87;;3228:4636:92;;5626:21:87;5228:87;3228:4636:92;;-1:-1:-1;;;5292:12:87;;3228:4636:92;;5292:12:87;5246:23;;;;;3228:4636:92;5246:23:87;3228:4636:92;5246:23:87;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;3228:4636:92;;;;;;-1:-1:-1;;3228:4636:92;;;;;;;971:45:89;3228:4636:92;;;;;;;;;-1:-1:-1;;3228:4636:92;;;;;;:::i;:::-;449:5:93;-1:-1:-1;;;;;3228:4636:92;435:10:93;:19;431:71;;5753:78:92;3228:4636;;;-1:-1:-1;3228:4636:92;;;;;-1:-1:-1;3228:4636:92;5753:78;:::i;3228:4636::-;;;;;;-1:-1:-1;;3228:4636:92;;;;;;;;-1:-1:-1;;;;;3228:4636:92;;;;;;;;;;;;;;-1:-1:-1;;3228:4636:92;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;3228:4636:92;;;;;;;1150:7:87;3228:4636:92;;;;;;;;;-1:-1:-1;;3228:4636:92;;;;;;;2700:1:87;3228:4636:92;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;4948:596::-;;5195:233;4948:596;3228:4636;5171:295;4948:596;;;3228:4636;;;;5263:151;;;;;;;;;;;3228:4636;;;;;;;;;;;;;;;;;5263:151;;;;;:::i;:::-;5195:233;:::i;:::-;5263:151;3228:4636;;;5171:295;;;;;;:::i;:::-;5477:61;;;4948:596;:::o;5477:61::-;3228:4636;;;;;;;;5263:151;5510:17;;3228:4636;5263:151;5510:17;;;;;:::i;2897:279:89:-;-1:-1:-1;3228:4636:92;;;3090:22:89;3228:4636:92;;;;;;;;-1:-1:-1;;;;;3228:4636:92;;;;;;;;;3090:79:89;;2897:279;;3090:79;:::i;3228:4636:92:-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;3228:4636:92;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:92;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;6420:1442::-;3228:4636;;-1:-1:-1;;;6637:99:92;;-1:-1:-1;;;;;3228:4636:92;;;6637:99;;;3228:4636;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3228:4636:92;;;6656:20;3228:4636;;6637:99;;;;;;;;;;;6420:1442;-1:-1:-1;3228:4636:92;;-1:-1:-1;;;6830:32:92;;;3228:4636;6637:99;3228:4636;;;;6830:32;;;;;;;6790:84;6830:32;6637:99;6830:32;;;;;;;6420:1442;-1:-1:-1;3228:4636:92;;-1:-1:-1;;;6790:84:92;;-1:-1:-1;;;;;3228:4636:92;;;6637:99;6790:84;;3228:4636;;;;;;;;;;;;;-1:-1:-1;3228:4636:92;;;;;;;;;6790:84;;6801:11;;3228:4636;6790:84;;;;;;;6637:99;6790:84;;;6420:1442;6918:50;;;7020:69;6918:50;;;7146:64;6918:50;;;:::i;:::-;7020:69;;;;:::i;:::-;7146:64;;:::i;:::-;3228:4636;;;7238:21;;;:52;;;6420:1442;7238:85;;;;6420:1442;7238:143;;;;6420:1442;7238:190;;;;6420:1442;7221:635;;6420:1442;;;;;;;:::o;7221:635::-;7460:385;3228:4636;;7460:385;3228:4636;;;;:::i;:::-;;;;6830:32;7488:343;;3228:4636;;7488:343;;3228:4636;;7488:343;;3228:4636;7488:343;;;3228:4636;;;7460:385;;;6830:32;7460:385;;;:::i;7238:190::-;3228:4636;;;7385:43;;7238:190;;:143;3228:4636;;;7343:38;;7238:143;;:85;3228:4636;;;7294:29;;7238:85;;:52;3228:4636;;;7263:27;;7238:52;;6790:84;7146:64;6790:84;;;;;;;;6637:99;6790:84;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;6830:32;;;;;;;;;;;;;;:::i;:::-;;;;6637:99;;;;;;;;;;;;;;:::i;:::-;;;;;1869:195:89;;1997:60;1869:195;;-1:-1:-1;3228:4636:92;1997:13:89;3228:4636:92;;;-1:-1:-1;3228:4636:92;1997:60:89;:::i;2340:253::-;;2512:74;2340:253;;-1:-1:-1;3228:4636:92;2512:27:89;3228:4636:92;;;-1:-1:-1;3228:4636:92;2512:74:89;:::i;3228:4636:92:-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;3228:4636:92;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;3228:4636:92;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;:::o;:::-;;8889:1:97;3228:4636:92;;;;;;;:::o;:::-;;;;;;;;;;:::o;5844:570::-;3228:4636;;-1:-1:-1;;;6138:146:92;;;;;;;3228:4636;;;;;;;;;;;;;;5844:570;6046:290;;6070:228;;6138:146;3228:4636;;;;6138:146;;3228:4636;;6138:146;;;;;;:::i;4118:504::-;3228:4636;;-1:-1:-1;;;4398:94:92;;;;;;;3228:4636;;;;;;;;;;;;;;4118:504;4306:238;;4330:176;;4398:94;3228:4636;;;;4398:94;3228:4636;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:92;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;3228:4636:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:87:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;3228:4636:92;;:::i;:::-;;;;3086:20:87;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:87;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;3228:4636:92;;;;;;;;;;3430:180:87;;467:2:99;3228:4636:92;3430:180:87;;;;;:::i;:::-;;3228:4636:92;3444:31:87;-1:-1:-1;;;;;3228:4636:92;3430:180:87;;;;;;;-1:-1:-1;3430:180:87;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;3228:4636:92;;;-1:-1:-1;;;;;;3228:4636:92;3248:161:87;3354:37;;;3228:4636:92;3248:161:87;3228:4636:92;;;;;;;;;;3248:161:87;;;;;;;:::i;:::-;;3228:4636:92;3262:29:87;-1:-1:-1;;;;;3228:4636:92;3248:161:87;;;;;;;-1:-1:-1;3248:161:87;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;3228:4636:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;3740:389:87;3918:5;3228:4636:92;;;-1:-1:-1;;;3853:71:87;;;-1:-1:-1;;;;;3228:4636:92;;;3853:71:87;;;3228:4636:92;;;;;;;;3740:389:87;;3228:4636:92;3853:71:87;;3228:4636:92;;3853:71:87;3228:4636:92;;;3867:29:87;3228:4636:92;;3853:71:87;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;3228:4636:92;;;3852:181:87;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;3228:4636:92;;3945:88:87;;;-1:-1:-1;;;;;3228:4636:92;;3853:71:87;3945:88;;3228:4636:92;467:2:99;3228:4636:92;;;;;;;;-1:-1:-1;3228:4636:92;;;;;;;;3959:31:87;3228:4636:92;3945:88:87;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:87;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;4148:103:23;966:10:28;-1:-1:-1;3228:4636:92;;;;;;;;;810:35:89;;3228:4636:92;;3901:31:23;3228:4636:92;;4468:23:23;4464:108;;4148:103;:::o;:::-;966:10:28;-1:-1:-1;3228:4636:92;;;;;;;;;971:45:89;;3228:4636:92;;3901:31:23;3228:4636:92;4148:103:23;-1:-1:-1;3228:4636:92;;;-1:-1:-1;;;;;;;;;;;3228:4636:92;;;;;;;;966:10:28;3228:4636:92;;;;;;;;;3901:31:23;3228:4636:92;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3228:4636:92;;-1:-1:-1;3228:4636:92;;;-1:-1:-1;3228:4636:92;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;;3228:4636:92;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6246:584:97;;;;;6360:12;;;3228:4636:92;;;6360:24:97;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;3228:4636:92;;;;;;6578:12:97;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:97;;;-1:-1:-1;;;;;3228:4636:92;;;;;;;6644:21:97;;;:29;:21;;:::i;:29::-;6798:25;6246:584;:::o;6600:188::-;6753:24;;3228:4636:92;;8310:38:71;;-1:-1:-1;;;;;3228:4636:92;;;;;8310:38:71;:::i;:::-;6753:24:97;;;:::i;6604:::-;3228:4636:92;;;;;;6614:14:97;;-1:-1:-1;6604:24:97;;;6356:75;-1:-1:-1;;;3228:4636:92;;;;;;6360:12:97;3228:4636:92;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:97;;;525:595:93;-1:-1:-1;525:595:93;;;;3228:4636:92;;716:88:93;;3228:4636:92;716:88:93;;;;;;;;;783:4;716:88;;;3228:4636:92;;;;;;;;;;;:::i;716:88:93:-;698:107;;;;;;;:::i;:::-;3228:4636:92;;857:45:93;;3228:4636:92;;;;;;;;716:88:93;857:45;;3228:4636:92;:::i;:::-;;;;;;;-1:-1:-1;;;;;3228:4636:92;;;;;857:45:93;716:88;857:45;;;3228:4636:92;;;;:::i;:::-;916:8:93;;912:175;;525:595;:::o;912:175::-;3228:4636:92;;944:22:93;;;940:36;;716:88;990:87;;3228:4636:92;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;8406:869:97:-;;;3228:4636:92;;8620:15:97;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;3228:4636:92;9219:31:97;3228:4636:92;9130:48:97;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;9130:48;3228:4636:92;:::i;:::-;;9176:1:97;3228:4636:92;9232:17:97;3228:4636:92;;;;;;;;9232:17:97;;3228:4636:92;-1:-1:-1;;;;;3228:4636:92;;;;9219:12:97;;:31;:::i;:::-;3228:4636:92;;;;;;;;;9259:7:97;;:::i;:::-;3228:4636:92;;;;9252:15:97;9176:1;;9188:80;;8406:869::o;9010:62::-;8578:11;;-1:-1:-1;8578:11:97;;-1:-1:-1;8578:11:97;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;3228:4636:92;;;;;;;8939:60:97;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;3228:4636:92;;;;;;8759:49:97;3228:4636:92;;;;8753:55:97;3228:4636:92;;;8753:55:97;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;3228:4636:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;7558:604:97:-;;3228:4636:92;;7686:17:97;7682:83;;3228:4636:92;7789:27:97;3228:4636:92;7789:27:97;3228:4636:92;;7789:27:97;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;3228:4636:92;;;;;;;;;;;;;;;;7888:22:97;;;7884:77;;7975:21;-1:-1:-1;7975:84:97;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;3228:4636:92;8075:24:97;:::o;7975:84::-;3228:4636:92;;;8009:16:97;3228:4636:92;;8009:16:97;:::i;:::-;3228:4636:92;;;8001:24:97;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;3228:4636:92;;;;;8029:29:97;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;3228:4636:92;7926:24:97;:::o;7682:83::-;7726:28;;;;:::i;3470:384:30:-;-1:-1:-1;;;;;;;;;;;1991:1:30;3228:4636:92;;3670:20:30;3666:88;;1991:1;3228:4636:92;;3470:384:30:o;3666:88::-;3228:4636:92;;-1:-1:-1;;;3713:30:30;;;;;6196:308:89;;3228:4636:92;-1:-1:-1;3228:4636:92;6327:13:89;3228:4636:92;;;-1:-1:-1;3228:4636:92;11124:30:97;;;;:::i;:::-;11173;;;-1:-1:-1;11173:30:97;;;;11182:17;;-1:-1:-1;;;;;3228:4636:92;;11182:12:97;;:17;:::i;:::-;3228:4636:92;;;6327:13:89;3228:4636:92;;11173:30:97;6385::89;;;11173::97;6381:117:89;;;;6196:308;;:::o;6381:117::-;6431:56;3228:4636:92;-1:-1:-1;3228:4636:92;6327:13:89;3228:4636:92;;;-1:-1:-1;3228:4636:92;819:34:73;837:15;819:34;:::i;6431:56:89:-;6196:308;;:::o;6385:30::-;6395:20;;-1:-1:-1;6385:30:89;;;;11173::97;;;-1:-1:-1;11173:30:97;;7270:387:23;-1:-1:-1;;;;;3228:4636:92;;-1:-1:-1;3228:4636:92;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;3228:4636:92;;;;-1:-1:-1;3228:4636:92;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:92;;;;;;;;;;-1:-1:-1;;3228:4636:92;7509:4:23;3228:4636:92;;;966:10:28;;-1:-1:-1;;;;;3228:4636:92;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;3228:4636:92;;-1:-1:-1;3228:4636:92;;;;;;;;;1356:26:87;;-1:-1:-1;;;;;;;;;;;2887:71:23;3228:4636:92;;3901:31:23;3228:4636:92;;;;-1:-1:-1;3228:4636:92;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:92;;;;;;;;;;-1:-1:-1;;3228:4636:92;7509:4:23;3228:4636:92;;;966:10:28;;-1:-1:-1;;;;;3228:4636:92;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;3228:4636:92;;-1:-1:-1;3228:4636:92;;;;;;;;;810:35:89;;-1:-1:-1;;;;;;;;;;;2887:71:23;3228:4636:92;;3901:31:23;3228:4636:92;7270:387:23;-1:-1:-1;;;;;3228:4636:92;;-1:-1:-1;3228:4636:92;;;;;;;;;971:45:89;;-1:-1:-1;;;;;;;;;;;2887:71:23;3228:4636:92;;3901:31:23;3228:4636:92;7270:387:23;-1:-1:-1;3228:4636:92;;;-1:-1:-1;;;;;;;;;;;3228:4636:92;;;;;;;;-1:-1:-1;;;;;3228:4636:92;;;;;;;;;;;;3901:31:23;3228:4636:92;7892:388:23;-1:-1:-1;3228:4636:92;;;-1:-1:-1;;;;;;;;;;;3228:4636:92;;;;;;;;-1:-1:-1;;;;;3228:4636:92;;;;;;;;;;;;;;;;-1:-1:-1;3228:4636:92;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:92;;;;;;;;;;-1:-1:-1;;3228:4636:92;;;966:10:28;;-1:-1:-1;;;;;3228:4636:92;;8155:40:23;-1:-1:-1;;8155:40:23;3228:4636:92;8209:11:23;:::o;10580:184:97:-;3228:4636:92;;10446:8:71;;;:63;-1:-1:-1;10446:63:71;-1:-1:-1;;;;;3228:4636:92;;10726:7:97;3228:4636:92;;10736:12:97;:17;:12;;:17;:::i;10446:63:71:-;3228:4636:92;;;;;;;;;;13267:109:97;-1:-1:-1;13267:109:97;;-1:-1:-1;13267:109:97;;;3228:4636:92;;;10446:63:71;;3228:4636:92;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;3228:4636:92;;;;;;;;:::i;5907:716:87:-;6030:34;5907:716;6030:34;;;;:::i;:::-;3228:4636:92;;-1:-1:-1;;;6080:41:87;;-1:-1:-1;;;;;3228:4636:92;;;6080:41:87;;;3228:4636:92;;;;;6080:41:87;3228:4636:92;;;6090:13:87;3228:4636:92;;6080:41:87;;;;;;;-1:-1:-1;6080:41:87;;;5907:716;6079:42;;6075:90;;6266:27;3228:4636:92;2684:111:30;6210:14:87;3228:4636:92;2684:111:30;;;:::i;:::-;3228:4636:92;;;;;;-1:-1:-1;;;;;3228:4636:92;;-1:-1:-1;3228:4636:92;;;-1:-1:-1;3228:4636:92;;6210:14:87;6266:27;:::i;:::-;6080:41;6311:15;;3228:4636:92;;;;-1:-1:-1;;;;;;3228:4636:92;-1:-1:-1;;;;;3228:4636:92;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:92;;;;6337:143:87;;5907:716;-1:-1:-1;6493:28:87;3228:4636:92;-1:-1:-1;;;;;3228:4636:92;;;;;;;6489:128:87;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;3228:4636:92;;-1:-1:-1;;;6144:10:87;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;3228:4636:92;;;;;;;;;;-1:-1:-1;;;;;3228:4636:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:92;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;4663:1079:89:-;;;;;3228:4636:92;;:::i;:::-;;;;4903:16:89;4899:92;;4663:1079;5105:42;;5053:95;5105:42;;;;5053:95;;;:::i;:::-;5165:570;:34;;;5218:21;;;;;;5165:570;-1:-1:-1;5158:577:89;4663:1079;:::o;5165:570::-;5273:95;5431:67;5330:37;;;;;;5273:95;;;:::i;:::-;3228:4636:92;5470:27:89;5431;:13;3228:4636:92;-1:-1:-1;3228:4636:92;;;;;;;;;5431:27:89;5470;;;;3228:4636:92;;;;;;;;;;;5431:67:89;;;;;;;:::i;:::-;;;;;;;;;5273:409;5431:67;5397:216;5431:67;-1:-1:-1;5431:67:89;;;5165:570;5562:28;5524:67;5562:28;;3228:4636:92;5562:28:89;;;5524:67;;:::i;:::-;5397:216;3463:5:68;;;;3066;;3228:4636:92;3060:42:68;3371:111;;5397:216:89;5273:409;;:::i;:::-;5700:21;;4663:1079;:::o;5431:67::-;5524;5431;;;;5470:27;5431:67;5470:27;5431:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;4899:92;4949:31;;;;;;;;;;;;;:::i;:::-;4899:92;;;;;5748:442;2776:48;:39;;3228:4636:92;;;;;;;;;;2776:48:89;5946:237;:32;;;:237;;;-1:-1:-1;5748:442:89;:::o;5946:237::-;3358:53;:44;2776:27;3358:34;;;3228:4636:92;;3358:22:89;3228:4636:92;;;;;;;3358:53:89;-1:-1:-1;3228:4636:92;;;-1:-1:-1;;;6086:27:89;;3228:4636:92;;;;6086:27:89;;3228:4636:92;;;;;-1:-1:-1;;;;;3228:4636:92;6086:27:89;;;;;;;6009:174;6086:27;-1:-1:-1;6086:27:89;;;5946:237;2233:25;;:34;:25;3228:4636:92;;2233:13:89;3228:4636:92;;;;;;;2233:34:89;3463:5:68;;;;;3066;;3228:4636:92;3060:42:68;6009:174:89;;:::i;6086:27::-;2233:34;6086:27;;;;2233:25;6086:27;;;;;;;;;;;:::i;:::-;;;;;;14296:213:69;3228:4636:92;14374:24:69;;;;14370:103;;3228:4636:92;14296:213:69;:::o;14370:103::-;3228:4636:92;;;;14421:41:69;;;;;;14452:2;14421:41;;;3228:4636:92;;;;;14421:41:69;10695:389:71;3228:4636:92;;10871:8:71;;;10895:20;;10833:17;10895:20;10833:17;10895:20;10833:17;10895:20;:::o;10867:211::-;3228:4636:92;;;;;;;;;;10833:17:71;13267:109:97;;10833:17:71;13267:109:97;;;3228:4636:92;11014:1:71;3228:4636:92;;;;;;;11030:37:71;:::o;18080:5181:68:-;18246:1;18241:6;;;18237:53;;18246:1;19217:14;-1:-1:-1;;;19278:16:68;;;19274:92;;18080:5181;22827:18;22717;22607;22498;22387;22278;23216:28;19383:15;19898:6;19383:15;-1:-1:-1;;;23237:6:68;19383:15;;;19379:90;;18080:5181;19493:7;19486:15;;;19482:90;;18080:5181;19596:7;19589:15;;;19585:89;;18080:5181;19698:6;19691:14;;;19687:87;;18080:5181;19798:6;19791:14;;;19787:87;;18080:5181;19891:14;;19887:61;;18080:5181;20374:1;3228:4636:92;18246:1:68;3228:4636:92;22284:6:68;;;;:::i;:::-;3228:4636:92;;;;;22278:18:68;22393:6;;;;:::i;22387:18::-;22504:6;;;;:::i;22498:18::-;22613:6;;;;:::i;22607:18::-;22723:6;;;;:::i;22717:18::-;22833:6;;;;:::i;22827:18::-;23237:6;;;:::i;:::-;23232:11;;;3228:4636:92;23216:28:68;3228:4636:92;;18080:5181:68;:::o;19887:61::-;18246:1;3228:4636:92;19887:61:68;;19787:87;3228:4636:92;;;;;19787:87:68;;;19687;3228:4636:92;;;;;19687:87:68;;;19585:89;3228:4636:92;;;;;19585:89:68;;;19482:90;3228:4636:92;;;;;19482:90:68;;;19379;3228:4636:92;;;;;19379:90:68;;;19274:92;-1:-1:-1;;;;3228:4636:92;-1:-1:-1;3228:4636:92;;;;19274:92:68;;12497:447:97;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;3721:5:68;;;;;;3228:4636:92;;3731:5:68;;;3228:4636:92;;;;;;;;;13267:109:97;-1:-1:-1;13267:109:97;3228:4636:92;13267:109:97;;;-1:-1:-1;13267:109:97;;3228:4636:92;;;;;-1:-1:-1;12771:136:97;3228:4636:92;;;12830:10:97;;12771:136;;12687:230;;;;12771:136;3228:4636:92;;;;;;;;;;;12771:136:97;;;6999:207;;3228:4636:92;;9737:15:71;-1:-1:-1;9762:18:71;9795:7;9801:1;9795:7;;9791:234;;6999:207:97;10049:53:71;;;;;:::i;:::-;10120:8;;;:63;-1:-1:-1;10120:63:71;;-1:-1:-1;;;;;3228:4636:92;;7168:7:97;3228:4636:92;;;7178:12:97;;:17;:12;;:17;:::i;10120:63:71:-;10135:41;10168:7;10135:48;10168:7;;:::i;:::-;10135:41;13267:109:97;;;;;;13089:293;;10135:41:71;3228:4636:92;;;;;10135:48:71;10120:63;;;9791:234;9838:14;;;;;:::i;:::-;3228:4636:92;;;;;;;10049:53:71;13267:109:97;;-1:-1:-1;13267:109:97;3228:4636:92;13267:109:97;;;-1:-1:-1;13267:109:97;;3228:4636:92;;;;;9870:48:71;9866:149;3228:4636:92;;;9938:10:71;9866:149;9791:234;;9866:149;9993:7;;;;;;:::i;:::-;9866:149;9791:234;;3228:4636:92;;;;;;;:::i;:::-;-1:-1:-1;3228:4636:92;;;;;;;:::o;11486:272:97:-;;3228:4636:92;11452:22:71;11718:31:97;11486:272;3228:4636:92;;:::i;:::-;;;;:::i;:::-;;11452:22:71;;:::i;:::-;3228:4636:92;;:::i;:::-;;11718:12:97;3228:4636:92;;;;;11731:17:97;3228:4636:92;;;;;11731:17:97;;3228:4636:92;;11718:12:97;;:31;:::i;:::-;3228:4636:92;;;;;;;;;:::i;:::-;;;;;;11731:17:97;11672:79;;3228:4636:92;11486:272:97;:::o;6893:76:26:-;;;:::i;:::-;;;:::i;:::-;1949:1:30;-1:-1:-1;;;;;;;;;;;3228:4636:92;6893:76:26:o;3228:4636:92:-;;;;;;;:::i;:::-;-1:-1:-1;3228:4636:92;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:92;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3228:4636:92;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;6510:1274:89:-;6658:30;6510:1274;3228:4636:92;;:::i;:::-;;6658:30:89;3228:4636:92;;;6658:30:89;;;;;;:::i;:::-;6716:17;;3228:4636:92;6716:17:89;;3228:4636:92;-1:-1:-1;;;;;3228:4636:92;6716:54:89;;:179;;6510:1274;6699:259;;6973:9;6658:30;6988:33;;;6716:17;7030:3;6988:33;;3228:4636:92;;6984:44:89;;;;;7053:36;;;:50;:36;;:::i;:::-;3228:4636:92;-1:-1:-1;;;;;3228:4636:92;;;7053:50:89;;7049:119;;7186:73;7187:72;7222:36;;:33;;;:36;:::i;:::-;7187:72;:::i;:::-;7186:73;;3228:4636:92;7186:73:89;7182:140;;3228:4636:92;;6973:9:89;;7182:140;3228:4636:92;;-1:-1:-1;;;7286:21:89;;;;;7049:119;3228:4636:92;;-1:-1:-1;;;7130:23:89;;;;;6984:44;-1:-1:-1;7362:42:89;;-1:-1:-1;;7362:42:89;;;;6716:17;7413:3;7362:42;;3228:4636:92;;7358:53:89;;;;;7436:45;;;:59;:45;;:::i;:59::-;;7432:128;;7578:92;7579:91;7624:45;;:42;;;:45;:::i;:::-;7579:91;:::i;7578:92::-;7574:159;;3228:4636:92;;7347:9:89;;7574:159;3228:4636:92;;-1:-1:-1;;;7697:21:89;;;;;7432:128;3228:4636:92;;-1:-1:-1;;;7522:23:89;;;;;7358:53;;;;;;7760:17;6510:1274;:::o;6699:259::-;3228:4636:92;;-1:-1:-1;;;6927:20:89;;;;;6716:179;6791:33;6658:30;6791:33;;;3228:4636:92;6791:45:89;:103;6716:179;6791:103;6840:42;;;;;3228:4636:92;6840:54:89;6716:179;;4996:4226:68;;3228:4636:92;;;;-1:-1:-1;;3228:4636:92;4996:4226:68;5584:131;;;;;;;;;;;;5796:10;;5792:368;;6270:20;;;;6266:143;;6695:300;;;;3228:4636:92;-1:-1:-1;3228:4636:92;7214:31:68;;7259:375;;;8094:1;3228:4636:92;;8075:1:68;3228:4636:92;8074:21:68;3228:4636:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7259:375:68;;;;-1:-1:-1;7259:375:68;;;6695:300;;;;;;3228:4636:92;6695:300:68;;7259:375;7700:21;3228:4636:92;4996:4226:68;:::o;6266:143::-;6330:16;;3066:5;3228:4636:92;940:4:59;3060:42:68;6322:71;:::i;5792:368::-;6126:19;;;;;;;:::i;3228:4636:92:-;;;-1:-1:-1;;;3228:4636:92;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;3228:4636:92;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11657:922:71;3228:4636:92;;11657:922:71;;;11864:7;;;;11936;11916:28;11936:7;;:::i;:::-;11916:28;13267:109:97;;;;;;13089:293;;11916:28:71;3228:4636:92;;;;;;;;;;;;12103:13:71;;;12099:89;;12251:14;;;;;12285:19;;;;3228:4636:92;;;;;;;;;;;;;;;;;12285:19:71;3228:4636:92;;12423:25:71;;:::o;12247:163::-;3228:4636:92;;;12343:52:71;3228:4636:92;12353:41:71;3228:4636:92;;:::i;:::-;;;;;;;;12353:41:71;-1:-1:-1;;;;;3228:4636:92;;12353:41:71;;;3228:4636:92;12343:52:71;:::i;:::-;12247:163;;12099:89;3228:4636:92;;-1:-1:-1;;;12143:30:71;;;;;11860:713;3228:4636:92;;12479:52:71;3228:4636:92;12489:41:71;3228:4636:92;;:::i;12489:41:71:-;-1:-1:-1;;;;;3228:4636:92;;12489:41:71;;;3228:4636:92;12343:52:71;:::i;12479:::-;11870:1;12545:17;;:::o;7084:141:26:-;3228:4636:92;-1:-1:-1;;;;;;;;;;;3228:4636:92;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;3228:4636:92;;-1:-1:-1;;;7191:17:26;;;;;1776:194:59;1829:135;;;;;;;","linkReferences":{},"immutableReferences":{"59800":[{"start":2537,"length":32}],"59803":[{"start":4780,"length":32}],"60754":[{"start":2123,"length":32},{"start":4837,"length":32}],"60757":[{"start":1298,"length":32},{"start":10629,"length":32}],"60760":[{"start":1366,"length":32},{"start":7731,"length":32},{"start":7995,"length":32}],"60763":[{"start":1993,"length":32},{"start":7578,"length":32},{"start":8121,"length":32}],"63278":[{"start":3733,"length":32},{"start":6477,"length":32}],"63280":[{"start":3479,"length":32},{"start":6638,"length":32}],"63282":[{"start":4169,"length":32}],"64360":[{"start":1440,"length":32},{"start":4055,"length":32},{"start":5673,"length":32}]}},"methodIdentifiers":{"BASE_DELEGATOR_HINTS()":"79d89614","DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_LIMIT_SET_ROLE()":"7d24bb27","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_NETWORK_SHARES_SET_ROLE()":"e78eb6ae","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","OPT_IN_SERVICE_HINTS()":"9b656b22","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VAULT_HINTS()":"45e78fcb","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","networkLimit(bytes32)":"3eb22c0f","networkLimitAt(bytes32,uint48,bytes)":"5d32a1c9","networkLimitHint(address,bytes32,uint48)":"da749d2b","networkLimitHintInternal(bytes32,uint48)":"197aa7ea","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operatorNetworkShares(bytes32,address)":"42c53e33","operatorNetworkSharesAt(bytes32,address,uint48,bytes)":"1a7a7044","operatorNetworkSharesHint(address,bytes32,address,uint48)":"07f9d5fd","operatorNetworkSharesHintInternal(bytes32,address,uint48)":"987b3ee8","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","setNetworkLimit(bytes32,uint256)":"02145348","setOperatorNetworkShares(bytes32,address,uint256)":"a33bc287","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","stakeHints(address,bytes32,address,uint48)":"25dc9708","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","totalOperatorNetworkShares(bytes32)":"c43dc03f","totalOperatorNetworkSharesAt(bytes32,uint48,bytes)":"8b3f10b0","totalOperatorNetworkSharesHint(address,bytes32,uint48)":"b549ef1f","totalOperatorNetworkSharesHintInternal(bytes32,uint48)":"ed4d89e5","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseDelegatorHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"optInServiceHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateRoleHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExceedsMaxNetworkLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoleHolders\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressRoleHolder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"SetOperatorNetworkShares\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_SHARES_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPT_IN_SERVICE_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"networkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"networkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"operatorNetworkShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"operatorNetworkSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"operatorNetworkSharesHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"operatorNetworkSharesHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"setOperatorNetworkShares\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"totalOperatorNetworkShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"totalOperatorNetworkSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"totalOperatorNetworkSharesHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"totalOperatorNetworkSharesHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetOperatorNetworkShares(bytes32,address,uint256)\":{\"params\":{\"operator\":\"address of the operator\",\"shares\":\"new operator's shares inside the subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"networkLimit(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the subnetwork\"}},\"networkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the subnetwork limit at\"},\"returns\":{\"_0\":\"limit of the subnetwork at the given timestamp\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"operatorNetworkShares(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"shares of the operator for the subnetwork\"}},\"operatorNetworkSharesAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the operator's shares at\"},\"returns\":{\"_0\":\"shares of the operator for the subnetwork at the given timestamp\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"setNetworkLimit(bytes32,uint256)\":{\"details\":\"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"setOperatorNetworkShares(bytes32,address,uint256)\":{\"details\":\"Only an OPERATOR_NETWORK_SHARES_SET_ROLE holder can call this function.\",\"params\":{\"operator\":\"address of the operator\",\"shares\":\"new shares of the operator for the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"totalOperatorNetworkShares(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"total shares of the operators for the subnetwork\"}},\"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the total operators' shares at\"},\"returns\":{\"_0\":\"total shares of the operators for the subnetwork at the given timestamp\"}}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"},\"SetNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's limit is set.\"},\"SetOperatorNetworkShares(bytes32,address,uint256)\":{\"notice\":\"Emitted when an operator's shares inside a subnetwork are set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get a subnetwork limit setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_NETWORK_SHARES_SET_ROLE()\":{\"notice\":\"Get an operator-subnetwork shares setter's role.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"networkLimit(bytes32)\":{\"notice\":\"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"networkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operatorNetworkShares(bytes32,address)\":{\"notice\":\"Get an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator).\"},\"operatorNetworkSharesAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get an operator's shares for a subnetwork at a given timestamp using a hint (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator).\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"setNetworkLimit(bytes32,uint256)\":{\"notice\":\"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"setOperatorNetworkShares(bytes32,address,uint256)\":{\"notice\":\"Set an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator).\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"totalOperatorNetworkShares(bytes32)\":{\"notice\":\"Get a sum of operators' shares for a subnetwork.\"},\"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a sum of operators' shares for a subnetwork at a given timestamp using a hint.\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/DelegatorHints.sol\":\"NetworkRestakeDelegatorHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf\",\"dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x4aaaf1c0737dd16e81f0d2b9833c549747a5ede6873bf1444bc72aa572d03e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eada27d7668eebaea16c3b890aa1b38ffc53965292e26c96f7c44834623f4710\",\"dweb:/ipfs/QmVSWuLtxyCqNbLyY89ptxkvsk4CLLKDQYigEne5Qj8k1L\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a\",\"dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c\",\"dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e\",\"dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0xbdc3bb48ccedb818cd75a6d74a16df55a822e9f6d3cc54c59f576f10aab67b5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2284f25f2478f419d7781573b17a89d0e7c5589a865d55e2d6ed5163aee23aa8\",\"dweb:/ipfs/QmNsr2625APBQiNKpYnX5VcSnYgfUHR9Uzzp9pRXjoDqK7\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44\",\"dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x303ad40a3de8fa808cc30a6fbd5998633f6a89b982e6db1fa981e0566ab445e7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fa8fb92995ead02798e013190b87b84b44cc68668262f045c9b0b4783940e2bf\",\"dweb:/ipfs/QmV1uKGVLKwWisc714R8fCt71gXUQJpaKvdc6LQ8WtvMpL\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0xd71e9102e99a25ee8b5435779f011a24558f56074aa2b16c18b623b57754ae97\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://29db5552e55dab51bea1ae40ba00ca674cb50fcb10997999a72a94527b6eb591\",\"dweb:/ipfs/QmQrYyTPx73ubNxMhYWJCkprCVFVtuTFcKaabYiKTe71tY\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x7ee6dbf060c45d6eba95315f4ac0b3b467dd9c4999b84c31d6f66d4d8b53a116\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://301948b8ea522db292aa2722ba42def3911dae95f0b376f7023c3fef470f8676\",\"dweb:/ipfs/QmSDbP2HdzhDAzstr8Zz5isEAcSkma8ABc5UwPsoazaumZ\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseDelegatorHints","type":"address"},{"internalType":"address","name":"vaultHints","type":"address"},{"internalType":"address","name":"optInServiceHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DuplicateRoleHolder"},{"inputs":[],"type":"error","name":"ExceedsMaxNetworkLimit"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"MissingRoleHolders"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"ZeroAddressRoleHolder"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"SetOperatorNetworkShares","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_SHARES_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPT_IN_SERVICE_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"networkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"networkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"operatorNetworkShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"operatorNetworkSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"operatorNetworkSharesHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"operatorNetworkSharesHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setOperatorNetworkShares"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"totalOperatorNetworkShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"totalOperatorNetworkSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"totalOperatorNetworkSharesHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"totalOperatorNetworkSharesHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"networkLimit(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the subnetwork"}},"networkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the subnetwork limit at"},"returns":{"_0":"limit of the subnetwork at the given timestamp"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"operatorNetworkShares(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"shares of the operator for the subnetwork"}},"operatorNetworkSharesAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the operator's shares at"},"returns":{"_0":"shares of the operator for the subnetwork at the given timestamp"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"setNetworkLimit(bytes32,uint256)":{"details":"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"setOperatorNetworkShares(bytes32,address,uint256)":{"details":"Only an OPERATOR_NETWORK_SHARES_SET_ROLE holder can call this function.","params":{"operator":"address of the operator","shares":"new shares of the operator for the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"totalOperatorNetworkShares(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"total shares of the operators for the subnetwork"}},"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the total operators' shares at"},"returns":{"_0":"total shares of the operators for the subnetwork at the given timestamp"}}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_LIMIT_SET_ROLE()":{"notice":"Get a subnetwork limit setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_NETWORK_SHARES_SET_ROLE()":{"notice":"Get an operator-subnetwork shares setter's role."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"networkLimit(bytes32)":{"notice":"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"networkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operatorNetworkShares(bytes32,address)":{"notice":"Get an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)."},"operatorNetworkSharesAt(bytes32,address,uint48,bytes)":{"notice":"Get an operator's shares for a subnetwork at a given timestamp using a hint (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"setNetworkLimit(bytes32,uint256)":{"notice":"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"setOperatorNetworkShares(bytes32,address,uint256)":{"notice":"Set an operator's shares for a subnetwork (what percentage, which is equal to the shares divided by the total operators' shares, of the subnetwork's stake the vault curator is ready to give to the operator)."},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"totalOperatorNetworkShares(bytes32)":{"notice":"Get a sum of operators' shares for a subnetwork."},"totalOperatorNetworkSharesAt(bytes32,uint48,bytes)":{"notice":"Get a sum of operators' shares for a subnetwork at a given timestamp using a hint."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/DelegatorHints.sol":"NetworkRestakeDelegatorHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866","urls":["bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf","dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab","urls":["bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89","dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606","urls":["bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1","dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x4aaaf1c0737dd16e81f0d2b9833c549747a5ede6873bf1444bc72aa572d03e98","urls":["bzz-raw://eada27d7668eebaea16c3b890aa1b38ffc53965292e26c96f7c44834623f4710","dweb:/ipfs/QmVSWuLtxyCqNbLyY89ptxkvsk4CLLKDQYigEne5Qj8k1L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol":{"keccak256":"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549","urls":["bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a","dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed","urls":["bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0","dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d","urls":["bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c","dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575","urls":["bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e","dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0xbdc3bb48ccedb818cd75a6d74a16df55a822e9f6d3cc54c59f576f10aab67b5f","urls":["bzz-raw://2284f25f2478f419d7781573b17a89d0e7c5589a865d55e2d6ed5163aee23aa8","dweb:/ipfs/QmNsr2625APBQiNKpYnX5VcSnYgfUHR9Uzzp9pRXjoDqK7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f","urls":["bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44","dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x303ad40a3de8fa808cc30a6fbd5998633f6a89b982e6db1fa981e0566ab445e7","urls":["bzz-raw://fa8fb92995ead02798e013190b87b84b44cc68668262f045c9b0b4783940e2bf","dweb:/ipfs/QmV1uKGVLKwWisc714R8fCt71gXUQJpaKvdc6LQ8WtvMpL"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0xd71e9102e99a25ee8b5435779f011a24558f56074aa2b16c18b623b57754ae97","urls":["bzz-raw://29db5552e55dab51bea1ae40ba00ca674cb50fcb10997999a72a94527b6eb591","dweb:/ipfs/QmQrYyTPx73ubNxMhYWJCkprCVFVtuTFcKaabYiKTe71tY"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x7ee6dbf060c45d6eba95315f4ac0b3b467dd9c4999b84c31d6f66d4d8b53a116","urls":["bzz-raw://301948b8ea522db292aa2722ba42def3911dae95f0b376f7023c3fef470f8676","dweb:/ipfs/QmSDbP2HdzhDAzstr8Zz5isEAcSkma8ABc5UwPsoazaumZ"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":92} \ No newline at end of file diff --git a/out/DelegatorHints.sol/OperatorNetworkSpecificDelegatorHints.json b/out/DelegatorHints.sol/OperatorNetworkSpecificDelegatorHints.json index 15e4a7eb..992ffbee 100644 --- a/out/DelegatorHints.sol/OperatorNetworkSpecificDelegatorHints.json +++ b/out/DelegatorHints.sol/OperatorNetworkSpecificDelegatorHints.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"baseDelegatorHints","type":"address","internalType":"address"},{"name":"vaultHints","type":"address","internalType":"address"},{"name":"optInServiceHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPT_IN_SERVICE_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VAULT_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxNetworkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxNetworkLimitHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"maxNetworkLimitHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"network","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidNetwork","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotOperator","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x6101e0346101dc57601f612eb338819003918201601f19168301916001600160401b0391828411858510176101e05781606092869260409687528339810103126101dc5761004c836101f4565b926100648361005d602084016101f4565b92016101f4565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101cb578080831603610187575b5050505f60a0525f60c0525f60e052610100935f8552610120935f85526101405f8152610160915f83526101809384526101a09485526101c09586525195612caa9788610209893960805188610e71015260a0518861062b015260c05188610dee015260e0518881816103dd01528181610e2701526127ba0152518781816102d30152611fd201525186818161031701528181611841015261197001525185818161035b015281816117a801526119ee015251848181610c1b0152612833015251838181610baf0152611369015251828181610ac5015261140a01525181610cf20152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101dc5756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610264578063103f29071461025f578063128e5d821461025a5780631a80e5001461025557806323f752d514610250578063248a9ca31461024b57806325dc9708146102465780632dd31000146102415780632f2ff15d1461023c57806336568abe146102375780633dfd387314610232578063437224a31461022d578063439fab911461022857806345e78fcb14610223578063557cab441461021e578063570ca735146102195780636679191e146102145780636739afca1461020f57806379d896141461020a5780637f5a7c7b1461020557806383ce03221461020057806391d14854146101fb578063991d1162146101f65780639b656b22146101f15780639f86fd85146101ec578063a217fddf146101e7578063bb24fe8a146101e2578063c0cd7c3e146101dd578063d0f1f901146101d8578063d15b740e146101d3578063d547741f146101ce578063e02f6937146101c9578063e49561ee146101c4578063fbfa77cf146101bf578063fd4d447c146101ba578063ff54740f146101b55763ffa1ad74146101b0575f80fd5b611207565b6111ea565b6111c0565b611199565b610fae565b610f59565b610f0d565b610ee3565b610e56565b610e12565b610dcf565b610db5565b610d21565b610cdd565b610ca8565b610c4a565b610c06565b610bde565b610b9a565b610b72565b610b38565b610b10565b610af4565b610ab0565b610978565b6108f2565b6106f1565b6106a6565b61065a565b610616565b6105bd565b610510565b61038a565b610346565b610302565b6102be565b346102ba5760203660031901126102ba5760043563ffffffff60e01b81168091036102ba57602090637965db0b60e01b81149081156102a9575b506040519015158152f35b6301ffc9a760e01b1490505f61029e565b5f80fd5b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba576004356001600160601b03811681036102ba57602435906103ba611a63565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa90811561050b575f916104dc575b50156104ca576001600160601b03166bffffffffffffffffffffffff193360601b16179080610444835f52600260205260405f2090565b54146104b85761049d817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610482855f52600260205260405f2090565b5561048d8185611a92565b6040519081529081906020820190565b0390a26104b660015f80516020612c3583398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6104fe915060203d602011610504575b6104f68183610854565b81019061122f565b5f61040d565b503d6104ec565b611246565b346102ba5760203660031901126102ba576004355f525f80516020612c158339815191526020526020600160405f200154604051908152f35b6001600160a01b038116036102ba57565b6064359065ffffffffffff821682036102ba57565b6024359065ffffffffffff821682036102ba57565b6044359065ffffffffffff821682036102ba57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102ba5760803660031901126102ba576106126105fe6004356105e081610549565b6044356105ec81610549565b6105f461055a565b9160243590611320565b604051918291602083526020830190610599565b0390f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba576104b660243560043561067d82610549565b805f525f80516020612c158339815191526020526106a1600160405f200154611bd4565b611d85565b346102ba5760403660031901126102ba576024356106c381610549565b336001600160a01b038216036106df576104b690600435611dbb565b60405163334bd91960e11b8152600490fd5b346102ba5760203660031901126102ba5760043561070e81610549565b610716611a63565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156107cc57506001546001600160a01b0391821691811682146104b8576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612c3583398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761081957604052565b6107ea565b606081019081106001600160401b0382111761081957604052565b608081019081106001600160401b0382111761081957604052565b90601f801991011681019081106001600160401b0382111761081957604052565b604051906108828261081e565b565b60405190610882826107fe565b6001600160401b03811161081957601f01601f191660200190565b81601f820112156102ba578035906108c382610891565b926108d16040519485610854565b828452602083830101116102ba57815f926020809301838601378301015290565b346102ba5760603660031901126102ba5761090b61056f565b6044356001600160401b0381116102ba576020916109306109439236906004016108ac565b906004355f526003845260405f20611e84565b604051908152f35b9181601f840112156102ba578235916001600160401b0383116102ba57602083818601950101116102ba57565b346102ba5760203660031901126102ba576001600160401b036004358181116102ba576109a990369060040161094b565b5f80516020612c55833981519152549260ff8460401c1615931680159081610aa8575b6001149081610a9e575b159081610a95575b50610a83575f80516020612c55833981519152805467ffffffffffffffff19166001179055610a119183610a5f57611f9d565b610a1757005b5f80516020612c55833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612c55833981519152805460ff60401b1916600160401b179055611f9d565b60405163f92ee8a960e01b8152600490fd5b9050155f6109de565b303b1591506109d6565b8491506109cc565b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576020604051614e208152f35b346102ba575f3660031901126102ba576005546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b346102ba575f3660031901126102ba576004546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576001546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57602060ff610c9c602435610c6e81610549565b6004355f525f80516020612c15833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346102ba5760603660031901126102ba576106126105fe600435610ccb81610549565b610cd3610584565b906024359061154e565b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57600435610d3e81610549565b6024356001600160401b0381116102ba575f91610d608392369060040161094b565b90816040519283928337810184815203915af4610dad610d7e611647565b91610d9f604051938492151560208401526040808401526060830190610599565b03601f198101835282610854565b805190602001fd5b346102ba575f3660031901126102ba5760206040515f8152f35b346102ba575f3660031901126102ba5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57610e6f61056f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610ed15763ffffffff610ebc6040926004355f526003602052835f2061215c565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102ba5760203660031901126102ba576004355f526002602052602060405f2054604051908152f35b346102ba5760403660031901126102ba576104b6602435600435610f3082610549565b805f525f80516020612c15833981519152602052610f54600160405f200154611bd4565b611dbb565b346102ba5760803660031901126102ba57602435610f7681610549565b610f7e610584565b90606435906001600160401b0382116102ba57602092610fa56109439336906004016108ac565b91600435611732565b346102ba5760a03660031901126102ba57602435600435610fce82610549565b60443591610fda61055a565b90608435906001600160401b0382116102ba57610ffc600492369084016108ac565b611004611a63565b5f546020906110299061101d906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa92831561050b575f93611168575b506001600160a01b039283163303611156576001546001600160a01b03168381166110cb575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a36104b660015f80516020612c3583398151915255565b909360405194611102866110f4602082019363724ab0f760e11b8552858c898d602487016118bc565b03601f198101885287610854565b62042e305a10611144575f6110b2938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611071565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61118b91935060203d602011611192575b6111838183610854565b8101906112bc565b915f61104b565b503d611179565b346102ba575f3660031901126102ba575f546040516001600160a01b039091168152602090f35b346102ba5760403660031901126102ba5760206109436024356111e281610549565b600435611939565b346102ba575f3660031901126102ba5760206040516203d0908152f35b346102ba575f3660031901126102ba57602060405160018152f35b519081151582036102ba57565b908160209103126102ba5761124390611222565b90565b6040513d5f823e3d90fd5b81601f820112156102ba5780519061126882610891565b926112766040519485610854565b828452602083830101116102ba57815f9260208093018386015e8301015290565b906020828203126102ba5781516001600160401b0381116102ba576112439201611251565b908160209103126102ba575161124381610549565b9061124391602081526112f08251606060208401526080830190610599565b9060606040611310602086015194601f1995868683030184870152610599565b9401519282850301910152610599565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052938416604482015265ffffffffffff8516606482015260609594909391925f856084817f000000000000000000000000000000000000000000000000000000000000000087165afa94851561050b575f956114ea575b5060405163fbfa77cf60e01b81526020816004818888165afa90811561050b57611406945f92859284916114cb575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff90921660248301529094859190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa92831561050b575f936114a5575b50611445929361154e565b9082511580159061149b575b8015611491575b61146157505050565b610d9f939450906112439291611475610875565b92835260208301526040820152604051928391602083016112d1565b5081511515611458565b5080511515611451565b61144593506114c5903d805f833e6114bd8183610854565b810190611297565b9261143a565b6114e4915060203d602011611192576111838183610854565b5f6113c9565b6114ff9195503d805f833e6114bd8183610854565b935f61139a565b9061124392915f52600360205260405f20611e84565b519063ffffffff821682036102ba57565b91908260409103126102ba57611243602061154784611222565b930161151c565b92915f8060609565ffffffffffff6040519460209663d0f1f90160e01b8888015260248701521660448501526044845261158784610839565b60405193846115b487820192639f86fd8560e01b8452306024840152604060448401526064830190610599565b03946115c8601f1996878101835282610854565b51915afa506115e66115d8611647565b8380825183010191016120db565b9015611639578083806115fe9351830101910161152d565b929061160957505050565b6112439293945061162d604051948592830191909163ffffffff6020820193169052565b03908101835282610854565b809150519182156102ba5701fd5b3d15611671573d9061165882610891565b916116666040519384610854565b82523d5f602084013e565b606090565b60405190611683826107fe565b60606020838281520152565b906020828203126102ba5781516001600160401b03928382116102ba5701906040828203126102ba57604051926116c5846107fe565b82518181116102ba57826116da918501611251565b845260208301519081116102ba576116f29201611251565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261124392910190610599565b9261174290929192828486612335565b92909361174d611676565b938051806118a0575b5050841593841561180a575b8415611779575b505050506117745790565b505f90565b6020809495506117a4910151604051958694859463530e1d4360e01b865260601c90600486016116fa565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561050b575f916117eb575b50155f808080611769565b611804915060203d602011610504576104f68183610854565b5f6117e0565b5f549094506001600160a01b031660208486519261183d604051948593849363530e1d4360e01b855289600486016116fa565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561050b575f91611881575b501593611762565b61189a915060203d602011610504576104f68183610854565b5f611879565b6118b492955060208091830101910161168f565b925f80611756565b919360a093611243969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610599565b634e487b7160e01b5f52601160045260245ffd5b8115611912570490565b634e487b7160e01b5f52601260045260245ffd5b906001820180921161193457565b6118f4565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa90811561050b575f91611a46575b50159182156119c2575b505090506119bc576112439161245a565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa91821561050b575f92611a29575b505015805f806119ab565b611a3f9250803d10610504576104f68183610854565b5f80611a1e565b611a5d9150843d8611610504576104f68183610854565b5f6119a1565b5f80516020612c358339815191526002815414611a805760029055565b604051633ee5aeb560e01b8152600490fd5b6004546001600160a01b0316606082901c03611bc2575f52600360205260405f209065ffffffffffff91824211611ba357824216926001820191825415611b95575b611add81612a75565b509590845493835480155f14611b7657505f975b6001600160d01b0398808a1615611b7057611b0c9088612133565b50505b82611b64575b505015611b4e575050610882935090611b30611b3692611e61565b90612133565b90919082549060031b91821b915f19901b1916179055565b61088295611b5d931691612b37565b505061254f565b16821490505f80611b15565b50611b0f565b5f1990808281011161193457855f5260205f2001015460301c97611af1565b611b9e83612522565b611ad4565b6040516306dfcc6560e41b815260306004820152426024820152604490fd5b6040516386eab41b60e01b8152600490fd5b5f8181525f80516020612c158339815191526020908152604080832033845290915290205460ff16156107cc5750565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612c158339815191529060ff166119bc575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612c158339815191529060ff905b5416611d7e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b5f8181525f80516020612c15833981519152602081815260408084206001600160a01b038716855290915290912060ff90611d1a565b5f8181525f80516020612c15833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611d7e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b908160209103126102ba576112439061151c565b5f1981019190821161193457565b90600163ffffffff8093160191821161193457565b91805115611f5d5780602080611e9f93518301019101611e4d565b91611eaa8382612642565b92611ebb845165ffffffffffff1690565b9065ffffffffffff8085169216828114611f515782119182611ef1575b5050611ee8576112439250612572565b50506020015190565b909150611efe8354611e61565b63ffffffff831614918215611f17575b50505f80611ed8565b611f49919250611f32611f2c611f3e92611e6f565b85612642565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611f0e565b50505050506020015190565b5061124391612572565b9190916040818403126102ba578035611f7f81610549565b9260208201356001600160401b0381116102ba5761124392016108ac565b611fa991810190611f67565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa90811561050b575f916120bc575b50156120aa5761203e6040916120396120849461201e6126aa565b60018060a01b03166001600160601b0360a01b5f5416175f55565b61276d565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661209a575b5001516001600160a01b031690565b90811661208e5750565b61209790611caf565b50565b6120a390611c04565b505f612075565b6040516362df054560e01b8152600490fd5b6120d5915060203d602011610504576104f68183610854565b5f612003565b9190916040818403126102ba576120f181611222565b9260208201516001600160401b0381116102ba576112439201611251565b9060405161211c816107fe565b915465ffffffffffff8116835260301c6020830152565b8054821015612148575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b91908254905f829160058411612204575b612178935085612a13565b9081156121f8576121f16121e86121e26121d86121aa6121a561219a88611e61565b895f5260205f200190565b61210f565b9660016121d160206121c28b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101612133565b90549060031b1c90565b93611e61565b63ffffffff1690565b6001939291565b5f925082915081908190565b919261220f816128e8565b81039081116119345761217893865f52612238611f3e8360205f200165ffffffffffff90541690565b65ffffffffffff8516101561224e57509161216d565b92915061225a90611926565b9061216d565b6040519061226d8261081e565b60606040838281528260208201520152565b906020828203126102ba5781516001600160401b03928382116102ba5701906060828203126102ba57604051926122b58461081e565b82518181116102ba57826122ca918501611251565b845260208301518181116102ba57826122e4918501611251565b602085015260408301519081116102ba576122ff9201611251565b604082015290565b908160209103126102ba575190565b60409065ffffffffffff61124394931681528160208201520190610599565b90939293612341612260565b9480518061243e575b5050600454606083901c6001600160a01b03918216148015929190612423575b505061241b575f546123b092919060209061238f9061101d906001600160a01b031681565b8187015190604051808097819463810da75d60e01b83528860048401612316565b03915afa90811561050b576123e3935f926123e8575b506123d79192604087015191611506565b90818082109118021890565b915190565b6123d7925061240e9060203d602011612414575b6124068183610854565b810190612307565b916123c6565b503d6123fc565b505090515f91565b60055481166001600160a01b03169116141590505f8061236a565b61245292965060208091830101910161227f565b935f8061234a565b6004549091606083901c6001600160a01b039283161480159290612507575b5050611774575f546004919060209061249c9061101d906001600160a01b031681565b60405163bd49c35f60e01b815293849182905afa90811561050b57611243925f926124e2575b506124d5905f52600260205260405f2090565b5490818082109118021890565b6124d59192506125009060203d602011612414576124068183610854565b91906124c2565b60055481166001600160a01b03169116141590505f80612479565b8054600160401b8110156108195761253f91600182018155612133565b8154905f199060031b1b19169055565b90815491600160401b8310156108195782611b3691600161088295018155612133565b908154905f8291600584116125dc575b61258d935084612a13565b806125b557505f905b6001600160d01b038216156119bc576112439160016121d89201612133565b6125cf6125c46125d692611e61565b835f5260205f200190565b5460301c90565b90612596565b91926125e7816128e8565b81039081116119345761258d93855f5265ffffffffffff808360205f20015416908516105f14612618575091612582565b92915061262490611926565b90612582565b60405190612637826107fe565b5f6020838281520152565b9061266b61266561268c9261265561262a565b5061265e61262a565b5084612133565b5061210f565b91600165ffffffffffff845116936020828060d01b03910151169101612133565b9054906040519261269c846107fe565b835260031b1c602082015290565b6126b2612aae565b6126ba612aae565b60015f80516020612c3583398151915255565b604051906126da8261081e565b5f6040838281528260208201520152565b8091039060a082126102ba576060604051926127068461081e565b126102ba5760809060405161271a8161081e565b815161272581610549565b8152602082015161273581610549565b6020820152604082015161274881610549565b60408201528352606081015161275d81610549565b602084015201516122ff81610549565b6127756126cd565b5061278b815191602080809483010191016126eb565b80820180516040516302910f8b60e31b8082526001600160a01b039283166004830152939491939082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa90811561050b575f916128cb575b50156104ca578161282f91604087019561280b875160018060a01b031690565b6040519283526001600160a01b031660048301529092839190829081906024820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa91821561050b575f926128ae575b50501561289c5751600480546001600160a01b039283166001600160a01b03199182161790915591516005805490931691161790555190565b604051631f0853c160e21b8152600490fd5b6128c49250803d10610504576104f68183610854565b5f80612863565b6128e29150833d8511610504576104f68183610854565b5f6127eb565b600181111561124357600181600160801b811015612a01575b6129a961299f61299561298b6129816129776129b597600488600160401b6129b09a10156129f4575b6401000000008110156129e7575b620100008110156129da575b6101008110156129ce575b60108110156129c2575b10156129ba575b60030260011c612970818b611908565b0160011c90565b612970818a611908565b6129708189611908565b6129708188611908565b6129708187611908565b6129708186611908565b8093611908565b821190565b900390565b60011b612960565b811c9160021b91612959565b60081c91811b9161294f565b60101c9160081b91612944565b60201c9160101b91612938565b60401c9160201b9161292a565b50600160401b9050608082901c612901565b91905b838210612a235750505090565b909192808316906001818518811c830180931161193457855f5265ffffffffffff808460205f20015416908516105f14612a62575050925b9190612a16565b9094935081018091116119345791612a5b565b805480612a865750505f905f905f90565b5f19918183810111611934575f5260205f2001015460019165ffffffffffff82169160301c90565b60ff5f80516020612c558339815191525460401c1615612aca57565b604051631afcd79f60e31b8152600490fd5b8054600160401b81101561081957612af991600182018155612133565b612b2457815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293928015612bea57612b4e612b5991611e61565b825f5260205f200190565b9182549265ffffffffffff91828516928116808411612bd857879303612b9f5750612b9892509065ffffffffffff82549181199060301b169116179055565b60301c9190565b915050612bd391612bbf612bb1610884565b65ffffffffffff9093168352565b6001600160d01b0386166020830152612adc565b612b98565b604051632520601d60e01b8152600490fd5b5090612c0f91612bfb612bb1610884565b6001600160d01b0385166020830152612adc565b5f919056fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220f6cce0efc162f0e8ffb0cabef02f41afd760a4aaf699150effb496d0e7fe159b64736f6c63430008190033","sourceMap":"13600:2428:94:-:0;;;;;;;;;;;;;-1:-1:-1;;13600:2428:94;;;;-1:-1:-1;;;;;13600:2428:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;348:4:95;;332:21;;8837:64:26;13600:2428:94;;;;;;;;;7896:76:26;;13600:2428:94;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:82;;;-1:-1:-1;525:17:82;;-1:-1:-1;552:12:82;;-1:-1:-1;2360:34:89;;2404:28;;-1:-1:-1;2404:28:89;;2442:57;;-1:-1:-1;2442:57:89;;2509:61;-1:-1:-1;2509:61:89;;1796:36:92;;-1:-1:-1;1796:36:92;;14125:41:94;;;;14176:24;;;;14210:40;;;;13600:2428;;;;;;;;332:21:95;13600:2428:94;;;;;525:17:82;13600:2428:94;;;;;552:12:82;13600:2428:94;;;;;2360:34:89;13600:2428:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;13600:2428:94;;;;;;;;;;;;;8087:29:26;;13600:2428:94;;8087:29:26;7981:146;;;;;7896:76;13600:2428:94;;-1:-1:-1;;;7938:23:26;;;;;13600:2428:94;-1:-1:-1;13600:2428:94;;;;;;-1:-1:-1;13600:2428:94;;;;;-1:-1:-1;13600:2428:94;;;;-1:-1:-1;;;;;13600:2428:94;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610264578063103f29071461025f578063128e5d821461025a5780631a80e5001461025557806323f752d514610250578063248a9ca31461024b57806325dc9708146102465780632dd31000146102415780632f2ff15d1461023c57806336568abe146102375780633dfd387314610232578063437224a31461022d578063439fab911461022857806345e78fcb14610223578063557cab441461021e578063570ca735146102195780636679191e146102145780636739afca1461020f57806379d896141461020a5780637f5a7c7b1461020557806383ce03221461020057806391d14854146101fb578063991d1162146101f65780639b656b22146101f15780639f86fd85146101ec578063a217fddf146101e7578063bb24fe8a146101e2578063c0cd7c3e146101dd578063d0f1f901146101d8578063d15b740e146101d3578063d547741f146101ce578063e02f6937146101c9578063e49561ee146101c4578063fbfa77cf146101bf578063fd4d447c146101ba578063ff54740f146101b55763ffa1ad74146101b0575f80fd5b611207565b6111ea565b6111c0565b611199565b610fae565b610f59565b610f0d565b610ee3565b610e56565b610e12565b610dcf565b610db5565b610d21565b610cdd565b610ca8565b610c4a565b610c06565b610bde565b610b9a565b610b72565b610b38565b610b10565b610af4565b610ab0565b610978565b6108f2565b6106f1565b6106a6565b61065a565b610616565b6105bd565b610510565b61038a565b610346565b610302565b6102be565b346102ba5760203660031901126102ba5760043563ffffffff60e01b81168091036102ba57602090637965db0b60e01b81149081156102a9575b506040519015158152f35b6301ffc9a760e01b1490505f61029e565b5f80fd5b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba576004356001600160601b03811681036102ba57602435906103ba611a63565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa90811561050b575f916104dc575b50156104ca576001600160601b03166bffffffffffffffffffffffff193360601b16179080610444835f52600260205260405f2090565b54146104b85761049d817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610482855f52600260205260405f2090565b5561048d8185611a92565b6040519081529081906020820190565b0390a26104b660015f80516020612c3583398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6104fe915060203d602011610504575b6104f68183610854565b81019061122f565b5f61040d565b503d6104ec565b611246565b346102ba5760203660031901126102ba576004355f525f80516020612c158339815191526020526020600160405f200154604051908152f35b6001600160a01b038116036102ba57565b6064359065ffffffffffff821682036102ba57565b6024359065ffffffffffff821682036102ba57565b6044359065ffffffffffff821682036102ba57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102ba5760803660031901126102ba576106126105fe6004356105e081610549565b6044356105ec81610549565b6105f461055a565b9160243590611320565b604051918291602083526020830190610599565b0390f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba576104b660243560043561067d82610549565b805f525f80516020612c158339815191526020526106a1600160405f200154611bd4565b611d85565b346102ba5760403660031901126102ba576024356106c381610549565b336001600160a01b038216036106df576104b690600435611dbb565b60405163334bd91960e11b8152600490fd5b346102ba5760203660031901126102ba5760043561070e81610549565b610716611a63565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156107cc57506001546001600160a01b0391821691811682146104b8576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612c3583398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761081957604052565b6107ea565b606081019081106001600160401b0382111761081957604052565b608081019081106001600160401b0382111761081957604052565b90601f801991011681019081106001600160401b0382111761081957604052565b604051906108828261081e565b565b60405190610882826107fe565b6001600160401b03811161081957601f01601f191660200190565b81601f820112156102ba578035906108c382610891565b926108d16040519485610854565b828452602083830101116102ba57815f926020809301838601378301015290565b346102ba5760603660031901126102ba5761090b61056f565b6044356001600160401b0381116102ba576020916109306109439236906004016108ac565b906004355f526003845260405f20611e84565b604051908152f35b9181601f840112156102ba578235916001600160401b0383116102ba57602083818601950101116102ba57565b346102ba5760203660031901126102ba576001600160401b036004358181116102ba576109a990369060040161094b565b5f80516020612c55833981519152549260ff8460401c1615931680159081610aa8575b6001149081610a9e575b159081610a95575b50610a83575f80516020612c55833981519152805467ffffffffffffffff19166001179055610a119183610a5f57611f9d565b610a1757005b5f80516020612c55833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612c55833981519152805460ff60401b1916600160401b179055611f9d565b60405163f92ee8a960e01b8152600490fd5b9050155f6109de565b303b1591506109d6565b8491506109cc565b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576020604051614e208152f35b346102ba575f3660031901126102ba576005546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b346102ba575f3660031901126102ba576004546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576001546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57602060ff610c9c602435610c6e81610549565b6004355f525f80516020612c15833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346102ba5760603660031901126102ba576106126105fe600435610ccb81610549565b610cd3610584565b906024359061154e565b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57600435610d3e81610549565b6024356001600160401b0381116102ba575f91610d608392369060040161094b565b90816040519283928337810184815203915af4610dad610d7e611647565b91610d9f604051938492151560208401526040808401526060830190610599565b03601f198101835282610854565b805190602001fd5b346102ba575f3660031901126102ba5760206040515f8152f35b346102ba575f3660031901126102ba5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57610e6f61056f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610ed15763ffffffff610ebc6040926004355f526003602052835f2061215c565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102ba5760203660031901126102ba576004355f526002602052602060405f2054604051908152f35b346102ba5760403660031901126102ba576104b6602435600435610f3082610549565b805f525f80516020612c15833981519152602052610f54600160405f200154611bd4565b611dbb565b346102ba5760803660031901126102ba57602435610f7681610549565b610f7e610584565b90606435906001600160401b0382116102ba57602092610fa56109439336906004016108ac565b91600435611732565b346102ba5760a03660031901126102ba57602435600435610fce82610549565b60443591610fda61055a565b90608435906001600160401b0382116102ba57610ffc600492369084016108ac565b611004611a63565b5f546020906110299061101d906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa92831561050b575f93611168575b506001600160a01b039283163303611156576001546001600160a01b03168381166110cb575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a36104b660015f80516020612c3583398151915255565b909360405194611102866110f4602082019363724ab0f760e11b8552858c898d602487016118bc565b03601f198101885287610854565b62042e305a10611144575f6110b2938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611071565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61118b91935060203d602011611192575b6111838183610854565b8101906112bc565b915f61104b565b503d611179565b346102ba575f3660031901126102ba575f546040516001600160a01b039091168152602090f35b346102ba5760403660031901126102ba5760206109436024356111e281610549565b600435611939565b346102ba575f3660031901126102ba5760206040516203d0908152f35b346102ba575f3660031901126102ba57602060405160018152f35b519081151582036102ba57565b908160209103126102ba5761124390611222565b90565b6040513d5f823e3d90fd5b81601f820112156102ba5780519061126882610891565b926112766040519485610854565b828452602083830101116102ba57815f9260208093018386015e8301015290565b906020828203126102ba5781516001600160401b0381116102ba576112439201611251565b908160209103126102ba575161124381610549565b9061124391602081526112f08251606060208401526080830190610599565b9060606040611310602086015194601f1995868683030184870152610599565b9401519282850301910152610599565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052938416604482015265ffffffffffff8516606482015260609594909391925f856084817f000000000000000000000000000000000000000000000000000000000000000087165afa94851561050b575f956114ea575b5060405163fbfa77cf60e01b81526020816004818888165afa90811561050b57611406945f92859284916114cb575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff90921660248301529094859190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa92831561050b575f936114a5575b50611445929361154e565b9082511580159061149b575b8015611491575b61146157505050565b610d9f939450906112439291611475610875565b92835260208301526040820152604051928391602083016112d1565b5081511515611458565b5080511515611451565b61144593506114c5903d805f833e6114bd8183610854565b810190611297565b9261143a565b6114e4915060203d602011611192576111838183610854565b5f6113c9565b6114ff9195503d805f833e6114bd8183610854565b935f61139a565b9061124392915f52600360205260405f20611e84565b519063ffffffff821682036102ba57565b91908260409103126102ba57611243602061154784611222565b930161151c565b92915f8060609565ffffffffffff6040519460209663d0f1f90160e01b8888015260248701521660448501526044845261158784610839565b60405193846115b487820192639f86fd8560e01b8452306024840152604060448401526064830190610599565b03946115c8601f1996878101835282610854565b51915afa506115e66115d8611647565b8380825183010191016120db565b9015611639578083806115fe9351830101910161152d565b929061160957505050565b6112439293945061162d604051948592830191909163ffffffff6020820193169052565b03908101835282610854565b809150519182156102ba5701fd5b3d15611671573d9061165882610891565b916116666040519384610854565b82523d5f602084013e565b606090565b60405190611683826107fe565b60606020838281520152565b906020828203126102ba5781516001600160401b03928382116102ba5701906040828203126102ba57604051926116c5846107fe565b82518181116102ba57826116da918501611251565b845260208301519081116102ba576116f29201611251565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261124392910190610599565b9261174290929192828486612335565b92909361174d611676565b938051806118a0575b5050841593841561180a575b8415611779575b505050506117745790565b505f90565b6020809495506117a4910151604051958694859463530e1d4360e01b865260601c90600486016116fa565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561050b575f916117eb575b50155f808080611769565b611804915060203d602011610504576104f68183610854565b5f6117e0565b5f549094506001600160a01b031660208486519261183d604051948593849363530e1d4360e01b855289600486016116fa565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561050b575f91611881575b501593611762565b61189a915060203d602011610504576104f68183610854565b5f611879565b6118b492955060208091830101910161168f565b925f80611756565b919360a093611243969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610599565b634e487b7160e01b5f52601160045260245ffd5b8115611912570490565b634e487b7160e01b5f52601260045260245ffd5b906001820180921161193457565b6118f4565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa90811561050b575f91611a46575b50159182156119c2575b505090506119bc576112439161245a565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa91821561050b575f92611a29575b505015805f806119ab565b611a3f9250803d10610504576104f68183610854565b5f80611a1e565b611a5d9150843d8611610504576104f68183610854565b5f6119a1565b5f80516020612c358339815191526002815414611a805760029055565b604051633ee5aeb560e01b8152600490fd5b6004546001600160a01b0316606082901c03611bc2575f52600360205260405f209065ffffffffffff91824211611ba357824216926001820191825415611b95575b611add81612a75565b509590845493835480155f14611b7657505f975b6001600160d01b0398808a1615611b7057611b0c9088612133565b50505b82611b64575b505015611b4e575050610882935090611b30611b3692611e61565b90612133565b90919082549060031b91821b915f19901b1916179055565b61088295611b5d931691612b37565b505061254f565b16821490505f80611b15565b50611b0f565b5f1990808281011161193457855f5260205f2001015460301c97611af1565b611b9e83612522565b611ad4565b6040516306dfcc6560e41b815260306004820152426024820152604490fd5b6040516386eab41b60e01b8152600490fd5b5f8181525f80516020612c158339815191526020908152604080832033845290915290205460ff16156107cc5750565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612c158339815191529060ff166119bc575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612c158339815191529060ff905b5416611d7e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b5f8181525f80516020612c15833981519152602081815260408084206001600160a01b038716855290915290912060ff90611d1a565b5f8181525f80516020612c15833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611d7e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b908160209103126102ba576112439061151c565b5f1981019190821161193457565b90600163ffffffff8093160191821161193457565b91805115611f5d5780602080611e9f93518301019101611e4d565b91611eaa8382612642565b92611ebb845165ffffffffffff1690565b9065ffffffffffff8085169216828114611f515782119182611ef1575b5050611ee8576112439250612572565b50506020015190565b909150611efe8354611e61565b63ffffffff831614918215611f17575b50505f80611ed8565b611f49919250611f32611f2c611f3e92611e6f565b85612642565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611f0e565b50505050506020015190565b5061124391612572565b9190916040818403126102ba578035611f7f81610549565b9260208201356001600160401b0381116102ba5761124392016108ac565b611fa991810190611f67565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa90811561050b575f916120bc575b50156120aa5761203e6040916120396120849461201e6126aa565b60018060a01b03166001600160601b0360a01b5f5416175f55565b61276d565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661209a575b5001516001600160a01b031690565b90811661208e5750565b61209790611caf565b50565b6120a390611c04565b505f612075565b6040516362df054560e01b8152600490fd5b6120d5915060203d602011610504576104f68183610854565b5f612003565b9190916040818403126102ba576120f181611222565b9260208201516001600160401b0381116102ba576112439201611251565b9060405161211c816107fe565b915465ffffffffffff8116835260301c6020830152565b8054821015612148575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b91908254905f829160058411612204575b612178935085612a13565b9081156121f8576121f16121e86121e26121d86121aa6121a561219a88611e61565b895f5260205f200190565b61210f565b9660016121d160206121c28b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101612133565b90549060031b1c90565b93611e61565b63ffffffff1690565b6001939291565b5f925082915081908190565b919261220f816128e8565b81039081116119345761217893865f52612238611f3e8360205f200165ffffffffffff90541690565b65ffffffffffff8516101561224e57509161216d565b92915061225a90611926565b9061216d565b6040519061226d8261081e565b60606040838281528260208201520152565b906020828203126102ba5781516001600160401b03928382116102ba5701906060828203126102ba57604051926122b58461081e565b82518181116102ba57826122ca918501611251565b845260208301518181116102ba57826122e4918501611251565b602085015260408301519081116102ba576122ff9201611251565b604082015290565b908160209103126102ba575190565b60409065ffffffffffff61124394931681528160208201520190610599565b90939293612341612260565b9480518061243e575b5050600454606083901c6001600160a01b03918216148015929190612423575b505061241b575f546123b092919060209061238f9061101d906001600160a01b031681565b8187015190604051808097819463810da75d60e01b83528860048401612316565b03915afa90811561050b576123e3935f926123e8575b506123d79192604087015191611506565b90818082109118021890565b915190565b6123d7925061240e9060203d602011612414575b6124068183610854565b810190612307565b916123c6565b503d6123fc565b505090515f91565b60055481166001600160a01b03169116141590505f8061236a565b61245292965060208091830101910161227f565b935f8061234a565b6004549091606083901c6001600160a01b039283161480159290612507575b5050611774575f546004919060209061249c9061101d906001600160a01b031681565b60405163bd49c35f60e01b815293849182905afa90811561050b57611243925f926124e2575b506124d5905f52600260205260405f2090565b5490818082109118021890565b6124d59192506125009060203d602011612414576124068183610854565b91906124c2565b60055481166001600160a01b03169116141590505f80612479565b8054600160401b8110156108195761253f91600182018155612133565b8154905f199060031b1b19169055565b90815491600160401b8310156108195782611b3691600161088295018155612133565b908154905f8291600584116125dc575b61258d935084612a13565b806125b557505f905b6001600160d01b038216156119bc576112439160016121d89201612133565b6125cf6125c46125d692611e61565b835f5260205f200190565b5460301c90565b90612596565b91926125e7816128e8565b81039081116119345761258d93855f5265ffffffffffff808360205f20015416908516105f14612618575091612582565b92915061262490611926565b90612582565b60405190612637826107fe565b5f6020838281520152565b9061266b61266561268c9261265561262a565b5061265e61262a565b5084612133565b5061210f565b91600165ffffffffffff845116936020828060d01b03910151169101612133565b9054906040519261269c846107fe565b835260031b1c602082015290565b6126b2612aae565b6126ba612aae565b60015f80516020612c3583398151915255565b604051906126da8261081e565b5f6040838281528260208201520152565b8091039060a082126102ba576060604051926127068461081e565b126102ba5760809060405161271a8161081e565b815161272581610549565b8152602082015161273581610549565b6020820152604082015161274881610549565b60408201528352606081015161275d81610549565b602084015201516122ff81610549565b6127756126cd565b5061278b815191602080809483010191016126eb565b80820180516040516302910f8b60e31b8082526001600160a01b039283166004830152939491939082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa90811561050b575f916128cb575b50156104ca578161282f91604087019561280b875160018060a01b031690565b6040519283526001600160a01b031660048301529092839190829081906024820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa91821561050b575f926128ae575b50501561289c5751600480546001600160a01b039283166001600160a01b03199182161790915591516005805490931691161790555190565b604051631f0853c160e21b8152600490fd5b6128c49250803d10610504576104f68183610854565b5f80612863565b6128e29150833d8511610504576104f68183610854565b5f6127eb565b600181111561124357600181600160801b811015612a01575b6129a961299f61299561298b6129816129776129b597600488600160401b6129b09a10156129f4575b6401000000008110156129e7575b620100008110156129da575b6101008110156129ce575b60108110156129c2575b10156129ba575b60030260011c612970818b611908565b0160011c90565b612970818a611908565b6129708189611908565b6129708188611908565b6129708187611908565b6129708186611908565b8093611908565b821190565b900390565b60011b612960565b811c9160021b91612959565b60081c91811b9161294f565b60101c9160081b91612944565b60201c9160101b91612938565b60401c9160201b9161292a565b50600160401b9050608082901c612901565b91905b838210612a235750505090565b909192808316906001818518811c830180931161193457855f5265ffffffffffff808460205f20015416908516105f14612a62575050925b9190612a16565b9094935081018091116119345791612a5b565b805480612a865750505f905f905f90565b5f19918183810111611934575f5260205f2001015460019165ffffffffffff82169160301c90565b60ff5f80516020612c558339815191525460401c1615612aca57565b604051631afcd79f60e31b8152600490fd5b8054600160401b81101561081957612af991600182018155612133565b612b2457815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293928015612bea57612b4e612b5991611e61565b825f5260205f200190565b9182549265ffffffffffff91828516928116808411612bd857879303612b9f5750612b9892509065ffffffffffff82549181199060301b169116179055565b60301c9190565b915050612bd391612bbf612bb1610884565b65ffffffffffff9093168352565b6001600160d01b0386166020830152612adc565b612b98565b604051632520601d60e01b8152600490fd5b5090612c0f91612bfb612bb1610884565b6001600160d01b0385166020830152612adc565b5f919056fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220f6cce0efc162f0e8ffb0cabef02f41afd760a4aaf699150effb496d0e7fe159b64736f6c63430008190033","sourceMap":"13600:2428:94:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;13600:2428:94;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;13600:2428:94;;;;;;;;;;3551:87:23;-1:-1:-1;;;1134:40:32;;-1:-1:-1;3551:87:23;;;13600:2428:94;-1:-1:-1;13600:2428:94;;;;;;;;-1:-1:-1;;13600:2428:94;;;;;;1537:38:89;-1:-1:-1;;;;;13600:2428:94;;;;;;;;;;;;-1:-1:-1;;13600:2428:94;;;;;;1632:54:89;-1:-1:-1;;;;;13600:2428:94;;;;;;;;;;;;-1:-1:-1;;13600:2428:94;;;;;;1743:56:89;-1:-1:-1;;;;;13600:2428:94;;;;;;;;;;;;-1:-1:-1;;13600:2428:94;;;;;;-1:-1:-1;;;;;13600:2428:94;;;;;;;;3361:103:30;;;:::i;:::-;13600:2428:94;;-1:-1:-1;;;4285:48:89;;4322:10;13600:2428:94;4285:48:89;;13600:2428:94;;;;;-1:-1:-1;;;;;4295:16:89;13600:2428:94;4285:48:89;;;;;;;-1:-1:-1;4285:48:89;;;13600:2428:94;4284:49:89;;4280:99;;-1:-1:-1;;;;;13600:2428:94;-1:-1:-1;;4322:10:89;297:2:101;13600:2428:94;;267:46:101;4459:27:89;;;;13600:2428:94;;4459:15:89;13600:2428:94;;;;;;;4459:27:89;13600:2428:94;4459:37:89;4455:87;;4654:38;4552:27;4654:38;4552:27;;;13600:2428:94;;4459:15:89;13600:2428:94;;;;;;;4552:27:89;13600:2428:94;4631:6:89;;;;:::i;:::-;13600:2428:94;;;;;;;;;;;;;4654:38:89;;;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;13600:2428:94;3860:283:30;3426:1;13600:2428:94;4455:87:89;13600:2428:94;;-1:-1:-1;;;4519:12:89;;13600:2428:94;;4519:12:89;4280:99;13600:2428:94;;-1:-1:-1;;;4356:12:89;;13600:2428:94;;4356:12:89;4285:48;;;;13600:2428:94;4285:48:89;13600:2428:94;4285:48:89;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;13600:2428:94:-;;;;;;-1:-1:-1;;13600:2428:94;;;;;;-1:-1:-1;13600:2428:94;-1:-1:-1;;;;;;;;;;;13600:2428:94;;;4919:24:23;13600:2428:94;-1:-1:-1;13600:2428:94;4919:24:23;13600:2428:94;;;;;;;;-1:-1:-1;;;;;13600:2428:94;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;13600:2428:94;;;;;;;;-1:-1:-1;;13600:2428:94;;;;:::o;:::-;;;;;;-1:-1:-1;;13600:2428:94;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;13600:2428:94;;;;;;322:32:82;-1:-1:-1;;;;;13600:2428:94;;;;;;;;;;;;-1:-1:-1;;13600:2428:94;;;;5350:25:23;13600:2428:94;;;;;;;:::i;:::-;;-1:-1:-1;13600:2428:94;-1:-1:-1;;;;;;;;;;;13600:2428:94;;3202:4:23;4919:24;13600:2428:94;-1:-1:-1;13600:2428:94;4919:24:23;13600:2428:94;3202:4:23;:::i;:::-;5350:25;:::i;13600:2428:94:-;;;;;;-1:-1:-1;;13600:2428:94;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;13600:2428:94;;6441:34:23;6437:102;;6549:37;13600:2428:94;;;6549:37:23;:::i;6437:102::-;13600:2428:94;;-1:-1:-1;;;6498:30:23;;13600:2428:94;;6498:30:23;13600:2428:94;;;;;;-1:-1:-1;;13600:2428:94;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;966:10:28;-1:-1:-1;13600:2428:94;;;;;;;;;;1356:26:89;;13600:2428:94;;4468:23:23;4464:108;;-1:-1:-1;4861:4:89;13600:2428:94;-1:-1:-1;;;;;13600:2428:94;;;;;;4861:13:89;;4857:63;;-1:-1:-1;;;;;;13600:2428:94;;;4861:4:89;13600:2428:94;4958:14:89;-1:-1:-1;;4958:14:89;4861:4;-1:-1:-1;;;;;;;;;;;13600:2428:94;;4464:108:23;13600:2428:94;;;;4514:47:23;;;;;;966:10:28;13600:2428:94;4514:47:23;;13600:2428:94;;;;;4514:47:23;13600:2428:94;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13600:2428:94;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;13600:2428:94;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;13600:2428:94;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13600:2428:94;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;13600:2428:94;;;;;;-1:-1:-1;;13600:2428:94;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;13600:2428:94;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;13600:2428:94;;;;;;:::i;:::-;;;-1:-1:-1;;;;;13600:2428:94;;;;;;;2045:63:92;13600:2428:94;;;;;;:::i;:::-;;;;-1:-1:-1;13600:2428:94;2045:16:92;13600:2428:94;;;-1:-1:-1;13600:2428:94;2045:63:92;:::i;:::-;13600:2428:94;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13600:2428:94;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;13600:2428:94;;;;-1:-1:-1;;;;;13600:2428:94;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;13600:2428:94;;;;;;;4301:16:26;13600:2428:94;;4726:16:26;;:34;;;;13600:2428:94;4805:1:26;4790:16;:50;;;;13600:2428:94;4855:13:26;:30;;;;13600:2428:94;4851:91:26;;;-1:-1:-1;;;;;;;;;;;13600:2428:94;;-1:-1:-1;;13600:2428:94;;;;;718:4:82;;4951:18:26;4979:67;;718:4:82;:::i;:::-;5066:101:26;;13600:2428:94;5066:101:26;-1:-1:-1;;;;;;;;;;;13600:2428:94;;-1:-1:-1;;;;13600:2428:94;;;;;-1:-1:-1;13600:2428:94;;5142:14:26;;13600:2428:94;;5142:14:26;13600:2428:94;4979:67:26;-1:-1:-1;;;;;;;;;;;13600:2428:94;;-1:-1:-1;;;;13600:2428:94;-1:-1:-1;;;13600:2428:94;;;718:4:82;:::i;4851:91:26:-;13600:2428:94;;-1:-1:-1;;;4908:23:26;;13600:2428:94;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;13600:2428:94;;;;;;-1:-1:-1;;13600:2428:94;;;;;;13796:36;-1:-1:-1;;;;;13600:2428:94;;;;;;;;;;;;-1:-1:-1;;13600:2428:94;;;;;;;1253:6:89;13600:2428:94;;;;;;;;;-1:-1:-1;;13600:2428:94;;;;1267:23:92;13600:2428:94;;;-1:-1:-1;;;;;13600:2428:94;;;;;;;;;;;;;;-1:-1:-1;;13600:2428:94;;;;;;;1356:26:89;13600:2428:94;;;;;;;;;-1:-1:-1;;13600:2428:94;;;;;;;;-1:-1:-1;;;;;13600:2428:94;;;;;;;;;;;;;;-1:-1:-1;;13600:2428:94;;;;;;13745:45;-1:-1:-1;;;;;13600:2428:94;;;;;;;;;;;;-1:-1:-1;;13600:2428:94;;;;;;;;-1:-1:-1;;;;;13600:2428:94;;;;;;;;;;;;;;-1:-1:-1;;13600:2428:94;;;;;;961:42:92;-1:-1:-1;;;;;13600:2428:94;;;;;;;;;;;;-1:-1:-1;;13600:2428:94;;;;;;3901:31:23;13600:2428:94;;;;;:::i;:::-;;;-1:-1:-1;13600:2428:94;-1:-1:-1;;;;;;;;;;;13600:2428:94;;;-1:-1:-1;13600:2428:94;;;;;;;;;;;;;;;;;3901:31:23;13600:2428:94;;;;;;;;;;;;;;;;-1:-1:-1;;13600:2428:94;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;13600:2428:94;;;;;;13838:45;-1:-1:-1;;;;;13600:2428:94;;;;;;;;;;;;-1:-1:-1;;13600:2428:94;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;13600:2428:94;;;;-1:-1:-1;13600:2428:94;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:88;;;;477:31;416:25;;:::i;:::-;13600:2428:94;;;;;;;;;;477:31:88;;13600:2428:94;;;;;;;;;;;:::i;:::-;477:31:88;13600:2428:94;;477:31:88;;;;;;:::i;:::-;518:79;;;13600:2428:94;518:79:88;;13600:2428:94;;;;;;-1:-1:-1;;13600:2428:94;;;;;;;;;;;;;;;;;-1:-1:-1;;13600:2428:94;;;;;;;-1:-1:-1;;;;;404:28:82;13600:2428:94;;;;;;;;;;-1:-1:-1;;13600:2428:94;;;;;;1439:41:89;-1:-1:-1;;;;;13600:2428:94;;;;;;;;;;;;-1:-1:-1;;13600:2428:94;;;;;;:::i;:::-;449:5:95;-1:-1:-1;;;;;13600:2428:94;435:10:95;:19;431:71;;13600:2428:94;14455:67;13600:2428;;;;-1:-1:-1;13600:2428:94;14455:16;13600:2428;;;-1:-1:-1;13600:2428:94;14455:67;:::i;:::-;13600:2428;;;;;;;;;;;;;;;;;;;431:71:95;13600:2428:94;;-1:-1:-1;;;477:14:95;;13600:2428:94;;477:14:95;13600:2428:94;;;;;;-1:-1:-1;;13600:2428:94;;;;;;-1:-1:-1;13600:2428:94;2009:67:89;13600:2428:94;;;;-1:-1:-1;13600:2428:94;;;;;;;;;;;;;;-1:-1:-1;;13600:2428:94;;;;5767:26:23;13600:2428:94;;;;;;;:::i;:::-;;-1:-1:-1;13600:2428:94;-1:-1:-1;;;;;;;;;;;13600:2428:94;;3202:4:23;4919:24;13600:2428:94;-1:-1:-1;13600:2428:94;4919:24:23;13600:2428:94;3202:4:23;:::i;:::-;5767:26;:::i;13600:2428:94:-;;;;;;-1:-1:-1;;13600:2428:94;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;;;;13600:2428:94;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;13600:2428:94;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;13600:2428:94;;;;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;-1:-1:-1;13600:2428:94;;;5246:21:89;;:13;;-1:-1:-1;;;;;13600:2428:94;5246:13:89;13600:2428:94;;-1:-1:-1;;;;;13600:2428:94;;;5246:21:89;13600:2428:94;;-1:-1:-1;;;5246:23:89;;13600:2428:94;;;;;5246:23:89;;;;;;;-1:-1:-1;5246:23:89;;;13600:2428:94;-1:-1:-1;;;;;;13600:2428:94;;;5232:10:89;:37;5228:87;;5341:4;13600:2428:94;-1:-1:-1;;;;;13600:2428:94;;;;5355:469:89;;13600:2428:94;-1:-1:-1;;13600:2428:94;;;;;;;;;;;;;;;;5839:55:89;;13600:2428:94;;;;5839:55:89;;;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;13600:2428:94;3860:283:30;5355:469:89;13600:2428:94;;;;5435:94:89;;;;13600:2428:94;5435:94:89;;;;;;;;;;;;13600:2428:94;5435:94:89;;;:::i;:::-;;13600:2428:94;;5435:94:89;;;;;;:::i;:::-;13600:2428:94;5548:9:89;:51;5544:118;;-1:-1:-1;5839:55:89;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;13600:2428:94;;-1:-1:-1;;;5626:21:89;;13600:2428:94;;5626:21:89;5228:87;13600:2428:94;;-1:-1:-1;;;5292:12:89;;13600:2428:94;;5292:12:89;5246:23;;;;;13600:2428:94;5246:23:89;13600:2428:94;5246:23:89;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;13600:2428:94;;;;;;-1:-1:-1;;13600:2428:94;;;;;;;;-1:-1:-1;;;;;13600:2428:94;;;;;;;;;;;;;;-1:-1:-1;;13600:2428:94;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;13600:2428:94;;;;;;;1150:7:89;13600:2428:94;;;;;;;;;-1:-1:-1;;13600:2428:94;;;;;;;2700:1:89;13600:2428:94;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;13600:2428:94;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;13600:2428:94;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;15098:928::-;13600:2428;;-1:-1:-1;;;15315:99:94;;-1:-1:-1;;;;;13600:2428:94;;;15315:99;;;13600:2428;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13600:2428:94;;;15334:20;13600:2428;;15315:99;;;;;;;;;;;15098:928;-1:-1:-1;13600:2428:94;;-1:-1:-1;;;15508:32:94;;;13600:2428;15315:99;13600:2428;;;;15508:32;;;;;;;15468:84;15508:32;15315:99;15508:32;;;;;;;15098:928;-1:-1:-1;13600:2428:94;;-1:-1:-1;;;15468:84:94;;-1:-1:-1;;;;;13600:2428:94;;;15315:99;15468:84;;13600:2428;;;;;;;;;;;;;-1:-1:-1;13600:2428:94;;;;;;;;;15468:84;;15479:11;;13600:2428;15468:84;;;;;;;15315:99;15468:84;;;15098:928;15599:53;;;;;:::i;:::-;13600:2428;;;15667:21;;;:52;;;15098:928;15667:88;;;;15098:928;15663:357;;15098:928;;;:::o;15663:357::-;15778:231;13600:2428;;;;15778:231;13600:2428;;;;:::i;:::-;;;;15508:32;15806:189;;13600:2428;;15806:189;;13600:2428;;;15778:231;;;15508:32;15778:231;;;:::i;15667:88::-;13600:2428;;;15723:32;;15667:88;;:52;13600:2428;;;15692:27;;15667:52;;15468:84;15599:53;15468:84;;;;;;15315:99;15468:84;;;;;;:::i;:::-;;;;;:::i;:::-;;;;15508:32;;;;;;;;;;;;;;:::i;:::-;;;;15315:99;;;;;;;;;;;;;;:::i;:::-;;;;;1914:201:92;;2045:63;1914:201;;-1:-1:-1;13600:2428:94;2045:16:92;13600:2428:94;;;-1:-1:-1;13600:2428:94;2045:63:92;:::i;13600:2428:94:-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;14535:557::-;;;-1:-1:-1;14672:12:94;13600:2428;;;;;14818:144;;;;;;;;;;;;;13600:2428;;;;;;;14818:144;;;;;:::i;:::-;13600:2428;;716:88:95;;13600:2428:94;716:88:95;;;;;;;;;783:4;14818:144:94;716:88:95;;13600:2428:94;;;;;;;;;;;:::i;:::-;716:88:95;13600:2428:94;716:88:95;13600:2428:94;;716:88:95;;;;;;;;:::i;:::-;698:107;;;;;857:45;698:107;;:::i;:::-;13600:2428:94;;;;857:45:95;;;;;;:::i;:::-;916:8;;912:175;;13600:2428:94;;;14726:288;13600:2428;;14726:288;;;;;;:::i;:::-;15025:61;;;;14535:557;;;:::o;15025:61::-;15058:17;13600:2428;;;;15058:17;13600:2428;;15058:17;;;;;13600:2428;;;;;;;;;;;;15058:17;;;;;;;;;:::i;912:175:95:-;13600:2428:94;;;;944:22:95;;;940:36;;990:87;;13600:2428:94;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;13600:2428:94;;;;:::o;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;13600:2428:94;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;13600:2428:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:89:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;13600:2428:94;;:::i;:::-;;;;3086:20:89;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:89;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;13600:2428:94;;;;;;;;;;3430:180:89;;467:2:101;13600:2428:94;3430:180:89;;;;;:::i;:::-;;13600:2428:94;3444:31:89;-1:-1:-1;;;;;13600:2428:94;3430:180:89;;;;;;;-1:-1:-1;3430:180:89;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;13600:2428:94;;;-1:-1:-1;;;;;;13600:2428:94;3248:161:89;3354:37;;;13600:2428:94;3248:161:89;13600:2428:94;;;;;;;;;;3248:161:89;;;;;;;:::i;:::-;;13600:2428:94;3262:29:89;-1:-1:-1;;;;;13600:2428:94;3248:161:89;;;;;;;-1:-1:-1;3248:161:89;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;13600:2428:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;8889:1:99;13600:2428:94;;;;;;;:::o;:::-;;:::i;3740:389:89:-;3918:5;13600:2428:94;;;-1:-1:-1;;;3853:71:89;;;-1:-1:-1;;;;;13600:2428:94;;;3853:71:89;;;13600:2428:94;;;;;;;;3740:389:89;;13600:2428:94;3853:71:89;;13600:2428:94;;3853:71:89;13600:2428:94;;;3867:29:89;13600:2428:94;;3853:71:89;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;13600:2428:94;;;3852:181:89;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;13600:2428:94;;3945:88:89;;;-1:-1:-1;;;;;13600:2428:94;;3853:71:89;3945:88;;13600:2428:94;467:2:101;13600:2428:94;;;;;;;;-1:-1:-1;13600:2428:94;;;;;;;;3959:31:89;13600:2428:94;3945:88:89;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:89;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;3470:384:30;-1:-1:-1;;;;;;;;;;;1991:1:30;13600:2428:94;;3670:20:30;3666:88;;1991:1;13600:2428:94;;3470:384:30:o;3666:88::-;13600:2428:94;;-1:-1:-1;;;3713:30:30;;;;;3164:253:92;3261:7;13600:2428:94;-1:-1:-1;;;;;13600:2428:94;467:2:101;13600:2428:94;;;3261:31:92;3257:85;;-1:-1:-1;13600:2428:94;3351:16:92;13600:2428:94;;;-1:-1:-1;13600:2428:94;;;837:15:75;;;14374:24:71;14370:103;;837:15:75;;13600:2428:94;6360:12:99;;;;13600:2428:94;;;6360:24:99;6356:75;;3164:253:92;6474:30:99;;;:::i;:::-;13600:2428:94;;;;;;;;10446:8:73;;:63;:8;;;:63;-1:-1:-1;10446:63:73;;-1:-1:-1;;;;;13600:2428:94;;;;10726:7:99;13600:2428:94;;10736:17:99;;;;:::i;:::-;10726:31;;;6604:24;;;10726:31;-1:-1:-1;;6600:188:99;;;6657:7;;6644:29;6657:7;;;;6644:21;6657:7;;:::i;:::-;6644:21;;:::i;:::-;:29;13600:2428:94;;;;;;;;;;;;;;;;;;;;;6600:188:99;6753:24;13600:2428:94;8310:38:73;13600:2428:94;;8310:38:73;;:::i;:::-;6753:24:99;;;:::i;6604:::-;13600:2428:94;6614:14:99;;;-1:-1:-1;6604:24:99;;;;10726:31;;;;10446:63:73;13600:2428:94;;;;;;;;;;13267:109:99;-1:-1:-1;13267:109:99;13600:2428:94;-1:-1:-1;13267:109:99;;;13600:2428:94;;;10446:63:73;;;6356:75:99;6400:20;;;:::i;:::-;6356:75;;14370:103:71;13600:2428:94;;-1:-1:-1;;;14421:41:71;;14452:2;3261:7:92;14421:41:71;;13600:2428:94;837:15:75;13600:2428:94;;;;;;14421:41:71;3257:85:92;13600:2428:94;;-1:-1:-1;;;3315:16:92;;3261:7;;3315:16;4148:103:23;-1:-1:-1;13600:2428:94;;;-1:-1:-1;;;;;;;;;;;13600:2428:94;;;;;;;;966:10:28;13600:2428:94;;;;;;;;;;4468:23:23;4464:108;;4148:103;:::o;7270:387::-;-1:-1:-1;;;;;13600:2428:94;;-1:-1:-1;13600:2428:94;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;13600:2428:94;;;;-1:-1:-1;13600:2428:94;;;;;;;;;;;-1:-1:-1;;;;;13600:2428:94;;;;;;;;;;-1:-1:-1;;13600:2428:94;7509:4:23;13600:2428:94;;;966:10:28;;-1:-1:-1;;;;;13600:2428:94;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;13600:2428:94;;-1:-1:-1;13600:2428:94;;;;;;;;;1356:26:89;;-1:-1:-1;;;;;;;;;;;2887:71:23;13600:2428:94;;3901:31:23;13600:2428:94;;;;-1:-1:-1;13600:2428:94;;;;;;;;;;;-1:-1:-1;;;;;13600:2428:94;;;;;;;;;;-1:-1:-1;;13600:2428:94;7509:4:23;13600:2428:94;;;966:10:28;;-1:-1:-1;;;;;13600:2428:94;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;13600:2428:94;;;-1:-1:-1;;;;;;;;;;;13600:2428:94;;;;;;;;-1:-1:-1;;;;;13600:2428:94;;;;;;;;;;;;3901:31:23;13600:2428:94;7892:388:23;-1:-1:-1;13600:2428:94;;;-1:-1:-1;;;;;;;;;;;13600:2428:94;;;;;;;;-1:-1:-1;;;;;13600:2428:94;;;;;;;;;;;;;;;;-1:-1:-1;13600:2428:94;;;;;;;;;;;-1:-1:-1;;;;;13600:2428:94;;;;;;;;;;-1:-1:-1;;13600:2428:94;;;966:10:28;;-1:-1:-1;;;;;13600:2428:94;;8155:40:23;-1:-1:-1;;8155:40:23;13600:2428:94;8209:11:23;:::o;13600:2428:94:-;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;13600:2428:94;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:99:-;;13600:2428:94;;7686:17:99;7682:83;;13600:2428:94;7789:27:99;13600:2428:94;7789:27:99;13600:2428:94;;7789:27:99;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;13600:2428:94;;;;;;;;;;;;;;;;7888:22:99;;;7884:77;;7975:21;-1:-1:-1;7975:84:99;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;13600:2428:94;8075:24:99;:::o;7975:84::-;13600:2428:94;;;8009:16:99;13600:2428:94;;8009:16:99;:::i;:::-;13600:2428:94;;;8001:24:99;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;13600:2428:94;;;;;8029:23:99;13600:2428:94;;;;8029:29:99;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;13600:2428:94;7926:24:99;:::o;7682:83::-;7726:28;;;;:::i;13600:2428:94:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;13600:2428:94;;;;;;;;:::i;5907:716:89:-;6030:34;5907:716;6030:34;;;;:::i;:::-;13600:2428:94;;-1:-1:-1;;;6080:41:89;;-1:-1:-1;;;;;13600:2428:94;;;6080:41:89;;;13600:2428:94;;;;;6080:41:89;13600:2428:94;;;6090:13:89;13600:2428:94;;6080:41:89;;;;;;;-1:-1:-1;6080:41:89;;;5907:716;6079:42;;6075:90;;6266:27;13600:2428:94;2684:111:30;6210:14:89;13600:2428:94;2684:111:30;;;:::i;:::-;13600:2428:94;;;;;;-1:-1:-1;;;;;13600:2428:94;;-1:-1:-1;13600:2428:94;;;-1:-1:-1;13600:2428:94;;6210:14:89;6266:27;:::i;:::-;6080:41;6311:15;;13600:2428:94;;;;-1:-1:-1;;;;;;13600:2428:94;-1:-1:-1;;;;;13600:2428:94;;;;;;;;;;;-1:-1:-1;;;;;13600:2428:94;;;;6337:143:89;;5907:716;-1:-1:-1;6493:28:89;13600:2428:94;-1:-1:-1;;;;;13600:2428:94;;;;;;;6489:128:89;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;13600:2428:94;;-1:-1:-1;;;6144:10:89;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;13600:2428:94;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;13600:2428:94;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;13600:2428:94;;-1:-1:-1;13600:2428:94;;;-1:-1:-1;13600:2428:94;:::o;:::-;;;;;;;;;;;;8406:869:99;;;13600:2428:94;;8620:15:99;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;13600:2428:94;9219:31:99;13600:2428:94;9130:48:99;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;9130:48;13600:2428:94;:::i;:::-;;9176:1:99;13600:2428:94;9232:17:99;13600:2428:94;;;;;;;;9232:17:99;;13600:2428:94;-1:-1:-1;;;;;13600:2428:94;;;;9219:12:99;;:31;:::i;:::-;13600:2428:94;;;;;;;;;9259:7:99;;:::i;:::-;13600:2428:94;;;;9252:15:99;9176:1;;9188:80;;8406:869::o;9010:62::-;8578:11;;-1:-1:-1;8578:11:99;;-1:-1:-1;8578:11:99;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;13600:2428:94;;;;;;;8939:60:99;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;13600:2428:94;;;;;;8753:55:99;13600:2428:94;;;8753:55:99;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;13600:2428:94;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;13600:2428:94;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;2121:740:92:-;;;;;13600:2428:94;;:::i;:::-;;;;2362:16:92;2358:92;;2121:740;-1:-1:-1;;2464:7:92;13600:2428:94;467:2:101;13600:2428:94;;;-1:-1:-1;;;;;13600:2428:94;;;2464:31:92;;;;;13600:2428:94;2464:56:92;;2121:740;2460:120;;;;-1:-1:-1;13600:2428:94;2637:67:92;;13600:2428:94;;2676:27:92;;2637;;:13;;-1:-1:-1;;;;;13600:2428:94;2637:13:92;13600:2428:94;2637:27:92;2676;;;;13600:2428:94;;;;;;;;;;;2637:67:92;;;2464:7;2637:67;;;:::i;:::-;;;;;;;;;;2611:198;2637:67;-1:-1:-1;2637:67:92;;;2121:740;2763:31;2722:73;2763:31;;13600:2428:94;2763:31:92;;;2722:73;;:::i;:::-;2611:198;3463:5:70;;;;3066;;13600:2428:94;3060:42:70;3371:111;;2611:198:92;2823:21;;2121:740;:::o;2637:67::-;2722:73;2637:67;;;;2676:27;2637:67;2676:27;2637:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;2460:120;-1:-1:-1;;2547:21:92;;-1:-1:-1;;2536:33:92:o;2464:56::-;2499:8;13600:2428:94;;;-1:-1:-1;;;;;13600:2428:94;;;2499:21:92;;;-1:-1:-1;2464:56:92;;;;2358:92;2408:31;;;;;;;;;;;;;:::i;:::-;2358:92;;;;;2867:291;2977:7;13600:2428:94;2867:291:92;;13600:2428:94;;;;-1:-1:-1;;;;;13600:2428:94;;;2977:31:92;;;;13600:2428:94;2977:56:92;;2867:291;2973:95;;;;-1:-1:-1;13600:2428:94;2977:7:92;;13600:2428:94;3094:27:92;;:25;;:13;;-1:-1:-1;;;;;13600:2428:94;3094:13:92;13600:2428:94;3094:25:92;13600:2428:94;;-1:-1:-1;;;3094:27:92;;13600:2428:94;;;;;3094:27:92;;;;;;;3085:66;3094:27;-1:-1:-1;3094:27:92;;;2867:291;3123:27;;;13600:2428:94;;4459:15:89;13600:2428:94;;;;;;;3123:27:92;13600:2428:94;3085:66:92;3463:5:70;;;;3066;;13600:2428:94;3060:42:70;3371:111;;3094:27:92;3123;3094;;;;;;;;;;;;;;;:::i;:::-;;;;;2977:56;3012:8;13600:2428:94;;;-1:-1:-1;;;;;13600:2428:94;;;3012:21:92;;;-1:-1:-1;2977:56:92;;;;13600:2428:94;;;-1:-1:-1;;;13600:2428:94;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;13600:2428:94;;;;;;;;;;;;;;;:::i;6999:207:99:-;;13600:2428:94;;9737:15:73;-1:-1:-1;9762:18:73;9795:7;9801:1;9795:7;;9791:234;;6999:207:99;10049:53:73;;;;;:::i;:::-;10120:8;;;:63;-1:-1:-1;10120:63:73;;-1:-1:-1;;;;;13600:2428:94;;7168:7:99;13600:2428:94;;;7178:12:99;;:17;:12;;:17;:::i;10120:63:73:-;10135:41;10168:7;10135:48;10168:7;;:::i;:::-;10135:41;13267:109:99;;;;;;13089:293;;10135:41:73;13600:2428:94;;;;;10135:48:73;10120:63;;;9791:234;9838:14;;;;;:::i;:::-;13600:2428:94;;;;;;;10049:53:73;13267:109:99;;-1:-1:-1;13267:109:99;13600:2428:94;13267:109:99;;;-1:-1:-1;13267:109:99;;13600:2428:94;;;;;9870:48:73;9866:149;13600:2428:94;;;9938:10:73;9866:149;9791:234;;9866:149;9993:7;;;;;;:::i;:::-;9866:149;9791:234;;13600:2428:94;;;;;;;:::i;:::-;-1:-1:-1;13600:2428:94;;;;;;;:::o;11486:272:99:-;;13600:2428:94;11452:22:73;11718:31:99;11486:272;13600:2428:94;;:::i;:::-;;;;:::i;:::-;;11452:22:73;;:::i;:::-;13600:2428:94;;:::i;:::-;;11718:12:99;13600:2428:94;;;;;11731:17:99;13600:2428:94;;;;;11731:17:99;;13600:2428:94;;11718:12:99;;:31;:::i;:::-;13600:2428:94;;;;;;;;;:::i;:::-;;;;;;11731:17:99;11672:79;;13600:2428:94;11486:272:99;:::o;6893:76:26:-;;;:::i;:::-;;;:::i;:::-;1949:1:30;-1:-1:-1;;;;;;;;;;;13600:2428:94;6893:76:26:o;13600:2428:94:-;;;;;;;:::i;:::-;-1:-1:-1;13600:2428:94;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;3423:520:92:-;13600:2428:94;;:::i;:::-;;3571:30:92;13600:2428:94;;3571:30:92;;;;;;;;;;;:::i;:::-;3654:14;;;13600:2428:94;;;;-1:-1:-1;;;3617:52:92;;;-1:-1:-1;;;;;13600:2428:94;;;3617:52:92;;;13600:2428:94;3654:14:92;;13600:2428:94;;;3654:14:92;13600:2428:94;;;3627:16:92;13600:2428:94;;3617:52:92;;;;;;;-1:-1:-1;3617:52:92;;;3423:520;3616:53;;3612:103;;3768:15;3730:54;3768:15;13600:2428:94;3768:15:92;;13600:2428:94;;;;;;;;;;;;;;;3730:54:92;;;-1:-1:-1;;;;;13600:2428:94;3617:52:92;3730:54;;13600:2428:94;;;;;-1:-1:-1;13600:2428:94;;;;;;;;;3730:54:92;;3740:17;;13600:2428:94;3730:54:92;;;;;;;-1:-1:-1;3730:54:92;;;3423:520;3729:55;;;3725:106;;13600:2428:94;3617:52:92;13600:2428:94;;-1:-1:-1;;;;;13600:2428:94;;;-1:-1:-1;;;;;;13600:2428:94;;;;;;;;;3875:26:92;13600:2428:94;;;;;;;;;;3919:17:92;3423:520;:::o;3725:106::-;13600:2428:94;;-1:-1:-1;;;3807:13:92;;3617:52;;3807:13;3730:54;;;;;;-1:-1:-1;3730:54:92;;;;;;:::i;:::-;;;;;3617:52;;;;;;;;;;;;;;:::i;:::-;;;;18080:5181:70;18246:1;18241:6;;;18237:53;;18246:1;19217:14;-1:-1:-1;;;19278:16:70;;;19274:92;;18080:5181;22827:18;22717;22607;22498;22387;22278;23216:28;19383:15;19898:6;19383:15;-1:-1:-1;;;23237:6:70;19383:15;;;19379:90;;18080:5181;19493:7;19486:15;;;19482:90;;18080:5181;19596:7;19589:15;;;19585:89;;18080:5181;19698:6;19691:14;;;19687:87;;18080:5181;19798:6;19791:14;;;19787:87;;18080:5181;19891:14;;19887:61;;18080:5181;20374:1;13600:2428:94;18246:1:70;13600:2428:94;22284:6:70;;;;:::i;:::-;13600:2428:94;;;;;22278:18:70;22393:6;;;;:::i;22387:18::-;22504:6;;;;:::i;22498:18::-;22613:6;;;;:::i;22607:18::-;22723:6;;;;:::i;22717:18::-;22833:6;;;;:::i;22827:18::-;23237:6;;;:::i;:::-;23232:11;;;13600:2428:94;23216:28:70;13600:2428:94;;18080:5181:70;:::o;19887:61::-;18246:1;13600:2428:94;19887:61:70;;19787:87;13600:2428:94;;;;;19787:87:70;;;19687;13600:2428:94;;;;;19687:87:70;;;19585:89;13600:2428:94;;;;;19585:89:70;;;19482:90;13600:2428:94;;;;;19482:90:70;;;19379;13600:2428:94;;;;;19379:90:70;;;19274:92;-1:-1:-1;;;;13600:2428:94;-1:-1:-1;13600:2428:94;;;;19274:92:70;;12497:447:99;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;3721:5:70;;;;;;13600:2428:94;;3731:5:70;;;13600:2428:94;;;;;;;;;13267:109:99;-1:-1:-1;13267:109:99;13600:2428:94;13267:109:99;;;-1:-1:-1;13267:109:99;;13600:2428:94;;;;;-1:-1:-1;12771:136:99;13600:2428:94;;;12830:10:99;;12771:136;;12687:230;;;;12771:136;13600:2428:94;;;;;;;;;;;12771:136:99;;;10695:389:73;13600:2428:94;;10871:8:73;;;10895:20;;10833:17;10895:20;10833:17;10895:20;10833:17;10895:20;:::o;10867:211::-;13600:2428:94;;;;;;;;;;10833:17:73;13267:109:99;;10833:17:73;13267:109:99;;;13600:2428:94;11014:1:73;13600:2428:94;;;;;;;11030:37:73;:::o;7084:141:26:-;13600:2428:94;-1:-1:-1;;;;;;;;;;;13600:2428:94;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;13600:2428:94;;-1:-1:-1;;;7191:17:26;;;;;13600:2428:94;;;-1:-1:-1;;;13600:2428:94;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;13600:2428:94;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11657:922:73;13600:2428:94;;11657:922:73;;;11864:7;;;;11936;11916:28;11936:7;;:::i;:::-;11916:28;13267:109:99;;;;;;13089:293;;11916:28:73;13600:2428:94;;;;;;;;;;;;12103:13:73;;;12099:89;;12251:14;;;;;12285:19;;;;13600:2428:94;;;;;;;;;;;;;;;;;12285:19:73;13600:2428:94;;12423:25:73;;:::o;12247:163::-;13600:2428:94;;;12343:52:73;13600:2428:94;12353:41:73;13600:2428:94;;:::i;:::-;;;;;;;;12353:41:73;-1:-1:-1;;;;;13600:2428:94;;12353:41:73;;;13600:2428:94;12343:52:73;:::i;:::-;12247:163;;12099:89;13600:2428:94;;-1:-1:-1;;;12143:30:73;;;;;11860:713;13600:2428:94;;12479:52:73;13600:2428:94;12489:41:73;13600:2428:94;;:::i;12489:41:73:-;-1:-1:-1;;;;;13600:2428:94;;12489:41:73;;;13600:2428:94;12343:52:73;:::i;12479:::-;11870:1;12545:17;;:::o","linkReferences":{},"immutableReferences":{"60120":[{"start":1579,"length":32}],"60123":[{"start":3566,"length":32}],"61074":[{"start":989,"length":32},{"start":3623,"length":32},{"start":10170,"length":32}],"61077":[{"start":723,"length":32},{"start":8146,"length":32}],"61080":[{"start":791,"length":32},{"start":6209,"length":32},{"start":6512,"length":32}],"61083":[{"start":859,"length":32},{"start":6056,"length":32},{"start":6638,"length":32}],"62699":[{"start":3099,"length":32},{"start":10291,"length":32}],"64473":[{"start":2991,"length":32},{"start":4969,"length":32}],"64475":[{"start":2757,"length":32},{"start":5130,"length":32}],"64477":[{"start":3314,"length":32}],"64680":[{"start":3697,"length":32}]}},"methodIdentifiers":{"BASE_DELEGATOR_HINTS()":"79d89614","DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_REGISTRY()":"83ce0322","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","OPT_IN_SERVICE_HINTS()":"9b656b22","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VAULT_HINTS()":"45e78fcb","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","maxNetworkLimitAt(bytes32,uint48,bytes)":"437224a3","maxNetworkLimitHint(address,bytes32,uint48)":"991d1162","maxNetworkLimitHintInternal(bytes32,uint48)":"d0f1f901","network()":"6739afca","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operator()":"570ca735","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","stakeHints(address,bytes32,address,uint48)":"25dc9708","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseDelegatorHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"optInServiceHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPT_IN_SERVICE_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"maxNetworkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"maxNetworkLimitHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"maxNetworkLimitHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"network\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"maxNetworkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the maximum subnetwork limit at\"},\"returns\":{\"_0\":\"maximum limit of the subnetwork\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_REGISTRY()\":{\"notice\":\"Get the operator registry's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"maxNetworkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a particular subnetwork's maximum limit at a given timestamp using a hint (meaning the subnetwork is not ready to get more as a stake).\"},\"network()\":{\"notice\":\"Get a network the vault delegates funds to.\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operator()\":{\"notice\":\"Get an operator managing the vault's funds.\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/DelegatorHints.sol\":\"OperatorNetworkSpecificDelegatorHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf\",\"dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x4aaaf1c0737dd16e81f0d2b9833c549747a5ede6873bf1444bc72aa572d03e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eada27d7668eebaea16c3b890aa1b38ffc53965292e26c96f7c44834623f4710\",\"dweb:/ipfs/QmVSWuLtxyCqNbLyY89ptxkvsk4CLLKDQYigEne5Qj8k1L\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a\",\"dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c\",\"dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e\",\"dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0xbdc3bb48ccedb818cd75a6d74a16df55a822e9f6d3cc54c59f576f10aab67b5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2284f25f2478f419d7781573b17a89d0e7c5589a865d55e2d6ed5163aee23aa8\",\"dweb:/ipfs/QmNsr2625APBQiNKpYnX5VcSnYgfUHR9Uzzp9pRXjoDqK7\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44\",\"dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0xd71e9102e99a25ee8b5435779f011a24558f56074aa2b16c18b623b57754ae97\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://29db5552e55dab51bea1ae40ba00ca674cb50fcb10997999a72a94527b6eb591\",\"dweb:/ipfs/QmQrYyTPx73ubNxMhYWJCkprCVFVtuTFcKaabYiKTe71tY\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseDelegatorHints","type":"address"},{"internalType":"address","name":"vaultHints","type":"address"},{"internalType":"address","name":"optInServiceHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidNetwork"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotOperator"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPT_IN_SERVICE_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"maxNetworkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"maxNetworkLimitHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"maxNetworkLimitHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"network","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"maxNetworkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the maximum subnetwork limit at"},"returns":{"_0":"maximum limit of the subnetwork"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_REGISTRY()":{"notice":"Get the operator registry's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"maxNetworkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a particular subnetwork's maximum limit at a given timestamp using a hint (meaning the subnetwork is not ready to get more as a stake)."},"network()":{"notice":"Get a network the vault delegates funds to."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operator()":{"notice":"Get an operator managing the vault's funds."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/DelegatorHints.sol":"OperatorNetworkSpecificDelegatorHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866","urls":["bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf","dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab","urls":["bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89","dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606","urls":["bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1","dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x4aaaf1c0737dd16e81f0d2b9833c549747a5ede6873bf1444bc72aa572d03e98","urls":["bzz-raw://eada27d7668eebaea16c3b890aa1b38ffc53965292e26c96f7c44834623f4710","dweb:/ipfs/QmVSWuLtxyCqNbLyY89ptxkvsk4CLLKDQYigEne5Qj8k1L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol":{"keccak256":"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549","urls":["bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a","dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed","urls":["bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0","dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d","urls":["bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c","dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575","urls":["bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e","dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0xbdc3bb48ccedb818cd75a6d74a16df55a822e9f6d3cc54c59f576f10aab67b5f","urls":["bzz-raw://2284f25f2478f419d7781573b17a89d0e7c5589a865d55e2d6ed5163aee23aa8","dweb:/ipfs/QmNsr2625APBQiNKpYnX5VcSnYgfUHR9Uzzp9pRXjoDqK7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f","urls":["bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44","dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0xd71e9102e99a25ee8b5435779f011a24558f56074aa2b16c18b623b57754ae97","urls":["bzz-raw://29db5552e55dab51bea1ae40ba00ca674cb50fcb10997999a72a94527b6eb591","dweb:/ipfs/QmQrYyTPx73ubNxMhYWJCkprCVFVtuTFcKaabYiKTe71tY"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":94} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"baseDelegatorHints","type":"address","internalType":"address"},{"name":"vaultHints","type":"address","internalType":"address"},{"name":"optInServiceHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPT_IN_SERVICE_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VAULT_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxNetworkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxNetworkLimitHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"maxNetworkLimitHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"network","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidNetwork","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotOperator","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x6101e0346101dc57601f612eb338819003918201601f19168301916001600160401b0391828411858510176101e05781606092869260409687528339810103126101dc5761004c836101f4565b926100648361005d602084016101f4565b92016101f4565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101cb578080831603610187575b5050505f60a0525f60c0525f60e052610100935f8552610120935f85526101405f8152610160915f83526101809384526101a09485526101c09586525195612caa9788610209893960805188610e71015260a0518861062b015260c05188610dee015260e0518881816103dd01528181610e2701526127ba0152518781816102d30152611fd201525186818161031701528181611841015261197001525185818161035b015281816117a801526119ee015251848181610c1b0152612833015251838181610baf0152611369015251828181610ac5015261140a01525181610cf20152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101dc5756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610264578063103f29071461025f578063128e5d821461025a5780631a80e5001461025557806323f752d514610250578063248a9ca31461024b57806325dc9708146102465780632dd31000146102415780632f2ff15d1461023c57806336568abe146102375780633dfd387314610232578063437224a31461022d578063439fab911461022857806345e78fcb14610223578063557cab441461021e578063570ca735146102195780636679191e146102145780636739afca1461020f57806379d896141461020a5780637f5a7c7b1461020557806383ce03221461020057806391d14854146101fb578063991d1162146101f65780639b656b22146101f15780639f86fd85146101ec578063a217fddf146101e7578063bb24fe8a146101e2578063c0cd7c3e146101dd578063d0f1f901146101d8578063d15b740e146101d3578063d547741f146101ce578063e02f6937146101c9578063e49561ee146101c4578063fbfa77cf146101bf578063fd4d447c146101ba578063ff54740f146101b55763ffa1ad74146101b0575f80fd5b611207565b6111ea565b6111c0565b611199565b610fae565b610f59565b610f0d565b610ee3565b610e56565b610e12565b610dcf565b610db5565b610d21565b610cdd565b610ca8565b610c4a565b610c06565b610bde565b610b9a565b610b72565b610b38565b610b10565b610af4565b610ab0565b610978565b6108f2565b6106f1565b6106a6565b61065a565b610616565b6105bd565b610510565b61038a565b610346565b610302565b6102be565b346102ba5760203660031901126102ba5760043563ffffffff60e01b81168091036102ba57602090637965db0b60e01b81149081156102a9575b506040519015158152f35b6301ffc9a760e01b1490505f61029e565b5f80fd5b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba576004356001600160601b03811681036102ba57602435906103ba611a63565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa90811561050b575f916104dc575b50156104ca576001600160601b03166bffffffffffffffffffffffff193360601b16179080610444835f52600260205260405f2090565b54146104b85761049d817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610482855f52600260205260405f2090565b5561048d8185611a92565b6040519081529081906020820190565b0390a26104b660015f80516020612c3583398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6104fe915060203d602011610504575b6104f68183610854565b81019061122f565b5f61040d565b503d6104ec565b611246565b346102ba5760203660031901126102ba576004355f525f80516020612c158339815191526020526020600160405f200154604051908152f35b6001600160a01b038116036102ba57565b6064359065ffffffffffff821682036102ba57565b6024359065ffffffffffff821682036102ba57565b6044359065ffffffffffff821682036102ba57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102ba5760803660031901126102ba576106126105fe6004356105e081610549565b6044356105ec81610549565b6105f461055a565b9160243590611320565b604051918291602083526020830190610599565b0390f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba576104b660243560043561067d82610549565b805f525f80516020612c158339815191526020526106a1600160405f200154611bd4565b611d85565b346102ba5760403660031901126102ba576024356106c381610549565b336001600160a01b038216036106df576104b690600435611dbb565b60405163334bd91960e11b8152600490fd5b346102ba5760203660031901126102ba5760043561070e81610549565b610716611a63565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156107cc57506001546001600160a01b0391821691811682146104b8576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612c3583398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761081957604052565b6107ea565b606081019081106001600160401b0382111761081957604052565b608081019081106001600160401b0382111761081957604052565b90601f801991011681019081106001600160401b0382111761081957604052565b604051906108828261081e565b565b60405190610882826107fe565b6001600160401b03811161081957601f01601f191660200190565b81601f820112156102ba578035906108c382610891565b926108d16040519485610854565b828452602083830101116102ba57815f926020809301838601378301015290565b346102ba5760603660031901126102ba5761090b61056f565b6044356001600160401b0381116102ba576020916109306109439236906004016108ac565b906004355f526003845260405f20611e84565b604051908152f35b9181601f840112156102ba578235916001600160401b0383116102ba57602083818601950101116102ba57565b346102ba5760203660031901126102ba576001600160401b036004358181116102ba576109a990369060040161094b565b5f80516020612c55833981519152549260ff8460401c1615931680159081610aa8575b6001149081610a9e575b159081610a95575b50610a83575f80516020612c55833981519152805467ffffffffffffffff19166001179055610a119183610a5f57611f9d565b610a1757005b5f80516020612c55833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612c55833981519152805460ff60401b1916600160401b179055611f9d565b60405163f92ee8a960e01b8152600490fd5b9050155f6109de565b303b1591506109d6565b8491506109cc565b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576020604051614e208152f35b346102ba575f3660031901126102ba576005546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b346102ba575f3660031901126102ba576004546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576001546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57602060ff610c9c602435610c6e81610549565b6004355f525f80516020612c15833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346102ba5760603660031901126102ba576106126105fe600435610ccb81610549565b610cd3610584565b906024359061154e565b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57600435610d3e81610549565b6024356001600160401b0381116102ba575f91610d608392369060040161094b565b90816040519283928337810184815203915af4610dad610d7e611647565b91610d9f604051938492151560208401526040808401526060830190610599565b03601f198101835282610854565b805190602001fd5b346102ba575f3660031901126102ba5760206040515f8152f35b346102ba575f3660031901126102ba5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57610e6f61056f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610ed15763ffffffff610ebc6040926004355f526003602052835f2061215c565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102ba5760203660031901126102ba576004355f526002602052602060405f2054604051908152f35b346102ba5760403660031901126102ba576104b6602435600435610f3082610549565b805f525f80516020612c15833981519152602052610f54600160405f200154611bd4565b611dbb565b346102ba5760803660031901126102ba57602435610f7681610549565b610f7e610584565b90606435906001600160401b0382116102ba57602092610fa56109439336906004016108ac565b91600435611732565b346102ba5760a03660031901126102ba57602435600435610fce82610549565b60443591610fda61055a565b90608435906001600160401b0382116102ba57610ffc600492369084016108ac565b611004611a63565b5f546020906110299061101d906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa92831561050b575f93611168575b506001600160a01b039283163303611156576001546001600160a01b03168381166110cb575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a36104b660015f80516020612c3583398151915255565b909360405194611102866110f4602082019363724ab0f760e11b8552858c898d602487016118bc565b03601f198101885287610854565b62042e305a10611144575f6110b2938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611071565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61118b91935060203d602011611192575b6111838183610854565b8101906112bc565b915f61104b565b503d611179565b346102ba575f3660031901126102ba575f546040516001600160a01b039091168152602090f35b346102ba5760403660031901126102ba5760206109436024356111e281610549565b600435611939565b346102ba575f3660031901126102ba5760206040516203d0908152f35b346102ba575f3660031901126102ba57602060405160018152f35b519081151582036102ba57565b908160209103126102ba5761124390611222565b90565b6040513d5f823e3d90fd5b81601f820112156102ba5780519061126882610891565b926112766040519485610854565b828452602083830101116102ba57815f9260208093018386015e8301015290565b906020828203126102ba5781516001600160401b0381116102ba576112439201611251565b908160209103126102ba575161124381610549565b9061124391602081526112f08251606060208401526080830190610599565b9060606040611310602086015194601f1995868683030184870152610599565b9401519282850301910152610599565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052938416604482015265ffffffffffff8516606482015260609594909391925f856084817f000000000000000000000000000000000000000000000000000000000000000087165afa94851561050b575f956114ea575b5060405163fbfa77cf60e01b81526020816004818888165afa90811561050b57611406945f92859284916114cb575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff90921660248301529094859190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa92831561050b575f936114a5575b50611445929361154e565b9082511580159061149b575b8015611491575b61146157505050565b610d9f939450906112439291611475610875565b92835260208301526040820152604051928391602083016112d1565b5081511515611458565b5080511515611451565b61144593506114c5903d805f833e6114bd8183610854565b810190611297565b9261143a565b6114e4915060203d602011611192576111838183610854565b5f6113c9565b6114ff9195503d805f833e6114bd8183610854565b935f61139a565b9061124392915f52600360205260405f20611e84565b519063ffffffff821682036102ba57565b91908260409103126102ba57611243602061154784611222565b930161151c565b92915f8060609565ffffffffffff6040519460209663d0f1f90160e01b8888015260248701521660448501526044845261158784610839565b60405193846115b487820192639f86fd8560e01b8452306024840152604060448401526064830190610599565b03946115c8601f1996878101835282610854565b51915afa506115e66115d8611647565b8380825183010191016120db565b9015611639578083806115fe9351830101910161152d565b929061160957505050565b6112439293945061162d604051948592830191909163ffffffff6020820193169052565b03908101835282610854565b809150519182156102ba5701fd5b3d15611671573d9061165882610891565b916116666040519384610854565b82523d5f602084013e565b606090565b60405190611683826107fe565b60606020838281520152565b906020828203126102ba5781516001600160401b03928382116102ba5701906040828203126102ba57604051926116c5846107fe565b82518181116102ba57826116da918501611251565b845260208301519081116102ba576116f29201611251565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261124392910190610599565b9261174290929192828486612335565b92909361174d611676565b938051806118a0575b5050841593841561180a575b8415611779575b505050506117745790565b505f90565b6020809495506117a4910151604051958694859463530e1d4360e01b865260601c90600486016116fa565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561050b575f916117eb575b50155f808080611769565b611804915060203d602011610504576104f68183610854565b5f6117e0565b5f549094506001600160a01b031660208486519261183d604051948593849363530e1d4360e01b855289600486016116fa565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561050b575f91611881575b501593611762565b61189a915060203d602011610504576104f68183610854565b5f611879565b6118b492955060208091830101910161168f565b925f80611756565b919360a093611243969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610599565b634e487b7160e01b5f52601160045260245ffd5b8115611912570490565b634e487b7160e01b5f52601260045260245ffd5b906001820180921161193457565b6118f4565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa90811561050b575f91611a46575b50159182156119c2575b505090506119bc576112439161245a565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa91821561050b575f92611a29575b505015805f806119ab565b611a3f9250803d10610504576104f68183610854565b5f80611a1e565b611a5d9150843d8611610504576104f68183610854565b5f6119a1565b5f80516020612c358339815191526002815414611a805760029055565b604051633ee5aeb560e01b8152600490fd5b6004546001600160a01b0316606082901c03611bc2575f52600360205260405f209065ffffffffffff91824211611ba357824216926001820191825415611b95575b611add81612a75565b509590845493835480155f14611b7657505f975b6001600160d01b0398808a1615611b7057611b0c9088612133565b50505b82611b64575b505015611b4e575050610882935090611b30611b3692611e61565b90612133565b90919082549060031b91821b915f19901b1916179055565b61088295611b5d931691612b37565b505061254f565b16821490505f80611b15565b50611b0f565b5f1990808281011161193457855f5260205f2001015460301c97611af1565b611b9e83612522565b611ad4565b6040516306dfcc6560e41b815260306004820152426024820152604490fd5b6040516386eab41b60e01b8152600490fd5b5f8181525f80516020612c158339815191526020908152604080832033845290915290205460ff16156107cc5750565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612c158339815191529060ff166119bc575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612c158339815191529060ff905b5416611d7e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b5f8181525f80516020612c15833981519152602081815260408084206001600160a01b038716855290915290912060ff90611d1a565b5f8181525f80516020612c15833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611d7e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b908160209103126102ba576112439061151c565b5f1981019190821161193457565b90600163ffffffff8093160191821161193457565b91805115611f5d5780602080611e9f93518301019101611e4d565b91611eaa8382612642565b92611ebb845165ffffffffffff1690565b9065ffffffffffff8085169216828114611f515782119182611ef1575b5050611ee8576112439250612572565b50506020015190565b909150611efe8354611e61565b63ffffffff831614918215611f17575b50505f80611ed8565b611f49919250611f32611f2c611f3e92611e6f565b85612642565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611f0e565b50505050506020015190565b5061124391612572565b9190916040818403126102ba578035611f7f81610549565b9260208201356001600160401b0381116102ba5761124392016108ac565b611fa991810190611f67565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa90811561050b575f916120bc575b50156120aa5761203e6040916120396120849461201e6126aa565b60018060a01b03166001600160601b0360a01b5f5416175f55565b61276d565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661209a575b5001516001600160a01b031690565b90811661208e5750565b61209790611caf565b50565b6120a390611c04565b505f612075565b6040516362df054560e01b8152600490fd5b6120d5915060203d602011610504576104f68183610854565b5f612003565b9190916040818403126102ba576120f181611222565b9260208201516001600160401b0381116102ba576112439201611251565b9060405161211c816107fe565b915465ffffffffffff8116835260301c6020830152565b8054821015612148575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b91908254905f829160058411612204575b612178935085612a13565b9081156121f8576121f16121e86121e26121d86121aa6121a561219a88611e61565b895f5260205f200190565b61210f565b9660016121d160206121c28b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101612133565b90549060031b1c90565b93611e61565b63ffffffff1690565b6001939291565b5f925082915081908190565b919261220f816128e8565b81039081116119345761217893865f52612238611f3e8360205f200165ffffffffffff90541690565b65ffffffffffff8516101561224e57509161216d565b92915061225a90611926565b9061216d565b6040519061226d8261081e565b60606040838281528260208201520152565b906020828203126102ba5781516001600160401b03928382116102ba5701906060828203126102ba57604051926122b58461081e565b82518181116102ba57826122ca918501611251565b845260208301518181116102ba57826122e4918501611251565b602085015260408301519081116102ba576122ff9201611251565b604082015290565b908160209103126102ba575190565b60409065ffffffffffff61124394931681528160208201520190610599565b90939293612341612260565b9480518061243e575b5050600454606083901c6001600160a01b03918216148015929190612423575b505061241b575f546123b092919060209061238f9061101d906001600160a01b031681565b8187015190604051808097819463810da75d60e01b83528860048401612316565b03915afa90811561050b576123e3935f926123e8575b506123d79192604087015191611506565b90818082109118021890565b915190565b6123d7925061240e9060203d602011612414575b6124068183610854565b810190612307565b916123c6565b503d6123fc565b505090515f91565b60055481166001600160a01b03169116141590505f8061236a565b61245292965060208091830101910161227f565b935f8061234a565b6004549091606083901c6001600160a01b039283161480159290612507575b5050611774575f546004919060209061249c9061101d906001600160a01b031681565b60405163bd49c35f60e01b815293849182905afa90811561050b57611243925f926124e2575b506124d5905f52600260205260405f2090565b5490818082109118021890565b6124d59192506125009060203d602011612414576124068183610854565b91906124c2565b60055481166001600160a01b03169116141590505f80612479565b8054600160401b8110156108195761253f91600182018155612133565b8154905f199060031b1b19169055565b90815491600160401b8310156108195782611b3691600161088295018155612133565b908154905f8291600584116125dc575b61258d935084612a13565b806125b557505f905b6001600160d01b038216156119bc576112439160016121d89201612133565b6125cf6125c46125d692611e61565b835f5260205f200190565b5460301c90565b90612596565b91926125e7816128e8565b81039081116119345761258d93855f5265ffffffffffff808360205f20015416908516105f14612618575091612582565b92915061262490611926565b90612582565b60405190612637826107fe565b5f6020838281520152565b9061266b61266561268c9261265561262a565b5061265e61262a565b5084612133565b5061210f565b91600165ffffffffffff845116936020828060d01b03910151169101612133565b9054906040519261269c846107fe565b835260031b1c602082015290565b6126b2612aae565b6126ba612aae565b60015f80516020612c3583398151915255565b604051906126da8261081e565b5f6040838281528260208201520152565b8091039060a082126102ba576060604051926127068461081e565b126102ba5760809060405161271a8161081e565b815161272581610549565b8152602082015161273581610549565b6020820152604082015161274881610549565b60408201528352606081015161275d81610549565b602084015201516122ff81610549565b6127756126cd565b5061278b815191602080809483010191016126eb565b80820180516040516302910f8b60e31b8082526001600160a01b039283166004830152939491939082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa90811561050b575f916128cb575b50156104ca578161282f91604087019561280b875160018060a01b031690565b6040519283526001600160a01b031660048301529092839190829081906024820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa91821561050b575f926128ae575b50501561289c5751600480546001600160a01b039283166001600160a01b03199182161790915591516005805490931691161790555190565b604051631f0853c160e21b8152600490fd5b6128c49250803d10610504576104f68183610854565b5f80612863565b6128e29150833d8511610504576104f68183610854565b5f6127eb565b600181111561124357600181600160801b811015612a01575b6129a961299f61299561298b6129816129776129b597600488600160401b6129b09a10156129f4575b6401000000008110156129e7575b620100008110156129da575b6101008110156129ce575b60108110156129c2575b10156129ba575b60030260011c612970818b611908565b0160011c90565b612970818a611908565b6129708189611908565b6129708188611908565b6129708187611908565b6129708186611908565b8093611908565b821190565b900390565b60011b612960565b811c9160021b91612959565b60081c91811b9161294f565b60101c9160081b91612944565b60201c9160101b91612938565b60401c9160201b9161292a565b50600160401b9050608082901c612901565b91905b838210612a235750505090565b909192808316906001818518811c830180931161193457855f5265ffffffffffff808460205f20015416908516105f14612a62575050925b9190612a16565b9094935081018091116119345791612a5b565b805480612a865750505f905f905f90565b5f19918183810111611934575f5260205f2001015460019165ffffffffffff82169160301c90565b60ff5f80516020612c558339815191525460401c1615612aca57565b604051631afcd79f60e31b8152600490fd5b8054600160401b81101561081957612af991600182018155612133565b612b2457815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293928015612bea57612b4e612b5991611e61565b825f5260205f200190565b9182549265ffffffffffff91828516928116808411612bd857879303612b9f5750612b9892509065ffffffffffff82549181199060301b169116179055565b60301c9190565b915050612bd391612bbf612bb1610884565b65ffffffffffff9093168352565b6001600160d01b0386166020830152612adc565b612b98565b604051632520601d60e01b8152600490fd5b5090612c0f91612bfb612bb1610884565b6001600160d01b0385166020830152612adc565b5f919056fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122067aa6510448df950d196b22488023407b46113c92aa0c31e1ef31a245fd1a75664736f6c63430008190033","sourceMap":"13600:2428:92:-:0;;;;;;;;;;;;;-1:-1:-1;;13600:2428:92;;;;-1:-1:-1;;;;;13600:2428:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;348:4:93;;332:21;;8837:64:26;13600:2428:92;;;;;;;;;7896:76:26;;13600:2428:92;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:80;;;-1:-1:-1;525:17:80;;-1:-1:-1;552:12:80;;-1:-1:-1;2360:34:87;;2404:28;;-1:-1:-1;2404:28:87;;2442:57;;-1:-1:-1;2442:57:87;;2509:61;-1:-1:-1;2509:61:87;;1796:36:90;;-1:-1:-1;1796:36:90;;14125:41:92;;;;14176:24;;;;14210:40;;;;13600:2428;;;;;;;;332:21:93;13600:2428:92;;;;;525:17:80;13600:2428:92;;;;;552:12:80;13600:2428:92;;;;;2360:34:87;13600:2428:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;13600:2428:92;;;;;;;;;;;;;8087:29:26;;13600:2428:92;;8087:29:26;7981:146;;;;;7896:76;13600:2428:92;;-1:-1:-1;;;7938:23:26;;;;;13600:2428:92;-1:-1:-1;13600:2428:92;;;;;;-1:-1:-1;13600:2428:92;;;;;-1:-1:-1;13600:2428:92;;;;-1:-1:-1;;;;;13600:2428:92;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610264578063103f29071461025f578063128e5d821461025a5780631a80e5001461025557806323f752d514610250578063248a9ca31461024b57806325dc9708146102465780632dd31000146102415780632f2ff15d1461023c57806336568abe146102375780633dfd387314610232578063437224a31461022d578063439fab911461022857806345e78fcb14610223578063557cab441461021e578063570ca735146102195780636679191e146102145780636739afca1461020f57806379d896141461020a5780637f5a7c7b1461020557806383ce03221461020057806391d14854146101fb578063991d1162146101f65780639b656b22146101f15780639f86fd85146101ec578063a217fddf146101e7578063bb24fe8a146101e2578063c0cd7c3e146101dd578063d0f1f901146101d8578063d15b740e146101d3578063d547741f146101ce578063e02f6937146101c9578063e49561ee146101c4578063fbfa77cf146101bf578063fd4d447c146101ba578063ff54740f146101b55763ffa1ad74146101b0575f80fd5b611207565b6111ea565b6111c0565b611199565b610fae565b610f59565b610f0d565b610ee3565b610e56565b610e12565b610dcf565b610db5565b610d21565b610cdd565b610ca8565b610c4a565b610c06565b610bde565b610b9a565b610b72565b610b38565b610b10565b610af4565b610ab0565b610978565b6108f2565b6106f1565b6106a6565b61065a565b610616565b6105bd565b610510565b61038a565b610346565b610302565b6102be565b346102ba5760203660031901126102ba5760043563ffffffff60e01b81168091036102ba57602090637965db0b60e01b81149081156102a9575b506040519015158152f35b6301ffc9a760e01b1490505f61029e565b5f80fd5b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba576004356001600160601b03811681036102ba57602435906103ba611a63565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa90811561050b575f916104dc575b50156104ca576001600160601b03166bffffffffffffffffffffffff193360601b16179080610444835f52600260205260405f2090565b54146104b85761049d817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c92610482855f52600260205260405f2090565b5561048d8185611a92565b6040519081529081906020820190565b0390a26104b660015f80516020612c3583398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6104fe915060203d602011610504575b6104f68183610854565b81019061122f565b5f61040d565b503d6104ec565b611246565b346102ba5760203660031901126102ba576004355f525f80516020612c158339815191526020526020600160405f200154604051908152f35b6001600160a01b038116036102ba57565b6064359065ffffffffffff821682036102ba57565b6024359065ffffffffffff821682036102ba57565b6044359065ffffffffffff821682036102ba57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102ba5760803660031901126102ba576106126105fe6004356105e081610549565b6044356105ec81610549565b6105f461055a565b9160243590611320565b604051918291602083526020830190610599565b0390f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba576104b660243560043561067d82610549565b805f525f80516020612c158339815191526020526106a1600160405f200154611bd4565b611d85565b346102ba5760403660031901126102ba576024356106c381610549565b336001600160a01b038216036106df576104b690600435611dbb565b60405163334bd91960e11b8152600490fd5b346102ba5760203660031901126102ba5760043561070e81610549565b610716611a63565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff16156107cc57506001546001600160a01b0391821691811682146104b8576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612c3583398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761081957604052565b6107ea565b606081019081106001600160401b0382111761081957604052565b608081019081106001600160401b0382111761081957604052565b90601f801991011681019081106001600160401b0382111761081957604052565b604051906108828261081e565b565b60405190610882826107fe565b6001600160401b03811161081957601f01601f191660200190565b81601f820112156102ba578035906108c382610891565b926108d16040519485610854565b828452602083830101116102ba57815f926020809301838601378301015290565b346102ba5760603660031901126102ba5761090b61056f565b6044356001600160401b0381116102ba576020916109306109439236906004016108ac565b906004355f526003845260405f20611e84565b604051908152f35b9181601f840112156102ba578235916001600160401b0383116102ba57602083818601950101116102ba57565b346102ba5760203660031901126102ba576001600160401b036004358181116102ba576109a990369060040161094b565b5f80516020612c55833981519152549260ff8460401c1615931680159081610aa8575b6001149081610a9e575b159081610a95575b50610a83575f80516020612c55833981519152805467ffffffffffffffff19166001179055610a119183610a5f57611f9d565b610a1757005b5f80516020612c55833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612c55833981519152805460ff60401b1916600160401b179055611f9d565b60405163f92ee8a960e01b8152600490fd5b9050155f6109de565b303b1591506109d6565b8491506109cc565b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576020604051614e208152f35b346102ba575f3660031901126102ba576005546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b346102ba575f3660031901126102ba576004546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba575f3660031901126102ba576001546040516001600160a01b039091168152602090f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57602060ff610c9c602435610c6e81610549565b6004355f525f80516020612c15833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346102ba5760603660031901126102ba576106126105fe600435610ccb81610549565b610cd3610584565b906024359061154e565b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57600435610d3e81610549565b6024356001600160401b0381116102ba575f91610d608392369060040161094b565b90816040519283928337810184815203915af4610dad610d7e611647565b91610d9f604051938492151560208401526040808401526060830190610599565b03601f198101835282610854565b805190602001fd5b346102ba575f3660031901126102ba5760206040515f8152f35b346102ba575f3660031901126102ba5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102ba575f3660031901126102ba576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102ba5760403660031901126102ba57610e6f61056f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610ed15763ffffffff610ebc6040926004355f526003602052835f2061215c565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102ba5760203660031901126102ba576004355f526002602052602060405f2054604051908152f35b346102ba5760403660031901126102ba576104b6602435600435610f3082610549565b805f525f80516020612c15833981519152602052610f54600160405f200154611bd4565b611dbb565b346102ba5760803660031901126102ba57602435610f7681610549565b610f7e610584565b90606435906001600160401b0382116102ba57602092610fa56109439336906004016108ac565b91600435611732565b346102ba5760a03660031901126102ba57602435600435610fce82610549565b60443591610fda61055a565b90608435906001600160401b0382116102ba57610ffc600492369084016108ac565b611004611a63565b5f546020906110299061101d906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa92831561050b575f93611168575b506001600160a01b039283163303611156576001546001600160a01b03168381166110cb575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a36104b660015f80516020612c3583398151915255565b909360405194611102866110f4602082019363724ab0f760e11b8552858c898d602487016118bc565b03601f198101885287610854565b62042e305a10611144575f6110b2938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611071565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b61118b91935060203d602011611192575b6111838183610854565b8101906112bc565b915f61104b565b503d611179565b346102ba575f3660031901126102ba575f546040516001600160a01b039091168152602090f35b346102ba5760403660031901126102ba5760206109436024356111e281610549565b600435611939565b346102ba575f3660031901126102ba5760206040516203d0908152f35b346102ba575f3660031901126102ba57602060405160018152f35b519081151582036102ba57565b908160209103126102ba5761124390611222565b90565b6040513d5f823e3d90fd5b81601f820112156102ba5780519061126882610891565b926112766040519485610854565b828452602083830101116102ba57815f9260208093018386015e8301015290565b906020828203126102ba5781516001600160401b0381116102ba576112439201611251565b908160209103126102ba575161124381610549565b9061124391602081526112f08251606060208401526080830190610599565b9060606040611310602086015194601f1995868683030184870152610599565b9401519282850301910152610599565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052938416604482015265ffffffffffff8516606482015260609594909391925f856084817f000000000000000000000000000000000000000000000000000000000000000087165afa94851561050b575f956114ea575b5060405163fbfa77cf60e01b81526020816004818888165afa90811561050b57611406945f92859284916114cb575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff90921660248301529094859190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa92831561050b575f936114a5575b50611445929361154e565b9082511580159061149b575b8015611491575b61146157505050565b610d9f939450906112439291611475610875565b92835260208301526040820152604051928391602083016112d1565b5081511515611458565b5080511515611451565b61144593506114c5903d805f833e6114bd8183610854565b810190611297565b9261143a565b6114e4915060203d602011611192576111838183610854565b5f6113c9565b6114ff9195503d805f833e6114bd8183610854565b935f61139a565b9061124392915f52600360205260405f20611e84565b519063ffffffff821682036102ba57565b91908260409103126102ba57611243602061154784611222565b930161151c565b92915f8060609565ffffffffffff6040519460209663d0f1f90160e01b8888015260248701521660448501526044845261158784610839565b60405193846115b487820192639f86fd8560e01b8452306024840152604060448401526064830190610599565b03946115c8601f1996878101835282610854565b51915afa506115e66115d8611647565b8380825183010191016120db565b9015611639578083806115fe9351830101910161152d565b929061160957505050565b6112439293945061162d604051948592830191909163ffffffff6020820193169052565b03908101835282610854565b809150519182156102ba5701fd5b3d15611671573d9061165882610891565b916116666040519384610854565b82523d5f602084013e565b606090565b60405190611683826107fe565b60606020838281520152565b906020828203126102ba5781516001600160401b03928382116102ba5701906040828203126102ba57604051926116c5846107fe565b82518181116102ba57826116da918501611251565b845260208301519081116102ba576116f29201611251565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261124392910190610599565b9261174290929192828486612335565b92909361174d611676565b938051806118a0575b5050841593841561180a575b8415611779575b505050506117745790565b505f90565b6020809495506117a4910151604051958694859463530e1d4360e01b865260601c90600486016116fa565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561050b575f916117eb575b50155f808080611769565b611804915060203d602011610504576104f68183610854565b5f6117e0565b5f549094506001600160a01b031660208486519261183d604051948593849363530e1d4360e01b855289600486016116fa565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561050b575f91611881575b501593611762565b61189a915060203d602011610504576104f68183610854565b5f611879565b6118b492955060208091830101910161168f565b925f80611756565b919360a093611243969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610599565b634e487b7160e01b5f52601160045260245ffd5b8115611912570490565b634e487b7160e01b5f52601260045260245ffd5b906001820180921161193457565b6118f4565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa90811561050b575f91611a46575b50159182156119c2575b505090506119bc576112439161245a565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa91821561050b575f92611a29575b505015805f806119ab565b611a3f9250803d10610504576104f68183610854565b5f80611a1e565b611a5d9150843d8611610504576104f68183610854565b5f6119a1565b5f80516020612c358339815191526002815414611a805760029055565b604051633ee5aeb560e01b8152600490fd5b6004546001600160a01b0316606082901c03611bc2575f52600360205260405f209065ffffffffffff91824211611ba357824216926001820191825415611b95575b611add81612a75565b509590845493835480155f14611b7657505f975b6001600160d01b0398808a1615611b7057611b0c9088612133565b50505b82611b64575b505015611b4e575050610882935090611b30611b3692611e61565b90612133565b90919082549060031b91821b915f19901b1916179055565b61088295611b5d931691612b37565b505061254f565b16821490505f80611b15565b50611b0f565b5f1990808281011161193457855f5260205f2001015460301c97611af1565b611b9e83612522565b611ad4565b6040516306dfcc6560e41b815260306004820152426024820152604490fd5b6040516386eab41b60e01b8152600490fd5b5f8181525f80516020612c158339815191526020908152604080832033845290915290205460ff16156107cc5750565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612c158339815191529060ff166119bc575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612c158339815191529060ff905b5416611d7e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b5f8181525f80516020612c15833981519152602081815260408084206001600160a01b038716855290915290912060ff90611d1a565b5f8181525f80516020612c15833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615611d7e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b908160209103126102ba576112439061151c565b5f1981019190821161193457565b90600163ffffffff8093160191821161193457565b91805115611f5d5780602080611e9f93518301019101611e4d565b91611eaa8382612642565b92611ebb845165ffffffffffff1690565b9065ffffffffffff8085169216828114611f515782119182611ef1575b5050611ee8576112439250612572565b50506020015190565b909150611efe8354611e61565b63ffffffff831614918215611f17575b50505f80611ed8565b611f49919250611f32611f2c611f3e92611e6f565b85612642565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80611f0e565b50505050506020015190565b5061124391612572565b9190916040818403126102ba578035611f7f81610549565b9260208201356001600160401b0381116102ba5761124392016108ac565b611fa991810190611f67565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa90811561050b575f916120bc575b50156120aa5761203e6040916120396120849461201e6126aa565b60018060a01b03166001600160601b0360a01b5f5416175f55565b61276d565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b031684811661209a575b5001516001600160a01b031690565b90811661208e5750565b61209790611caf565b50565b6120a390611c04565b505f612075565b6040516362df054560e01b8152600490fd5b6120d5915060203d602011610504576104f68183610854565b5f612003565b9190916040818403126102ba576120f181611222565b9260208201516001600160401b0381116102ba576112439201611251565b9060405161211c816107fe565b915465ffffffffffff8116835260301c6020830152565b8054821015612148575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b91908254905f829160058411612204575b612178935085612a13565b9081156121f8576121f16121e86121e26121d86121aa6121a561219a88611e61565b895f5260205f200190565b61210f565b9660016121d160206121c28b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101612133565b90549060031b1c90565b93611e61565b63ffffffff1690565b6001939291565b5f925082915081908190565b919261220f816128e8565b81039081116119345761217893865f52612238611f3e8360205f200165ffffffffffff90541690565b65ffffffffffff8516101561224e57509161216d565b92915061225a90611926565b9061216d565b6040519061226d8261081e565b60606040838281528260208201520152565b906020828203126102ba5781516001600160401b03928382116102ba5701906060828203126102ba57604051926122b58461081e565b82518181116102ba57826122ca918501611251565b845260208301518181116102ba57826122e4918501611251565b602085015260408301519081116102ba576122ff9201611251565b604082015290565b908160209103126102ba575190565b60409065ffffffffffff61124394931681528160208201520190610599565b90939293612341612260565b9480518061243e575b5050600454606083901c6001600160a01b03918216148015929190612423575b505061241b575f546123b092919060209061238f9061101d906001600160a01b031681565b8187015190604051808097819463810da75d60e01b83528860048401612316565b03915afa90811561050b576123e3935f926123e8575b506123d79192604087015191611506565b90818082109118021890565b915190565b6123d7925061240e9060203d602011612414575b6124068183610854565b810190612307565b916123c6565b503d6123fc565b505090515f91565b60055481166001600160a01b03169116141590505f8061236a565b61245292965060208091830101910161227f565b935f8061234a565b6004549091606083901c6001600160a01b039283161480159290612507575b5050611774575f546004919060209061249c9061101d906001600160a01b031681565b60405163bd49c35f60e01b815293849182905afa90811561050b57611243925f926124e2575b506124d5905f52600260205260405f2090565b5490818082109118021890565b6124d59192506125009060203d602011612414576124068183610854565b91906124c2565b60055481166001600160a01b03169116141590505f80612479565b8054600160401b8110156108195761253f91600182018155612133565b8154905f199060031b1b19169055565b90815491600160401b8310156108195782611b3691600161088295018155612133565b908154905f8291600584116125dc575b61258d935084612a13565b806125b557505f905b6001600160d01b038216156119bc576112439160016121d89201612133565b6125cf6125c46125d692611e61565b835f5260205f200190565b5460301c90565b90612596565b91926125e7816128e8565b81039081116119345761258d93855f5265ffffffffffff808360205f20015416908516105f14612618575091612582565b92915061262490611926565b90612582565b60405190612637826107fe565b5f6020838281520152565b9061266b61266561268c9261265561262a565b5061265e61262a565b5084612133565b5061210f565b91600165ffffffffffff845116936020828060d01b03910151169101612133565b9054906040519261269c846107fe565b835260031b1c602082015290565b6126b2612aae565b6126ba612aae565b60015f80516020612c3583398151915255565b604051906126da8261081e565b5f6040838281528260208201520152565b8091039060a082126102ba576060604051926127068461081e565b126102ba5760809060405161271a8161081e565b815161272581610549565b8152602082015161273581610549565b6020820152604082015161274881610549565b60408201528352606081015161275d81610549565b602084015201516122ff81610549565b6127756126cd565b5061278b815191602080809483010191016126eb565b80820180516040516302910f8b60e31b8082526001600160a01b039283166004830152939491939082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa90811561050b575f916128cb575b50156104ca578161282f91604087019561280b875160018060a01b031690565b6040519283526001600160a01b031660048301529092839190829081906024820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa91821561050b575f926128ae575b50501561289c5751600480546001600160a01b039283166001600160a01b03199182161790915591516005805490931691161790555190565b604051631f0853c160e21b8152600490fd5b6128c49250803d10610504576104f68183610854565b5f80612863565b6128e29150833d8511610504576104f68183610854565b5f6127eb565b600181111561124357600181600160801b811015612a01575b6129a961299f61299561298b6129816129776129b597600488600160401b6129b09a10156129f4575b6401000000008110156129e7575b620100008110156129da575b6101008110156129ce575b60108110156129c2575b10156129ba575b60030260011c612970818b611908565b0160011c90565b612970818a611908565b6129708189611908565b6129708188611908565b6129708187611908565b6129708186611908565b8093611908565b821190565b900390565b60011b612960565b811c9160021b91612959565b60081c91811b9161294f565b60101c9160081b91612944565b60201c9160101b91612938565b60401c9160201b9161292a565b50600160401b9050608082901c612901565b91905b838210612a235750505090565b909192808316906001818518811c830180931161193457855f5265ffffffffffff808460205f20015416908516105f14612a62575050925b9190612a16565b9094935081018091116119345791612a5b565b805480612a865750505f905f905f90565b5f19918183810111611934575f5260205f2001015460019165ffffffffffff82169160301c90565b60ff5f80516020612c558339815191525460401c1615612aca57565b604051631afcd79f60e31b8152600490fd5b8054600160401b81101561081957612af991600182018155612133565b612b2457815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293928015612bea57612b4e612b5991611e61565b825f5260205f200190565b9182549265ffffffffffff91828516928116808411612bd857879303612b9f5750612b9892509065ffffffffffff82549181199060301b169116179055565b60301c9190565b915050612bd391612bbf612bb1610884565b65ffffffffffff9093168352565b6001600160d01b0386166020830152612adc565b612b98565b604051632520601d60e01b8152600490fd5b5090612c0f91612bfb612bb1610884565b6001600160d01b0385166020830152612adc565b5f919056fe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122067aa6510448df950d196b22488023407b46113c92aa0c31e1ef31a245fd1a75664736f6c63430008190033","sourceMap":"13600:2428:92:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;13600:2428:92;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;13600:2428:92;;;;;;;;;;3551:87:23;-1:-1:-1;;;1134:40:32;;-1:-1:-1;3551:87:23;;;13600:2428:92;-1:-1:-1;13600:2428:92;;;;;;;;-1:-1:-1;;13600:2428:92;;;;;;1537:38:87;-1:-1:-1;;;;;13600:2428:92;;;;;;;;;;;;-1:-1:-1;;13600:2428:92;;;;;;1632:54:87;-1:-1:-1;;;;;13600:2428:92;;;;;;;;;;;;-1:-1:-1;;13600:2428:92;;;;;;1743:56:87;-1:-1:-1;;;;;13600:2428:92;;;;;;;;;;;;-1:-1:-1;;13600:2428:92;;;;;;-1:-1:-1;;;;;13600:2428:92;;;;;;;;3361:103:30;;;:::i;:::-;13600:2428:92;;-1:-1:-1;;;4285:48:87;;4322:10;13600:2428:92;4285:48:87;;13600:2428:92;;;;;-1:-1:-1;;;;;4295:16:87;13600:2428:92;4285:48:87;;;;;;;-1:-1:-1;4285:48:87;;;13600:2428:92;4284:49:87;;4280:99;;-1:-1:-1;;;;;13600:2428:92;-1:-1:-1;;4322:10:87;297:2:99;13600:2428:92;;267:46:99;4459:27:87;;;;13600:2428:92;;4459:15:87;13600:2428:92;;;;;;;4459:27:87;13600:2428:92;4459:37:87;4455:87;;4654:38;4552:27;4654:38;4552:27;;;13600:2428:92;;4459:15:87;13600:2428:92;;;;;;;4552:27:87;13600:2428:92;4631:6:87;;;;:::i;:::-;13600:2428:92;;;;;;;;;;;;;4654:38:87;;;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;13600:2428:92;3860:283:30;3426:1;13600:2428:92;4455:87:87;13600:2428:92;;-1:-1:-1;;;4519:12:87;;13600:2428:92;;4519:12:87;4280:99;13600:2428:92;;-1:-1:-1;;;4356:12:87;;13600:2428:92;;4356:12:87;4285:48;;;;13600:2428:92;4285:48:87;13600:2428:92;4285:48:87;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;13600:2428:92:-;;;;;;-1:-1:-1;;13600:2428:92;;;;;;-1:-1:-1;13600:2428:92;-1:-1:-1;;;;;;;;;;;13600:2428:92;;;4919:24:23;13600:2428:92;-1:-1:-1;13600:2428:92;4919:24:23;13600:2428:92;;;;;;;;-1:-1:-1;;;;;13600:2428:92;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;13600:2428:92;;;;;;;;-1:-1:-1;;13600:2428:92;;;;:::o;:::-;;;;;;-1:-1:-1;;13600:2428:92;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;13600:2428:92;;;;;;322:32:80;-1:-1:-1;;;;;13600:2428:92;;;;;;;;;;;;-1:-1:-1;;13600:2428:92;;;;5350:25:23;13600:2428:92;;;;;;;:::i;:::-;;-1:-1:-1;13600:2428:92;-1:-1:-1;;;;;;;;;;;13600:2428:92;;3202:4:23;4919:24;13600:2428:92;-1:-1:-1;13600:2428:92;4919:24:23;13600:2428:92;3202:4:23;:::i;:::-;5350:25;:::i;13600:2428:92:-;;;;;;-1:-1:-1;;13600:2428:92;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;13600:2428:92;;6441:34:23;6437:102;;6549:37;13600:2428:92;;;6549:37:23;:::i;6437:102::-;13600:2428:92;;-1:-1:-1;;;6498:30:23;;13600:2428:92;;6498:30:23;13600:2428:92;;;;;;-1:-1:-1;;13600:2428:92;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;966:10:28;-1:-1:-1;13600:2428:92;;;;;;;;;;1356:26:87;;13600:2428:92;;4468:23:23;4464:108;;-1:-1:-1;4861:4:87;13600:2428:92;-1:-1:-1;;;;;13600:2428:92;;;;;;4861:13:87;;4857:63;;-1:-1:-1;;;;;;13600:2428:92;;;4861:4:87;13600:2428:92;4958:14:87;-1:-1:-1;;4958:14:87;4861:4;-1:-1:-1;;;;;;;;;;;13600:2428:92;;4464:108:23;13600:2428:92;;;;4514:47:23;;;;;;966:10:28;13600:2428:92;4514:47:23;;13600:2428:92;;;;;4514:47:23;13600:2428:92;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13600:2428:92;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;13600:2428:92;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;13600:2428:92;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13600:2428:92;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;13600:2428:92;;;;;;-1:-1:-1;;13600:2428:92;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;13600:2428:92;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;13600:2428:92;;;;;;:::i;:::-;;;-1:-1:-1;;;;;13600:2428:92;;;;;;;2045:63:90;13600:2428:92;;;;;;:::i;:::-;;;;-1:-1:-1;13600:2428:92;2045:16:90;13600:2428:92;;;-1:-1:-1;13600:2428:92;2045:63:90;:::i;:::-;13600:2428:92;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13600:2428:92;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;13600:2428:92;;;;-1:-1:-1;;;;;13600:2428:92;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;13600:2428:92;;;;;;;4301:16:26;13600:2428:92;;4726:16:26;;:34;;;;13600:2428:92;4805:1:26;4790:16;:50;;;;13600:2428:92;4855:13:26;:30;;;;13600:2428:92;4851:91:26;;;-1:-1:-1;;;;;;;;;;;13600:2428:92;;-1:-1:-1;;13600:2428:92;;;;;718:4:80;;4951:18:26;4979:67;;718:4:80;:::i;:::-;5066:101:26;;13600:2428:92;5066:101:26;-1:-1:-1;;;;;;;;;;;13600:2428:92;;-1:-1:-1;;;;13600:2428:92;;;;;-1:-1:-1;13600:2428:92;;5142:14:26;;13600:2428:92;;5142:14:26;13600:2428:92;4979:67:26;-1:-1:-1;;;;;;;;;;;13600:2428:92;;-1:-1:-1;;;;13600:2428:92;-1:-1:-1;;;13600:2428:92;;;718:4:80;:::i;4851:91:26:-;13600:2428:92;;-1:-1:-1;;;4908:23:26;;13600:2428:92;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;13600:2428:92;;;;;;-1:-1:-1;;13600:2428:92;;;;;;13796:36;-1:-1:-1;;;;;13600:2428:92;;;;;;;;;;;;-1:-1:-1;;13600:2428:92;;;;;;;1253:6:87;13600:2428:92;;;;;;;;;-1:-1:-1;;13600:2428:92;;;;1267:23:90;13600:2428:92;;;-1:-1:-1;;;;;13600:2428:92;;;;;;;;;;;;;;-1:-1:-1;;13600:2428:92;;;;;;;1356:26:87;13600:2428:92;;;;;;;;;-1:-1:-1;;13600:2428:92;;;;;;;;-1:-1:-1;;;;;13600:2428:92;;;;;;;;;;;;;;-1:-1:-1;;13600:2428:92;;;;;;13745:45;-1:-1:-1;;;;;13600:2428:92;;;;;;;;;;;;-1:-1:-1;;13600:2428:92;;;;;;;;-1:-1:-1;;;;;13600:2428:92;;;;;;;;;;;;;;-1:-1:-1;;13600:2428:92;;;;;;961:42:90;-1:-1:-1;;;;;13600:2428:92;;;;;;;;;;;;-1:-1:-1;;13600:2428:92;;;;;;3901:31:23;13600:2428:92;;;;;:::i;:::-;;;-1:-1:-1;13600:2428:92;-1:-1:-1;;;;;;;;;;;13600:2428:92;;;-1:-1:-1;13600:2428:92;;;;;;;;;;;;;;;;;3901:31:23;13600:2428:92;;;;;;;;;;;;;;;;-1:-1:-1;;13600:2428:92;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;13600:2428:92;;;;;;13838:45;-1:-1:-1;;;;;13600:2428:92;;;;;;;;;;;;-1:-1:-1;;13600:2428:92;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;13600:2428:92;;;;-1:-1:-1;13600:2428:92;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:86;;;;477:31;416:25;;:::i;:::-;13600:2428:92;;;;;;;;;;477:31:86;;13600:2428:92;;;;;;;;;;;:::i;:::-;477:31:86;13600:2428:92;;477:31:86;;;;;;:::i;:::-;518:79;;;13600:2428:92;518:79:86;;13600:2428:92;;;;;;-1:-1:-1;;13600:2428:92;;;;;;;;;;;;;;;;;-1:-1:-1;;13600:2428:92;;;;;;;-1:-1:-1;;;;;404:28:80;13600:2428:92;;;;;;;;;;-1:-1:-1;;13600:2428:92;;;;;;1439:41:87;-1:-1:-1;;;;;13600:2428:92;;;;;;;;;;;;-1:-1:-1;;13600:2428:92;;;;;;:::i;:::-;449:5:93;-1:-1:-1;;;;;13600:2428:92;435:10:93;:19;431:71;;13600:2428:92;14455:67;13600:2428;;;;-1:-1:-1;13600:2428:92;14455:16;13600:2428;;;-1:-1:-1;13600:2428:92;14455:67;:::i;:::-;13600:2428;;;;;;;;;;;;;;;;;;;431:71:93;13600:2428:92;;-1:-1:-1;;;477:14:93;;13600:2428:92;;477:14:93;13600:2428:92;;;;;;-1:-1:-1;;13600:2428:92;;;;;;-1:-1:-1;13600:2428:92;2009:67:87;13600:2428:92;;;;-1:-1:-1;13600:2428:92;;;;;;;;;;;;;;-1:-1:-1;;13600:2428:92;;;;5767:26:23;13600:2428:92;;;;;;;:::i;:::-;;-1:-1:-1;13600:2428:92;-1:-1:-1;;;;;;;;;;;13600:2428:92;;3202:4:23;4919:24;13600:2428:92;-1:-1:-1;13600:2428:92;4919:24:23;13600:2428:92;3202:4:23;:::i;:::-;5767:26;:::i;13600:2428:92:-;;;;;;-1:-1:-1;;13600:2428:92;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;;;;13600:2428:92;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;13600:2428:92;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;13600:2428:92;;;;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;-1:-1:-1;13600:2428:92;;;5246:21:87;;:13;;-1:-1:-1;;;;;13600:2428:92;5246:13:87;13600:2428:92;;-1:-1:-1;;;;;13600:2428:92;;;5246:21:87;13600:2428:92;;-1:-1:-1;;;5246:23:87;;13600:2428:92;;;;;5246:23:87;;;;;;;-1:-1:-1;5246:23:87;;;13600:2428:92;-1:-1:-1;;;;;;13600:2428:92;;;5232:10:87;:37;5228:87;;5341:4;13600:2428:92;-1:-1:-1;;;;;13600:2428:92;;;;5355:469:87;;13600:2428:92;-1:-1:-1;;13600:2428:92;;;;;;;;;;;;;;;;5839:55:87;;13600:2428:92;;;;5839:55:87;;;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;13600:2428:92;3860:283:30;5355:469:87;13600:2428:92;;;;5435:94:87;;;;13600:2428:92;5435:94:87;;;;;;;;;;;;13600:2428:92;5435:94:87;;;:::i;:::-;;13600:2428:92;;5435:94:87;;;;;;:::i;:::-;13600:2428:92;5548:9:87;:51;5544:118;;-1:-1:-1;5839:55:87;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;13600:2428:92;;-1:-1:-1;;;5626:21:87;;13600:2428:92;;5626:21:87;5228:87;13600:2428:92;;-1:-1:-1;;;5292:12:87;;13600:2428:92;;5292:12:87;5246:23;;;;;13600:2428:92;5246:23:87;13600:2428:92;5246:23:87;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;13600:2428:92;;;;;;-1:-1:-1;;13600:2428:92;;;;;;;;-1:-1:-1;;;;;13600:2428:92;;;;;;;;;;;;;;-1:-1:-1;;13600:2428:92;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;13600:2428:92;;;;;;;1150:7:87;13600:2428:92;;;;;;;;;-1:-1:-1;;13600:2428:92;;;;;;;2700:1:87;13600:2428:92;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;13600:2428:92;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;13600:2428:92;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;15098:928::-;13600:2428;;-1:-1:-1;;;15315:99:92;;-1:-1:-1;;;;;13600:2428:92;;;15315:99;;;13600:2428;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13600:2428:92;;;15334:20;13600:2428;;15315:99;;;;;;;;;;;15098:928;-1:-1:-1;13600:2428:92;;-1:-1:-1;;;15508:32:92;;;13600:2428;15315:99;13600:2428;;;;15508:32;;;;;;;15468:84;15508:32;15315:99;15508:32;;;;;;;15098:928;-1:-1:-1;13600:2428:92;;-1:-1:-1;;;15468:84:92;;-1:-1:-1;;;;;13600:2428:92;;;15315:99;15468:84;;13600:2428;;;;;;;;;;;;;-1:-1:-1;13600:2428:92;;;;;;;;;15468:84;;15479:11;;13600:2428;15468:84;;;;;;;15315:99;15468:84;;;15098:928;15599:53;;;;;:::i;:::-;13600:2428;;;15667:21;;;:52;;;15098:928;15667:88;;;;15098:928;15663:357;;15098:928;;;:::o;15663:357::-;15778:231;13600:2428;;;;15778:231;13600:2428;;;;:::i;:::-;;;;15508:32;15806:189;;13600:2428;;15806:189;;13600:2428;;;15778:231;;;15508:32;15778:231;;;:::i;15667:88::-;13600:2428;;;15723:32;;15667:88;;:52;13600:2428;;;15692:27;;15667:52;;15468:84;15599:53;15468:84;;;;;;15315:99;15468:84;;;;;;:::i;:::-;;;;;:::i;:::-;;;;15508:32;;;;;;;;;;;;;;:::i;:::-;;;;15315:99;;;;;;;;;;;;;;:::i;:::-;;;;;1914:201:90;;2045:63;1914:201;;-1:-1:-1;13600:2428:92;2045:16:90;13600:2428:92;;;-1:-1:-1;13600:2428:92;2045:63:90;:::i;13600:2428:92:-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;14535:557::-;;;-1:-1:-1;14672:12:92;13600:2428;;;;;14818:144;;;;;;;;;;;;;13600:2428;;;;;;;14818:144;;;;;:::i;:::-;13600:2428;;716:88:93;;13600:2428:92;716:88:93;;;;;;;;;783:4;14818:144:92;716:88:93;;13600:2428:92;;;;;;;;;;;:::i;:::-;716:88:93;13600:2428:92;716:88:93;13600:2428:92;;716:88:93;;;;;;;;:::i;:::-;698:107;;;;;857:45;698:107;;:::i;:::-;13600:2428:92;;;;857:45:93;;;;;;:::i;:::-;916:8;;912:175;;13600:2428:92;;;14726:288;13600:2428;;14726:288;;;;;;:::i;:::-;15025:61;;;;14535:557;;;:::o;15025:61::-;15058:17;13600:2428;;;;15058:17;13600:2428;;15058:17;;;;;13600:2428;;;;;;;;;;;;15058:17;;;;;;;;;:::i;912:175:93:-;13600:2428:92;;;;944:22:93;;;940:36;;990:87;;13600:2428:92;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;13600:2428:92;;;;:::o;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;13600:2428:92;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;13600:2428:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:87:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;13600:2428:92;;:::i;:::-;;;;3086:20:87;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:87;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;13600:2428:92;;;;;;;;;;3430:180:87;;467:2:99;13600:2428:92;3430:180:87;;;;;:::i;:::-;;13600:2428:92;3444:31:87;-1:-1:-1;;;;;13600:2428:92;3430:180:87;;;;;;;-1:-1:-1;3430:180:87;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;13600:2428:92;;;-1:-1:-1;;;;;;13600:2428:92;3248:161:87;3354:37;;;13600:2428:92;3248:161:87;13600:2428:92;;;;;;;;;;3248:161:87;;;;;;;:::i;:::-;;13600:2428:92;3262:29:87;-1:-1:-1;;;;;13600:2428:92;3248:161:87;;;;;;;-1:-1:-1;3248:161:87;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;13600:2428:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;8889:1:97;13600:2428:92;;;;;;;:::o;:::-;;:::i;3740:389:87:-;3918:5;13600:2428:92;;;-1:-1:-1;;;3853:71:87;;;-1:-1:-1;;;;;13600:2428:92;;;3853:71:87;;;13600:2428:92;;;;;;;;3740:389:87;;13600:2428:92;3853:71:87;;13600:2428:92;;3853:71:87;13600:2428:92;;;3867:29:87;13600:2428:92;;3853:71:87;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;13600:2428:92;;;3852:181:87;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;13600:2428:92;;3945:88:87;;;-1:-1:-1;;;;;13600:2428:92;;3853:71:87;3945:88;;13600:2428:92;467:2:99;13600:2428:92;;;;;;;;-1:-1:-1;13600:2428:92;;;;;;;;3959:31:87;13600:2428:92;3945:88:87;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:87;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;3470:384:30;-1:-1:-1;;;;;;;;;;;1991:1:30;13600:2428:92;;3670:20:30;3666:88;;1991:1;13600:2428:92;;3470:384:30:o;3666:88::-;13600:2428:92;;-1:-1:-1;;;3713:30:30;;;;;3164:253:90;3261:7;13600:2428:92;-1:-1:-1;;;;;13600:2428:92;467:2:99;13600:2428:92;;;3261:31:90;3257:85;;-1:-1:-1;13600:2428:92;3351:16:90;13600:2428:92;;;-1:-1:-1;13600:2428:92;;;837:15:73;;;14374:24:69;14370:103;;837:15:73;;13600:2428:92;6360:12:97;;;;13600:2428:92;;;6360:24:97;6356:75;;3164:253:90;6474:30:97;;;:::i;:::-;13600:2428:92;;;;;;;;10446:8:71;;:63;:8;;;:63;-1:-1:-1;10446:63:71;;-1:-1:-1;;;;;13600:2428:92;;;;10726:7:97;13600:2428:92;;10736:17:97;;;;:::i;:::-;10726:31;;;6604:24;;;10726:31;-1:-1:-1;;6600:188:97;;;6657:7;;6644:29;6657:7;;;;6644:21;6657:7;;:::i;:::-;6644:21;;:::i;:::-;:29;13600:2428:92;;;;;;;;;;;;;;;;;;;;;6600:188:97;6753:24;13600:2428:92;8310:38:71;13600:2428:92;;8310:38:71;;:::i;:::-;6753:24:97;;;:::i;6604:::-;13600:2428:92;6614:14:97;;;-1:-1:-1;6604:24:97;;;;10726:31;;;;10446:63:71;13600:2428:92;;;;;;;;;;13267:109:97;-1:-1:-1;13267:109:97;13600:2428:92;-1:-1:-1;13267:109:97;;;13600:2428:92;;;10446:63:71;;;6356:75:97;6400:20;;;:::i;:::-;6356:75;;14370:103:69;13600:2428:92;;-1:-1:-1;;;14421:41:69;;14452:2;3261:7:90;14421:41:69;;13600:2428:92;837:15:73;13600:2428:92;;;;;;14421:41:69;3257:85:90;13600:2428:92;;-1:-1:-1;;;3315:16:90;;3261:7;;3315:16;4148:103:23;-1:-1:-1;13600:2428:92;;;-1:-1:-1;;;;;;;;;;;13600:2428:92;;;;;;;;966:10:28;13600:2428:92;;;;;;;;;;4468:23:23;4464:108;;4148:103;:::o;7270:387::-;-1:-1:-1;;;;;13600:2428:92;;-1:-1:-1;13600:2428:92;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;13600:2428:92;;;;-1:-1:-1;13600:2428:92;;;;;;;;;;;-1:-1:-1;;;;;13600:2428:92;;;;;;;;;;-1:-1:-1;;13600:2428:92;7509:4:23;13600:2428:92;;;966:10:28;;-1:-1:-1;;;;;13600:2428:92;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;13600:2428:92;;-1:-1:-1;13600:2428:92;;;;;;;;;1356:26:87;;-1:-1:-1;;;;;;;;;;;2887:71:23;13600:2428:92;;3901:31:23;13600:2428:92;;;;-1:-1:-1;13600:2428:92;;;;;;;;;;;-1:-1:-1;;;;;13600:2428:92;;;;;;;;;;-1:-1:-1;;13600:2428:92;7509:4:23;13600:2428:92;;;966:10:28;;-1:-1:-1;;;;;13600:2428:92;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;13600:2428:92;;;-1:-1:-1;;;;;;;;;;;13600:2428:92;;;;;;;;-1:-1:-1;;;;;13600:2428:92;;;;;;;;;;;;3901:31:23;13600:2428:92;7892:388:23;-1:-1:-1;13600:2428:92;;;-1:-1:-1;;;;;;;;;;;13600:2428:92;;;;;;;;-1:-1:-1;;;;;13600:2428:92;;;;;;;;;;;;;;;;-1:-1:-1;13600:2428:92;;;;;;;;;;;-1:-1:-1;;;;;13600:2428:92;;;;;;;;;;-1:-1:-1;;13600:2428:92;;;966:10:28;;-1:-1:-1;;;;;13600:2428:92;;8155:40:23;-1:-1:-1;;8155:40:23;13600:2428:92;8209:11:23;:::o;13600:2428:92:-;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;13600:2428:92;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:97:-;;13600:2428:92;;7686:17:97;7682:83;;13600:2428:92;7789:27:97;13600:2428:92;7789:27:97;13600:2428:92;;7789:27:97;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;13600:2428:92;;;;;;;;;;;;;;;;7888:22:97;;;7884:77;;7975:21;-1:-1:-1;7975:84:97;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;13600:2428:92;8075:24:97;:::o;7975:84::-;13600:2428:92;;;8009:16:97;13600:2428:92;;8009:16:97;:::i;:::-;13600:2428:92;;;8001:24:97;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;13600:2428:92;;;;;8029:23:97;13600:2428:92;;;;8029:29:97;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;13600:2428:92;7926:24:97;:::o;7682:83::-;7726:28;;;;:::i;13600:2428:92:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;13600:2428:92;;;;;;;;:::i;5907:716:87:-;6030:34;5907:716;6030:34;;;;:::i;:::-;13600:2428:92;;-1:-1:-1;;;6080:41:87;;-1:-1:-1;;;;;13600:2428:92;;;6080:41:87;;;13600:2428:92;;;;;6080:41:87;13600:2428:92;;;6090:13:87;13600:2428:92;;6080:41:87;;;;;;;-1:-1:-1;6080:41:87;;;5907:716;6079:42;;6075:90;;6266:27;13600:2428:92;2684:111:30;6210:14:87;13600:2428:92;2684:111:30;;;:::i;:::-;13600:2428:92;;;;;;-1:-1:-1;;;;;13600:2428:92;;-1:-1:-1;13600:2428:92;;;-1:-1:-1;13600:2428:92;;6210:14:87;6266:27;:::i;:::-;6080:41;6311:15;;13600:2428:92;;;;-1:-1:-1;;;;;;13600:2428:92;-1:-1:-1;;;;;13600:2428:92;;;;;;;;;;;-1:-1:-1;;;;;13600:2428:92;;;;6337:143:87;;5907:716;-1:-1:-1;6493:28:87;13600:2428:92;-1:-1:-1;;;;;13600:2428:92;;;;;;;6489:128:87;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;13600:2428:92;;-1:-1:-1;;;6144:10:87;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;13600:2428:92;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;13600:2428:92;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;13600:2428:92;;-1:-1:-1;13600:2428:92;;;-1:-1:-1;13600:2428:92;:::o;:::-;;;;;;;;;;;;8406:869:97;;;13600:2428:92;;8620:15:97;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;13600:2428:92;9219:31:97;13600:2428:92;9130:48:97;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;9130:48;13600:2428:92;:::i;:::-;;9176:1:97;13600:2428:92;9232:17:97;13600:2428:92;;;;;;;;9232:17:97;;13600:2428:92;-1:-1:-1;;;;;13600:2428:92;;;;9219:12:97;;:31;:::i;:::-;13600:2428:92;;;;;;;;;9259:7:97;;:::i;:::-;13600:2428:92;;;;9252:15:97;9176:1;;9188:80;;8406:869::o;9010:62::-;8578:11;;-1:-1:-1;8578:11:97;;-1:-1:-1;8578:11:97;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;13600:2428:92;;;;;;;8939:60:97;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;13600:2428:92;;;;;;8753:55:97;13600:2428:92;;;8753:55:97;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;13600:2428:92;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;13600:2428:92;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;2121:740:90:-;;;;;13600:2428:92;;:::i;:::-;;;;2362:16:90;2358:92;;2121:740;-1:-1:-1;;2464:7:90;13600:2428:92;467:2:99;13600:2428:92;;;-1:-1:-1;;;;;13600:2428:92;;;2464:31:90;;;;;13600:2428:92;2464:56:90;;2121:740;2460:120;;;;-1:-1:-1;13600:2428:92;2637:67:90;;13600:2428:92;;2676:27:90;;2637;;:13;;-1:-1:-1;;;;;13600:2428:92;2637:13:90;13600:2428:92;2637:27:90;2676;;;;13600:2428:92;;;;;;;;;;;2637:67:90;;;2464:7;2637:67;;;:::i;:::-;;;;;;;;;;2611:198;2637:67;-1:-1:-1;2637:67:90;;;2121:740;2763:31;2722:73;2763:31;;13600:2428:92;2763:31:90;;;2722:73;;:::i;:::-;2611:198;3463:5:68;;;;3066;;13600:2428:92;3060:42:68;3371:111;;2611:198:90;2823:21;;2121:740;:::o;2637:67::-;2722:73;2637:67;;;;2676:27;2637:67;2676:27;2637:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;2460:120;-1:-1:-1;;2547:21:90;;-1:-1:-1;;2536:33:90:o;2464:56::-;2499:8;13600:2428:92;;;-1:-1:-1;;;;;13600:2428:92;;;2499:21:90;;;-1:-1:-1;2464:56:90;;;;2358:92;2408:31;;;;;;;;;;;;;:::i;:::-;2358:92;;;;;2867:291;2977:7;13600:2428:92;2867:291:90;;13600:2428:92;;;;-1:-1:-1;;;;;13600:2428:92;;;2977:31:90;;;;13600:2428:92;2977:56:90;;2867:291;2973:95;;;;-1:-1:-1;13600:2428:92;2977:7:90;;13600:2428:92;3094:27:90;;:25;;:13;;-1:-1:-1;;;;;13600:2428:92;3094:13:90;13600:2428:92;3094:25:90;13600:2428:92;;-1:-1:-1;;;3094:27:90;;13600:2428:92;;;;;3094:27:90;;;;;;;3085:66;3094:27;-1:-1:-1;3094:27:90;;;2867:291;3123:27;;;13600:2428:92;;4459:15:87;13600:2428:92;;;;;;;3123:27:90;13600:2428:92;3085:66:90;3463:5:68;;;;3066;;13600:2428:92;3060:42:68;3371:111;;3094:27:90;3123;3094;;;;;;;;;;;;;;;:::i;:::-;;;;;2977:56;3012:8;13600:2428:92;;;-1:-1:-1;;;;;13600:2428:92;;;3012:21:90;;;-1:-1:-1;2977:56:90;;;;13600:2428:92;;;-1:-1:-1;;;13600:2428:92;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;13600:2428:92;;;;;;;;;;;;;;;:::i;6999:207:97:-;;13600:2428:92;;9737:15:71;-1:-1:-1;9762:18:71;9795:7;9801:1;9795:7;;9791:234;;6999:207:97;10049:53:71;;;;;:::i;:::-;10120:8;;;:63;-1:-1:-1;10120:63:71;;-1:-1:-1;;;;;13600:2428:92;;7168:7:97;13600:2428:92;;;7178:12:97;;:17;:12;;:17;:::i;10120:63:71:-;10135:41;10168:7;10135:48;10168:7;;:::i;:::-;10135:41;13267:109:97;;;;;;13089:293;;10135:41:71;13600:2428:92;;;;;10135:48:71;10120:63;;;9791:234;9838:14;;;;;:::i;:::-;13600:2428:92;;;;;;;10049:53:71;13267:109:97;;-1:-1:-1;13267:109:97;13600:2428:92;13267:109:97;;;-1:-1:-1;13267:109:97;;13600:2428:92;;;;;9870:48:71;9866:149;13600:2428:92;;;9938:10:71;9866:149;9791:234;;9866:149;9993:7;;;;;;:::i;:::-;9866:149;9791:234;;13600:2428:92;;;;;;;:::i;:::-;-1:-1:-1;13600:2428:92;;;;;;;:::o;11486:272:97:-;;13600:2428:92;11452:22:71;11718:31:97;11486:272;13600:2428:92;;:::i;:::-;;;;:::i;:::-;;11452:22:71;;:::i;:::-;13600:2428:92;;:::i;:::-;;11718:12:97;13600:2428:92;;;;;11731:17:97;13600:2428:92;;;;;11731:17:97;;13600:2428:92;;11718:12:97;;:31;:::i;:::-;13600:2428:92;;;;;;;;;:::i;:::-;;;;;;11731:17:97;11672:79;;13600:2428:92;11486:272:97;:::o;6893:76:26:-;;;:::i;:::-;;;:::i;:::-;1949:1:30;-1:-1:-1;;;;;;;;;;;13600:2428:92;6893:76:26:o;13600:2428:92:-;;;;;;;:::i;:::-;-1:-1:-1;13600:2428:92;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;3423:520:90:-;13600:2428:92;;:::i;:::-;;3571:30:90;13600:2428:92;;3571:30:90;;;;;;;;;;;:::i;:::-;3654:14;;;13600:2428:92;;;;-1:-1:-1;;;3617:52:90;;;-1:-1:-1;;;;;13600:2428:92;;;3617:52:90;;;13600:2428:92;3654:14:90;;13600:2428:92;;;3654:14:90;13600:2428:92;;;3627:16:90;13600:2428:92;;3617:52:90;;;;;;;-1:-1:-1;3617:52:90;;;3423:520;3616:53;;3612:103;;3768:15;3730:54;3768:15;13600:2428:92;3768:15:90;;13600:2428:92;;;;;;;;;;;;;;;3730:54:90;;;-1:-1:-1;;;;;13600:2428:92;3617:52:90;3730:54;;13600:2428:92;;;;;-1:-1:-1;13600:2428:92;;;;;;;;;3730:54:90;;3740:17;;13600:2428:92;3730:54:90;;;;;;;-1:-1:-1;3730:54:90;;;3423:520;3729:55;;;3725:106;;13600:2428:92;3617:52:90;13600:2428:92;;-1:-1:-1;;;;;13600:2428:92;;;-1:-1:-1;;;;;;13600:2428:92;;;;;;;;;3875:26:90;13600:2428:92;;;;;;;;;;3919:17:90;3423:520;:::o;3725:106::-;13600:2428:92;;-1:-1:-1;;;3807:13:90;;3617:52;;3807:13;3730:54;;;;;;-1:-1:-1;3730:54:90;;;;;;:::i;:::-;;;;;3617:52;;;;;;;;;;;;;;:::i;:::-;;;;18080:5181:68;18246:1;18241:6;;;18237:53;;18246:1;19217:14;-1:-1:-1;;;19278:16:68;;;19274:92;;18080:5181;22827:18;22717;22607;22498;22387;22278;23216:28;19383:15;19898:6;19383:15;-1:-1:-1;;;23237:6:68;19383:15;;;19379:90;;18080:5181;19493:7;19486:15;;;19482:90;;18080:5181;19596:7;19589:15;;;19585:89;;18080:5181;19698:6;19691:14;;;19687:87;;18080:5181;19798:6;19791:14;;;19787:87;;18080:5181;19891:14;;19887:61;;18080:5181;20374:1;13600:2428:92;18246:1:68;13600:2428:92;22284:6:68;;;;:::i;:::-;13600:2428:92;;;;;22278:18:68;22393:6;;;;:::i;22387:18::-;22504:6;;;;:::i;22498:18::-;22613:6;;;;:::i;22607:18::-;22723:6;;;;:::i;22717:18::-;22833:6;;;;:::i;22827:18::-;23237:6;;;:::i;:::-;23232:11;;;13600:2428:92;23216:28:68;13600:2428:92;;18080:5181:68;:::o;19887:61::-;18246:1;13600:2428:92;19887:61:68;;19787:87;13600:2428:92;;;;;19787:87:68;;;19687;13600:2428:92;;;;;19687:87:68;;;19585:89;13600:2428:92;;;;;19585:89:68;;;19482:90;13600:2428:92;;;;;19482:90:68;;;19379;13600:2428:92;;;;;19379:90:68;;;19274:92;-1:-1:-1;;;;13600:2428:92;-1:-1:-1;13600:2428:92;;;;19274:92:68;;12497:447:97;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;3721:5:68;;;;;;13600:2428:92;;3731:5:68;;;13600:2428:92;;;;;;;;;13267:109:97;-1:-1:-1;13267:109:97;13600:2428:92;13267:109:97;;;-1:-1:-1;13267:109:97;;13600:2428:92;;;;;-1:-1:-1;12771:136:97;13600:2428:92;;;12830:10:97;;12771:136;;12687:230;;;;12771:136;13600:2428:92;;;;;;;;;;;12771:136:97;;;10695:389:71;13600:2428:92;;10871:8:71;;;10895:20;;10833:17;10895:20;10833:17;10895:20;10833:17;10895:20;:::o;10867:211::-;13600:2428:92;;;;;;;;;;10833:17:71;13267:109:97;;10833:17:71;13267:109:97;;;13600:2428:92;11014:1:71;13600:2428:92;;;;;;;11030:37:71;:::o;7084:141:26:-;13600:2428:92;-1:-1:-1;;;;;;;;;;;13600:2428:92;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;13600:2428:92;;-1:-1:-1;;;7191:17:26;;;;;13600:2428:92;;;-1:-1:-1;;;13600:2428:92;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;13600:2428:92;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11657:922:71;13600:2428:92;;11657:922:71;;;11864:7;;;;11936;11916:28;11936:7;;:::i;:::-;11916:28;13267:109:97;;;;;;13089:293;;11916:28:71;13600:2428:92;;;;;;;;;;;;12103:13:71;;;12099:89;;12251:14;;;;;12285:19;;;;13600:2428:92;;;;;;;;;;;;;;;;;12285:19:71;13600:2428:92;;12423:25:71;;:::o;12247:163::-;13600:2428:92;;;12343:52:71;13600:2428:92;12353:41:71;13600:2428:92;;:::i;:::-;;;;;;;;12353:41:71;-1:-1:-1;;;;;13600:2428:92;;12353:41:71;;;13600:2428:92;12343:52:71;:::i;:::-;12247:163;;12099:89;13600:2428:92;;-1:-1:-1;;;12143:30:71;;;;;11860:713;13600:2428:92;;12479:52:71;13600:2428:92;12489:41:71;13600:2428:92;;:::i;12489:41:71:-;-1:-1:-1;;;;;13600:2428:92;;12489:41:71;;;13600:2428:92;12343:52:71;:::i;12479:::-;11870:1;12545:17;;:::o","linkReferences":{},"immutableReferences":{"59800":[{"start":1579,"length":32}],"59803":[{"start":3566,"length":32}],"60754":[{"start":989,"length":32},{"start":3623,"length":32},{"start":10170,"length":32}],"60757":[{"start":723,"length":32},{"start":8146,"length":32}],"60760":[{"start":791,"length":32},{"start":6209,"length":32},{"start":6512,"length":32}],"60763":[{"start":859,"length":32},{"start":6056,"length":32},{"start":6638,"length":32}],"62379":[{"start":3099,"length":32},{"start":10291,"length":32}],"64153":[{"start":2991,"length":32},{"start":4969,"length":32}],"64155":[{"start":2757,"length":32},{"start":5130,"length":32}],"64157":[{"start":3314,"length":32}],"64360":[{"start":3697,"length":32}]}},"methodIdentifiers":{"BASE_DELEGATOR_HINTS()":"79d89614","DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_REGISTRY()":"83ce0322","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","OPT_IN_SERVICE_HINTS()":"9b656b22","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VAULT_HINTS()":"45e78fcb","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","maxNetworkLimitAt(bytes32,uint48,bytes)":"437224a3","maxNetworkLimitHint(address,bytes32,uint48)":"991d1162","maxNetworkLimitHintInternal(bytes32,uint48)":"d0f1f901","network()":"6739afca","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operator()":"570ca735","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","stakeHints(address,bytes32,address,uint48)":"25dc9708","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseDelegatorHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"optInServiceHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPT_IN_SERVICE_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"maxNetworkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"maxNetworkLimitHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"maxNetworkLimitHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"network\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"maxNetworkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the maximum subnetwork limit at\"},\"returns\":{\"_0\":\"maximum limit of the subnetwork\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_REGISTRY()\":{\"notice\":\"Get the operator registry's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"maxNetworkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a particular subnetwork's maximum limit at a given timestamp using a hint (meaning the subnetwork is not ready to get more as a stake).\"},\"network()\":{\"notice\":\"Get a network the vault delegates funds to.\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operator()\":{\"notice\":\"Get an operator managing the vault's funds.\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/DelegatorHints.sol\":\"OperatorNetworkSpecificDelegatorHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf\",\"dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x4aaaf1c0737dd16e81f0d2b9833c549747a5ede6873bf1444bc72aa572d03e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eada27d7668eebaea16c3b890aa1b38ffc53965292e26c96f7c44834623f4710\",\"dweb:/ipfs/QmVSWuLtxyCqNbLyY89ptxkvsk4CLLKDQYigEne5Qj8k1L\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a\",\"dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c\",\"dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e\",\"dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0xbdc3bb48ccedb818cd75a6d74a16df55a822e9f6d3cc54c59f576f10aab67b5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2284f25f2478f419d7781573b17a89d0e7c5589a865d55e2d6ed5163aee23aa8\",\"dweb:/ipfs/QmNsr2625APBQiNKpYnX5VcSnYgfUHR9Uzzp9pRXjoDqK7\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44\",\"dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x303ad40a3de8fa808cc30a6fbd5998633f6a89b982e6db1fa981e0566ab445e7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fa8fb92995ead02798e013190b87b84b44cc68668262f045c9b0b4783940e2bf\",\"dweb:/ipfs/QmV1uKGVLKwWisc714R8fCt71gXUQJpaKvdc6LQ8WtvMpL\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0xd71e9102e99a25ee8b5435779f011a24558f56074aa2b16c18b623b57754ae97\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://29db5552e55dab51bea1ae40ba00ca674cb50fcb10997999a72a94527b6eb591\",\"dweb:/ipfs/QmQrYyTPx73ubNxMhYWJCkprCVFVtuTFcKaabYiKTe71tY\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x7ee6dbf060c45d6eba95315f4ac0b3b467dd9c4999b84c31d6f66d4d8b53a116\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://301948b8ea522db292aa2722ba42def3911dae95f0b376f7023c3fef470f8676\",\"dweb:/ipfs/QmSDbP2HdzhDAzstr8Zz5isEAcSkma8ABc5UwPsoazaumZ\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseDelegatorHints","type":"address"},{"internalType":"address","name":"vaultHints","type":"address"},{"internalType":"address","name":"optInServiceHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidNetwork"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotOperator"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPT_IN_SERVICE_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"maxNetworkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"maxNetworkLimitHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"maxNetworkLimitHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"network","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"maxNetworkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the maximum subnetwork limit at"},"returns":{"_0":"maximum limit of the subnetwork"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_REGISTRY()":{"notice":"Get the operator registry's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"maxNetworkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a particular subnetwork's maximum limit at a given timestamp using a hint (meaning the subnetwork is not ready to get more as a stake)."},"network()":{"notice":"Get a network the vault delegates funds to."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operator()":{"notice":"Get an operator managing the vault's funds."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/DelegatorHints.sol":"OperatorNetworkSpecificDelegatorHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866","urls":["bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf","dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab","urls":["bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89","dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606","urls":["bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1","dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x4aaaf1c0737dd16e81f0d2b9833c549747a5ede6873bf1444bc72aa572d03e98","urls":["bzz-raw://eada27d7668eebaea16c3b890aa1b38ffc53965292e26c96f7c44834623f4710","dweb:/ipfs/QmVSWuLtxyCqNbLyY89ptxkvsk4CLLKDQYigEne5Qj8k1L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol":{"keccak256":"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549","urls":["bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a","dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed","urls":["bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0","dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d","urls":["bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c","dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575","urls":["bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e","dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0xbdc3bb48ccedb818cd75a6d74a16df55a822e9f6d3cc54c59f576f10aab67b5f","urls":["bzz-raw://2284f25f2478f419d7781573b17a89d0e7c5589a865d55e2d6ed5163aee23aa8","dweb:/ipfs/QmNsr2625APBQiNKpYnX5VcSnYgfUHR9Uzzp9pRXjoDqK7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f","urls":["bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44","dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x303ad40a3de8fa808cc30a6fbd5998633f6a89b982e6db1fa981e0566ab445e7","urls":["bzz-raw://fa8fb92995ead02798e013190b87b84b44cc68668262f045c9b0b4783940e2bf","dweb:/ipfs/QmV1uKGVLKwWisc714R8fCt71gXUQJpaKvdc6LQ8WtvMpL"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0xd71e9102e99a25ee8b5435779f011a24558f56074aa2b16c18b623b57754ae97","urls":["bzz-raw://29db5552e55dab51bea1ae40ba00ca674cb50fcb10997999a72a94527b6eb591","dweb:/ipfs/QmQrYyTPx73ubNxMhYWJCkprCVFVtuTFcKaabYiKTe71tY"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x7ee6dbf060c45d6eba95315f4ac0b3b467dd9c4999b84c31d6f66d4d8b53a116","urls":["bzz-raw://301948b8ea522db292aa2722ba42def3911dae95f0b376f7023c3fef470f8676","dweb:/ipfs/QmSDbP2HdzhDAzstr8Zz5isEAcSkma8ABc5UwPsoazaumZ"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":92} \ No newline at end of file diff --git a/out/DelegatorHints.sol/OperatorSpecificDelegatorHints.json b/out/DelegatorHints.sol/OperatorSpecificDelegatorHints.json index a3bf8f24..10f66272 100644 --- a/out/DelegatorHints.sol/OperatorSpecificDelegatorHints.json +++ b/out/DelegatorHints.sol/OperatorSpecificDelegatorHints.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"baseDelegatorHints","type":"address","internalType":"address"},{"name":"vaultHints","type":"address","internalType":"address"},{"name":"optInServiceHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPT_IN_SERVICE_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VAULT_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DuplicateRoleHolder","inputs":[]},{"type":"error","name":"ExceedsMaxNetworkLimit","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"MissingRoleHolders","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotOperator","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddressRoleHolder","inputs":[]}],"bytecode":{"object":"0x6101e0346101d557601f61316638819003918201601f19168301916001600160401b0391828411858510176101d95781606092869260409687528339810103126101d55761004c836101ed565b926100648361005d602084016101ed565b92016101ed565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101c4578080831603610180575b5050505f60a0525f60c0525f60e052610100935f8552610120935f85526101405f8152610160915f83526101809384526101a09485526101c09586525195612f64978861020289396080518861048c015260a051886107a4015260c05188610f6c015260e0518881816105950152610fa50152518781816103bf0152612299015251868181610403015281816119720152611aa1015251858181610513015281816118d90152611b1f015251848181610dce0152612aff015251838181610d29015261149a015251828181610b0e015261153b01525181610e700152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101d55756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610284578063021453481461027f578063103f29071461027a578063128e5d8214610275578063197aa7ea146102705780631a80e5001461026b57806323f752d514610266578063248a9ca31461026157806325dc97081461025c5780632dd31000146102575780632f2ff15d1461025257806336568abe1461024d5780633dfd3873146102485780633eb22c0f14610243578063439fab911461023e57806345e78fcb14610239578063557cab4414610234578063570ca7351461022f5780635d32a1c91461022a5780636679191e1461022557806379d89614146102205780637d24bb271461021b5780637f5a7c7b1461021657806383ce03221461021157806391d148541461020c5780639b656b22146102075780639f86fd8514610202578063a217fddf146101fd578063bb24fe8a146101f8578063c0cd7c3e146101f3578063d15b740e146101ee578063d547741f146101e9578063da749d2b146101e4578063e02f6937146101df578063e49561ee146101da578063fbfa77cf146101d5578063fd4d447c146101d0578063ff54740f146101cb5763ffa1ad74146101c6575f80fd5b61132d565b611310565b6112e6565b6112bf565b6110d4565b61107f565b61104a565b610ffe565b610fd4565b610f90565b610f4d565b610f33565b610e9f565b610e5b565b610dfd565b610db9565b610d91565b610d58565b610d14565b610cda565b610c89565b610b59565b610b3d565b610af9565b6109c1565b610963565b61086a565b61081f565b6107d3565b61078f565b610736565b6106c8565b610542565b6104fe565b610471565b6103ee565b6103aa565b6102de565b346102da5760203660031901126102da5760043563ffffffff60e01b81168091036102da57602090637965db0b60e01b81149081156102c9575b506040519015158152f35b6301ffc9a760e01b1490505f6102be565b5f80fd5b346102da576040806003193601126102da576004359060243590610300611b94565b825f526002602052805f2054821161039a57825f52600360205281610326825f206121eb565b1461038a5781610385916103757e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f94610366875f52600360205260405f2090565b61036f4261272b565b90611c93565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6024359065ffffffffffff821682036102da57565b6064359065ffffffffffff821682036102da57565b6044359065ffffffffffff821682036102da57565b346102da5760403660031901126102da5761048a610432565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036104ec5763ffffffff6104d76040926004355f526003602052835f20611d79565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da576004356001600160601b03811681036102da5760243590610572611e88565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106c3575f91610694575b5015610682576001600160601b03166bffffffffffffffffffffffff193360601b161790806105fc835f52600260205260405f2090565b541461067057610655817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c9261063a855f52600260205260405f2090565b556106458185611eb7565b6040519081529081906020820190565b0390a261066e60015f80516020612eef83398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6106b6915060203d6020116106bc575b6106ae8183610beb565b810190611355565b5f6105c5565b503d6106a4565b61136c565b346102da5760203660031901126102da576004355f525f80516020612ecf8339815191526020526020600160405f200154604051908152f35b6001600160a01b038116036102da57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102da5760803660031901126102da5761078b61077760043561075981610701565b60443561076581610701565b61076d610447565b9160243590611451565b604051918291602083526020830190610712565b0390f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da5761066e6024356004356107f682610701565b805f525f80516020612ecf83398151915260205261081a600160405f200154611bf0565b612123565b346102da5760403660031901126102da5760243561083c81610701565b336001600160a01b038216036108585761066e90600435612159565b60405163334bd91960e11b8152600490fd5b346102da5760203660031901126102da5760043561088781610701565b61088f611e88565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff161561094557506001546001600160a01b039182169181168214610670576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612eef83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346102da5760203660031901126102da576004355f526003602052602061098c60405f206121eb565b604051908152f35b9181601f840112156102da578235916001600160401b0383116102da57602083818601950101116102da57565b346102da5760203660031901126102da576001600160401b036004358181116102da576109f2903690600401610994565b5f80516020612f0f833981519152549260ff8460401c1615931680159081610af1575b6001149081610ae7575b159081610ade575b50610acc575f80516020612f0f833981519152805467ffffffffffffffff19166001179055610a5a9183610aa857612264565b610a6057005b5f80516020612f0f833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612f0f833981519152805460ff60401b1916600160401b179055612264565b60405163f92ee8a960e01b8152600490fd5b9050155f610a27565b303b159150610a1f565b849150610a15565b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da576020604051614e208152f35b346102da575f3660031901126102da576004546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610bb057604052565b610b81565b606081019081106001600160401b03821117610bb057604052565b608081019081106001600160401b03821117610bb057604052565b90601f801991011681019081106001600160401b03821117610bb057604052565b60405190610c1982610bb5565b565b60405190610c1982610b95565b6001600160401b038111610bb057601f01601f191660200190565b81601f820112156102da57803590610c5a82610c28565b92610c686040519485610beb565b828452602083830101116102da57815f926020809301838601378301015290565b346102da5760603660031901126102da57610ca2610432565b6044356001600160401b0381116102da57602091610cc761098c923690600401610c43565b906004355f526003845260405f206123cb565b346102da575f3660031901126102da5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b346102da575f3660031901126102da576001546040516001600160a01b039091168152602090f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da57602060ff610e4f602435610e2181610701565b6004355f525f80516020612ecf833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da57600435610ebc81610701565b6024356001600160401b0381116102da575f91610ede83923690600401610994565b90816040519283928337810184815203915af4610f2b610efc61164d565b91610f1d604051938492151560208401526040808401526060830190610712565b03601f198101835282610beb565b805190602001fd5b346102da575f3660031901126102da5760206040515f8152f35b346102da575f3660031901126102da5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760203660031901126102da576004355f526002602052602060405f2054604051908152f35b346102da5760403660031901126102da5761066e60243560043561102182610701565b805f525f80516020612ecf833981519152602052611045600160405f200154611bf0565b612159565b346102da5760603660031901126102da5761078b61077760043561106d81610701565b61107561045c565b90602435906116ae565b346102da5760803660031901126102da5760243561109c81610701565b6110a461045c565b90606435906001600160401b0382116102da576020926110cb61098c933690600401610c43565b91600435611863565b346102da5760a03660031901126102da576024356004356110f482610701565b60443591611100610447565b90608435906001600160401b0382116102da5761112260049236908401610c43565b61112a611e88565b5f5460209061114f90611143906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156106c3575f9361128e575b506001600160a01b03928316330361127c576001546001600160a01b03168381166111f1575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361066e60015f80516020612eef83398151915255565b9093604051946112288661121a602082019363724ab0f760e11b8552858c898d602487016119ed565b03601f198101885287610beb565b62042e305a1061126a575f6111d8938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611197565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b6112b191935060203d6020116112b8575b6112a98183610beb565b8101906113ed565b915f611171565b503d61129f565b346102da575f3660031901126102da575f546040516001600160a01b039091168152602090f35b346102da5760403660031901126102da57602061098c60243561130881610701565b600435611a6a565b346102da575f3660031901126102da5760206040516203d0908152f35b346102da575f3660031901126102da57602060405160018152f35b519081151582036102da57565b908160209103126102da5761136990611348565b90565b6040513d5f823e3d90fd5b81601f820112156102da5780519061138e82610c28565b9261139c6040519485610beb565b828452602083830101116102da57815f9260208093018386015e8301015290565b906020828203126102da5781516001600160401b0381116102da576113699201611377565b5190610c1982610701565b908160209103126102da575161136981610701565b9061136991602081526114218251606060208401526080830190610712565b9060606040611441602086015194601f1995868683030184870152610712565b9401519282850301910152610712565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052938416604482015265ffffffffffff8516606482015260609594909391925f856084817f000000000000000000000000000000000000000000000000000000000000000087165afa9485156106c3575f9561161b575b5060405163fbfa77cf60e01b81526020816004818888165afa9081156106c357611537945f92859284916115fc575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff90921660248301529094859190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9283156106c3575f936115d6575b5061157692936116ae565b908251158015906115cc575b80156115c2575b61159257505050565b610f1d9394509061136992916115a6610c0c565b9283526020830152604082015260405192839160208301611402565b5081511515611589565b5080511515611582565b61157693506115f6903d805f833e6115ee8183610beb565b8101906113bd565b9261156b565b611615915060203d6020116112b8576112a98183610beb565b5f6114fa565b6116309195503d805f833e6115ee8183610beb565b935f6114cb565b9061136992915f52600360205260405f206123cb565b3d15611677573d9061165e82610c28565b9161166c6040519384610beb565b82523d5f602084013e565b606090565b519063ffffffff821682036102da57565b91908260409103126102da5761136960206116a784611348565b930161167c565b92915f8060609565ffffffffffff60405194602096630cbd53f560e11b888801526024870152166044850152604484526116e784610bd0565b604051938461171487820192639f86fd8560e01b8452306024840152604060448401526064830190610712565b0394611728601f1996878101835282610beb565b51915afa5061174661173861164d565b8380825183010191016124a3565b90156117995780838061175e9351830101910161168d565b929061176957505050565b6113699293945061178d604051948592830191909163ffffffff6020820193169052565b03908101835282610beb565b809150519182156102da5701fd5b604051906117b482610b95565b60606020838281520152565b906020828203126102da5781516001600160401b03928382116102da5701906040828203126102da57604051926117f684610b95565b82518181116102da578261180b918501611377565b845260208301519081116102da576118239201611377565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261136992910190610712565b92611873909291928284866125ac565b92909361187e6117a7565b938051806119d1575b5050841593841561193b575b84156118aa575b505050506118a55790565b505f90565b6020809495506118d5910151604051958694859463530e1d4360e01b865260601c906004860161182b565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106c3575f9161191c575b50155f80808061189a565b611935915060203d6020116106bc576106ae8183610beb565b5f611911565b5f549094506001600160a01b031660208486519261196e604051948593849363530e1d4360e01b8552896004860161182b565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106c3575f916119b2575b501593611893565b6119cb915060203d6020116106bc576106ae8183610beb565b5f6119aa565b6119e59295506020809183010191016117c0565b925f80611887565b919360a093611369969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610712565b634e487b7160e01b5f52601160045260245ffd5b8115611a43570490565b634e487b7160e01b5f52601260045260245ffd5b9060018201809211611a6557565b611a25565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156106c3575f91611b77575b5015918215611af3575b50509050611aed57611369916126a7565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156106c3575f92611b5a575b505015805f80611adc565b611b709250803d106106bc576106ae8183610beb565b5f80611b4f565b611b8e9150843d86116106bc576106ae8183610beb565b5f611ad2565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b5416156109455750565b5f8181525f80516020612ecf83398151915260209081526040808320338452909152902060ff90611be6565b634e487b7160e01b5f52603260045260245ffd5b8054821015611c45575f5260205f2001905f90565b611c1c565b90815491600160401b831015610bb05782611c6d916001610c1995018155611c30565b90919082549060031b91821b915f19901b1916179055565b5f19810191908211611a6557565b90929192600182019081548015611d25575b5084611cb08461275d565b50949092845493611cc0836121eb565b9681611d10575b5015611ced575050505f198101908111611a6557611c6d8591611ce993611c30565b9190565b611ce9949293611d09926001600160d01b039091169190612dc3565b5050611c4a565b65ffffffffffff83811691161490505f611cc7565b600160401b811015610bb057806001611d419201845583611c30565b8154905f199060031b1b191690555f611ca5565b90604051611d6281610b95565b915465ffffffffffff8116835260301c6020830152565b91908254905f829160058411611e21575b611d959350856128c1565b908115611e1557611e0e611e05611dff611df5611dc7611dc2611db788611c85565b895f5260205f200190565b611d55565b966001611dee6020611ddf8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101611c30565b90549060031b1c90565b93611c85565b63ffffffff1690565b6001939291565b5f925082915081908190565b9192611e2c81612796565b8103908111611a6557611d9593865f52611e60611e558360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff85161015611e76575091611d8a565b929150611e8290611a57565b90611d8a565b5f80516020612eef8339815191526002815414611ea55760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f2081611ece8261275d565b919390508315611f2c57611eee916001600160d01b031690600101611c30565b90549060031b1c5b82611f22575b5050611f06575050565b611f1e915f52600360205260405f2061036f4261272b565b5050565b119050815f611efc565b50505f611ef6565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612ecf8339815191529060ff16611aed575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612ecf8339815191529060ff905b54166120ae575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f80516020612ecf8339815191529060ff9061204a565b5f8181525f80516020612ecf833981519152602081815260408084206001600160a01b038716855290915290912060ff9061204a565b5f8181525f80516020612ecf833981519152602081815260408084206001600160a01b03871685529091529091205460ff16156120ae575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b80548061221057505f5b6001600160d01b03811615611aed576001611df59201611c30565b5f19908082810111611a6557825f5260205f2001015460301c6121f5565b9190916040818403126102da57803561224681610701565b9260208201356001600160401b0381116102da576113699201610c43565b6122709181019061222e565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156106c3575f91612383575b50156123715761230560409161230061234b946122e5612923565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612a8f565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116612361575b5001516001600160a01b031690565b9081166123555750565b61235e90611fdf565b50565b61236a90611f34565b505f61233c565b6040516362df054560e01b8152600490fd5b61239c915060203d6020116106bc576106ae8183610beb565b5f6122ca565b908160209103126102da576113699061167c565b90600163ffffffff80931601918211611a6557565b9180511561249957806020806123e6935183010191016123a2565b916123f18382612d00565b92612402845165ffffffffffff1690565b9065ffffffffffff808516921682811461248d5782119182612438575b505061242f576113699250612c30565b50506020015190565b9091506124458354611c85565b63ffffffff83161491821561245e575b50505f8061241f565b612485919250612479612473611e55926123b6565b85612d00565b5165ffffffffffff1690565b115f80612455565b50505050506020015190565b5061136991612c30565b9190916040818403126102da576124b981611348565b9260208201516001600160401b0381116102da576113699201611377565b604051906124e482610bb5565b60606040838281528260208201520152565b906020828203126102da5781516001600160401b03928382116102da5701906060828203126102da576040519261252c84610bb5565b82518181116102da5782612541918501611377565b845260208301518181116102da578261255b918501611377565b602085015260408301519081116102da576125769201611377565b604082015290565b908160209103126102da575190565b60409065ffffffffffff61136994931681528160208201520190610712565b909392936125b86124d7565b9480518061268b575b50506004546001600160a01b03918216911603612683575f546126189291906020906125f790611143906001600160a01b031681565b8187015190604051808097819463810da75d60e01b8352886004840161258d565b03915afa9081156106c35761264b935f92612650575b5061263f9192604087015191611637565b90818082109118021890565b915190565b61263f92506126769060203d60201161267c575b61266e8183610beb565b81019061257e565b9161262e565b503d612664565b505090515f91565b61269f9296506020809183010191016124f6565b935f806125c1565b6004546001600160a01b039290831690831603611aed5760206004925f54166040519384809263bd49c35f60e01b82525afa9182156106c3575f92612702575b506126fd61263f915f52600360205260405f2090565b6121eb565b61263f9192506127236126fd9160203d60201161267c5761266e8183610beb565b9291506126e7565b65ffffffffffff9081811161273e571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b80548061276e5750505f905f905f90565b5f19918183810111611a65575f5260205f2001015460019165ffffffffffff82169160301c90565b600181111561136957600181600160801b8110156128af575b61285761284d61284361283961282f61282561286397600488600160401b61285e9a10156128a2575b640100000000811015612895575b62010000811015612888575b61010081101561287c575b6010811015612870575b1015612868575b60030260011c61281e818b611a39565b0160011c90565b61281e818a611a39565b61281e8189611a39565b61281e8188611a39565b61281e8187611a39565b61281e8186611a39565b8093611a39565b821190565b900390565b60011b61280e565b811c9160021b91612807565b60081c91811b916127fd565b60101c9160081b916127f2565b60201c9160101b916127e6565b60401c9160201b916127d8565b50600160401b9050608082901c6127af565b91905b8382106128d15750505090565b909192808316906001818518811c8301809311611a6557855f5265ffffffffffff808460205f20015416908516105f14612910575050925b91906128c4565b909493508101809111611a655791612909565b61292b612ea0565b612933612ea0565b60015f80516020612eef83398151915255565b6040519061295382610bb5565b5f6040838281528260208201520152565b81601f820112156102da578051916020916001600160401b038411610bb0578360051b906040519461299885840187610beb565b855283808601928201019283116102da578301905b8282106129bb575050505090565b83809183516129c981610701565b8152019101906129ad565b6020818303126102da5780516001600160401b03918282116102da5701918281039260a084126102da57606060405194612a0d86610bb5565b126102da57604051612a1e81610bb5565b8151612a2981610701565b81526020820151612a3981610701565b60208201526040820151612a4c81610701565b6040820152845260608101519283116102da57612a70608092612576948301612964565b6020850152016113e2565b8051821015611c455760209160051b010190565b612a97612946565b50612aad815191602080809483010191016129d4565b8051516001600160a01b0393919084161580612c24575b612c12576040818101805182516302910f8b60e31b81526001600160a01b0390911660048083019190915296929491928690829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106c3575f91612bf5575b5015612be35791938401915f5b83518051821015612bb257611143612b5783612b6493612a7b565b516001600160a01b031690565b15612ba257612b86612b82612b7d612b57848851612a7b565b6120b5565b1590565b612b9257600101612b3c565b8451635140fefd60e11b81528790fd5b84516323cda06760e01b81528790fd5b50509051600480546001600160a01b0319166001600160a01b039092169190911790559350612bdf915050565b5190565b604051631f0853c160e21b8152600490fd5b612c0c9150863d88116106bc576106ae8183610beb565b5f612b2f565b6040516303501f5960e11b8152600490fd5b50828101515115612ac4565b908154905f829160058411612c9a575b612c4b9350846128c1565b80612c7357505f905b6001600160d01b03821615611aed57611369916001611df59201611c30565b612c8d612c82612c9492611c85565b835f5260205f200190565b5460301c90565b90612c54565b9192612ca581612796565b8103908111611a6557612c4b93855f5265ffffffffffff808360205f20015416908516105f14612cd6575091612c40565b929150612ce290611a57565b90612c40565b60405190612cf582610b95565b5f6020838281520152565b90612d29612d23612d4a92612d13612ce8565b50612d1c612ce8565b5084611c30565b50611d55565b91600165ffffffffffff845116936020828060d01b03910151169101611c30565b90549060405192612d5a84610b95565b835260031b1c602082015290565b8054600160401b811015610bb057612d8591600182018155611c30565b612db057815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293928015612e7657612dda612de591611c85565b825f5260205f200190565b9182549265ffffffffffff91828516928116808411612e6457879303612e2b5750612e2492509065ffffffffffff82549181199060301b169116179055565b60301c9190565b915050612e5f91612e4b612e3d610c1b565b65ffffffffffff9093168352565b6001600160d01b0386166020830152612d68565b612e24565b604051632520601d60e01b8152600490fd5b5090612e9b91612e87612e3d610c1b565b6001600160d01b0385166020830152612d68565b5f9190565b60ff5f80516020612f0f8339815191525460401c1615612ebc57565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220f658ab538ab4e6b7b4e6661b8ff490a4553a539b3f6214af0f6a125c6462927f64736f6c63430008190033","sourceMap":"11341:2257:94:-:0;;;;;;;;;;;;;-1:-1:-1;;11341:2257:94;;;;-1:-1:-1;;;;;11341:2257:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;348:4:95;;332:21;;8837:64:26;11341:2257:94;;;;;;;;;7896:76:26;;11341:2257:94;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:82;;;-1:-1:-1;525:17:82;;-1:-1:-1;552:12:82;;-1:-1:-1;2360:34:89;;2404:28;;-1:-1:-1;2404:28:89;;2442:57;;-1:-1:-1;2442:57:89;;2509:61;-1:-1:-1;2509:61:89;;1716:36:93;;-1:-1:-1;1716:36:93;;11845:41:94;;;;11896:24;;;;11930:40;;;;11341:2257;;;;;;;;332:21:95;11341:2257:94;;;;;525:17:82;11341:2257:94;;;;;552:12:82;11341:2257:94;;;;;2360:34:89;11341:2257:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;11341:2257:94;;;;;;;;;;;;;8087:29:26;;11341:2257:94;;8087:29:26;7981:146;;;;;7896:76;11341:2257:94;;-1:-1:-1;;;7938:23:26;;;;;11341:2257:94;-1:-1:-1;11341:2257:94;;;;;;-1:-1:-1;11341:2257:94;;;;;-1:-1:-1;11341:2257:94;;;;-1:-1:-1;;;;;11341:2257:94;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610284578063021453481461027f578063103f29071461027a578063128e5d8214610275578063197aa7ea146102705780631a80e5001461026b57806323f752d514610266578063248a9ca31461026157806325dc97081461025c5780632dd31000146102575780632f2ff15d1461025257806336568abe1461024d5780633dfd3873146102485780633eb22c0f14610243578063439fab911461023e57806345e78fcb14610239578063557cab4414610234578063570ca7351461022f5780635d32a1c91461022a5780636679191e1461022557806379d89614146102205780637d24bb271461021b5780637f5a7c7b1461021657806383ce03221461021157806391d148541461020c5780639b656b22146102075780639f86fd8514610202578063a217fddf146101fd578063bb24fe8a146101f8578063c0cd7c3e146101f3578063d15b740e146101ee578063d547741f146101e9578063da749d2b146101e4578063e02f6937146101df578063e49561ee146101da578063fbfa77cf146101d5578063fd4d447c146101d0578063ff54740f146101cb5763ffa1ad74146101c6575f80fd5b61132d565b611310565b6112e6565b6112bf565b6110d4565b61107f565b61104a565b610ffe565b610fd4565b610f90565b610f4d565b610f33565b610e9f565b610e5b565b610dfd565b610db9565b610d91565b610d58565b610d14565b610cda565b610c89565b610b59565b610b3d565b610af9565b6109c1565b610963565b61086a565b61081f565b6107d3565b61078f565b610736565b6106c8565b610542565b6104fe565b610471565b6103ee565b6103aa565b6102de565b346102da5760203660031901126102da5760043563ffffffff60e01b81168091036102da57602090637965db0b60e01b81149081156102c9575b506040519015158152f35b6301ffc9a760e01b1490505f6102be565b5f80fd5b346102da576040806003193601126102da576004359060243590610300611b94565b825f526002602052805f2054821161039a57825f52600360205281610326825f206121eb565b1461038a5781610385916103757e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f94610366875f52600360205260405f2090565b61036f4261272b565b90611c93565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6024359065ffffffffffff821682036102da57565b6064359065ffffffffffff821682036102da57565b6044359065ffffffffffff821682036102da57565b346102da5760403660031901126102da5761048a610432565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036104ec5763ffffffff6104d76040926004355f526003602052835f20611d79565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da576004356001600160601b03811681036102da5760243590610572611e88565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106c3575f91610694575b5015610682576001600160601b03166bffffffffffffffffffffffff193360601b161790806105fc835f52600260205260405f2090565b541461067057610655817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c9261063a855f52600260205260405f2090565b556106458185611eb7565b6040519081529081906020820190565b0390a261066e60015f80516020612eef83398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6106b6915060203d6020116106bc575b6106ae8183610beb565b810190611355565b5f6105c5565b503d6106a4565b61136c565b346102da5760203660031901126102da576004355f525f80516020612ecf8339815191526020526020600160405f200154604051908152f35b6001600160a01b038116036102da57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102da5760803660031901126102da5761078b61077760043561075981610701565b60443561076581610701565b61076d610447565b9160243590611451565b604051918291602083526020830190610712565b0390f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da5761066e6024356004356107f682610701565b805f525f80516020612ecf83398151915260205261081a600160405f200154611bf0565b612123565b346102da5760403660031901126102da5760243561083c81610701565b336001600160a01b038216036108585761066e90600435612159565b60405163334bd91960e11b8152600490fd5b346102da5760203660031901126102da5760043561088781610701565b61088f611e88565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff161561094557506001546001600160a01b039182169181168214610670576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612eef83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346102da5760203660031901126102da576004355f526003602052602061098c60405f206121eb565b604051908152f35b9181601f840112156102da578235916001600160401b0383116102da57602083818601950101116102da57565b346102da5760203660031901126102da576001600160401b036004358181116102da576109f2903690600401610994565b5f80516020612f0f833981519152549260ff8460401c1615931680159081610af1575b6001149081610ae7575b159081610ade575b50610acc575f80516020612f0f833981519152805467ffffffffffffffff19166001179055610a5a9183610aa857612264565b610a6057005b5f80516020612f0f833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612f0f833981519152805460ff60401b1916600160401b179055612264565b60405163f92ee8a960e01b8152600490fd5b9050155f610a27565b303b159150610a1f565b849150610a15565b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da576020604051614e208152f35b346102da575f3660031901126102da576004546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610bb057604052565b610b81565b606081019081106001600160401b03821117610bb057604052565b608081019081106001600160401b03821117610bb057604052565b90601f801991011681019081106001600160401b03821117610bb057604052565b60405190610c1982610bb5565b565b60405190610c1982610b95565b6001600160401b038111610bb057601f01601f191660200190565b81601f820112156102da57803590610c5a82610c28565b92610c686040519485610beb565b828452602083830101116102da57815f926020809301838601378301015290565b346102da5760603660031901126102da57610ca2610432565b6044356001600160401b0381116102da57602091610cc761098c923690600401610c43565b906004355f526003845260405f206123cb565b346102da575f3660031901126102da5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b346102da575f3660031901126102da576001546040516001600160a01b039091168152602090f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da57602060ff610e4f602435610e2181610701565b6004355f525f80516020612ecf833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da57600435610ebc81610701565b6024356001600160401b0381116102da575f91610ede83923690600401610994565b90816040519283928337810184815203915af4610f2b610efc61164d565b91610f1d604051938492151560208401526040808401526060830190610712565b03601f198101835282610beb565b805190602001fd5b346102da575f3660031901126102da5760206040515f8152f35b346102da575f3660031901126102da5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760203660031901126102da576004355f526002602052602060405f2054604051908152f35b346102da5760403660031901126102da5761066e60243560043561102182610701565b805f525f80516020612ecf833981519152602052611045600160405f200154611bf0565b612159565b346102da5760603660031901126102da5761078b61077760043561106d81610701565b61107561045c565b90602435906116ae565b346102da5760803660031901126102da5760243561109c81610701565b6110a461045c565b90606435906001600160401b0382116102da576020926110cb61098c933690600401610c43565b91600435611863565b346102da5760a03660031901126102da576024356004356110f482610701565b60443591611100610447565b90608435906001600160401b0382116102da5761112260049236908401610c43565b61112a611e88565b5f5460209061114f90611143906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156106c3575f9361128e575b506001600160a01b03928316330361127c576001546001600160a01b03168381166111f1575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361066e60015f80516020612eef83398151915255565b9093604051946112288661121a602082019363724ab0f760e11b8552858c898d602487016119ed565b03601f198101885287610beb565b62042e305a1061126a575f6111d8938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611197565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b6112b191935060203d6020116112b8575b6112a98183610beb565b8101906113ed565b915f611171565b503d61129f565b346102da575f3660031901126102da575f546040516001600160a01b039091168152602090f35b346102da5760403660031901126102da57602061098c60243561130881610701565b600435611a6a565b346102da575f3660031901126102da5760206040516203d0908152f35b346102da575f3660031901126102da57602060405160018152f35b519081151582036102da57565b908160209103126102da5761136990611348565b90565b6040513d5f823e3d90fd5b81601f820112156102da5780519061138e82610c28565b9261139c6040519485610beb565b828452602083830101116102da57815f9260208093018386015e8301015290565b906020828203126102da5781516001600160401b0381116102da576113699201611377565b5190610c1982610701565b908160209103126102da575161136981610701565b9061136991602081526114218251606060208401526080830190610712565b9060606040611441602086015194601f1995868683030184870152610712565b9401519282850301910152610712565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052938416604482015265ffffffffffff8516606482015260609594909391925f856084817f000000000000000000000000000000000000000000000000000000000000000087165afa9485156106c3575f9561161b575b5060405163fbfa77cf60e01b81526020816004818888165afa9081156106c357611537945f92859284916115fc575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff90921660248301529094859190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9283156106c3575f936115d6575b5061157692936116ae565b908251158015906115cc575b80156115c2575b61159257505050565b610f1d9394509061136992916115a6610c0c565b9283526020830152604082015260405192839160208301611402565b5081511515611589565b5080511515611582565b61157693506115f6903d805f833e6115ee8183610beb565b8101906113bd565b9261156b565b611615915060203d6020116112b8576112a98183610beb565b5f6114fa565b6116309195503d805f833e6115ee8183610beb565b935f6114cb565b9061136992915f52600360205260405f206123cb565b3d15611677573d9061165e82610c28565b9161166c6040519384610beb565b82523d5f602084013e565b606090565b519063ffffffff821682036102da57565b91908260409103126102da5761136960206116a784611348565b930161167c565b92915f8060609565ffffffffffff60405194602096630cbd53f560e11b888801526024870152166044850152604484526116e784610bd0565b604051938461171487820192639f86fd8560e01b8452306024840152604060448401526064830190610712565b0394611728601f1996878101835282610beb565b51915afa5061174661173861164d565b8380825183010191016124a3565b90156117995780838061175e9351830101910161168d565b929061176957505050565b6113699293945061178d604051948592830191909163ffffffff6020820193169052565b03908101835282610beb565b809150519182156102da5701fd5b604051906117b482610b95565b60606020838281520152565b906020828203126102da5781516001600160401b03928382116102da5701906040828203126102da57604051926117f684610b95565b82518181116102da578261180b918501611377565b845260208301519081116102da576118239201611377565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261136992910190610712565b92611873909291928284866125ac565b92909361187e6117a7565b938051806119d1575b5050841593841561193b575b84156118aa575b505050506118a55790565b505f90565b6020809495506118d5910151604051958694859463530e1d4360e01b865260601c906004860161182b565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106c3575f9161191c575b50155f80808061189a565b611935915060203d6020116106bc576106ae8183610beb565b5f611911565b5f549094506001600160a01b031660208486519261196e604051948593849363530e1d4360e01b8552896004860161182b565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106c3575f916119b2575b501593611893565b6119cb915060203d6020116106bc576106ae8183610beb565b5f6119aa565b6119e59295506020809183010191016117c0565b925f80611887565b919360a093611369969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610712565b634e487b7160e01b5f52601160045260245ffd5b8115611a43570490565b634e487b7160e01b5f52601260045260245ffd5b9060018201809211611a6557565b611a25565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156106c3575f91611b77575b5015918215611af3575b50509050611aed57611369916126a7565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156106c3575f92611b5a575b505015805f80611adc565b611b709250803d106106bc576106ae8183610beb565b5f80611b4f565b611b8e9150843d86116106bc576106ae8183610beb565b5f611ad2565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b5416156109455750565b5f8181525f80516020612ecf83398151915260209081526040808320338452909152902060ff90611be6565b634e487b7160e01b5f52603260045260245ffd5b8054821015611c45575f5260205f2001905f90565b611c1c565b90815491600160401b831015610bb05782611c6d916001610c1995018155611c30565b90919082549060031b91821b915f19901b1916179055565b5f19810191908211611a6557565b90929192600182019081548015611d25575b5084611cb08461275d565b50949092845493611cc0836121eb565b9681611d10575b5015611ced575050505f198101908111611a6557611c6d8591611ce993611c30565b9190565b611ce9949293611d09926001600160d01b039091169190612dc3565b5050611c4a565b65ffffffffffff83811691161490505f611cc7565b600160401b811015610bb057806001611d419201845583611c30565b8154905f199060031b1b191690555f611ca5565b90604051611d6281610b95565b915465ffffffffffff8116835260301c6020830152565b91908254905f829160058411611e21575b611d959350856128c1565b908115611e1557611e0e611e05611dff611df5611dc7611dc2611db788611c85565b895f5260205f200190565b611d55565b966001611dee6020611ddf8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101611c30565b90549060031b1c90565b93611c85565b63ffffffff1690565b6001939291565b5f925082915081908190565b9192611e2c81612796565b8103908111611a6557611d9593865f52611e60611e558360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff85161015611e76575091611d8a565b929150611e8290611a57565b90611d8a565b5f80516020612eef8339815191526002815414611ea55760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f2081611ece8261275d565b919390508315611f2c57611eee916001600160d01b031690600101611c30565b90549060031b1c5b82611f22575b5050611f06575050565b611f1e915f52600360205260405f2061036f4261272b565b5050565b119050815f611efc565b50505f611ef6565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612ecf8339815191529060ff16611aed575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612ecf8339815191529060ff905b54166120ae575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f80516020612ecf8339815191529060ff9061204a565b5f8181525f80516020612ecf833981519152602081815260408084206001600160a01b038716855290915290912060ff9061204a565b5f8181525f80516020612ecf833981519152602081815260408084206001600160a01b03871685529091529091205460ff16156120ae575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b80548061221057505f5b6001600160d01b03811615611aed576001611df59201611c30565b5f19908082810111611a6557825f5260205f2001015460301c6121f5565b9190916040818403126102da57803561224681610701565b9260208201356001600160401b0381116102da576113699201610c43565b6122709181019061222e565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156106c3575f91612383575b50156123715761230560409161230061234b946122e5612923565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612a8f565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116612361575b5001516001600160a01b031690565b9081166123555750565b61235e90611fdf565b50565b61236a90611f34565b505f61233c565b6040516362df054560e01b8152600490fd5b61239c915060203d6020116106bc576106ae8183610beb565b5f6122ca565b908160209103126102da576113699061167c565b90600163ffffffff80931601918211611a6557565b9180511561249957806020806123e6935183010191016123a2565b916123f18382612d00565b92612402845165ffffffffffff1690565b9065ffffffffffff808516921682811461248d5782119182612438575b505061242f576113699250612c30565b50506020015190565b9091506124458354611c85565b63ffffffff83161491821561245e575b50505f8061241f565b612485919250612479612473611e55926123b6565b85612d00565b5165ffffffffffff1690565b115f80612455565b50505050506020015190565b5061136991612c30565b9190916040818403126102da576124b981611348565b9260208201516001600160401b0381116102da576113699201611377565b604051906124e482610bb5565b60606040838281528260208201520152565b906020828203126102da5781516001600160401b03928382116102da5701906060828203126102da576040519261252c84610bb5565b82518181116102da5782612541918501611377565b845260208301518181116102da578261255b918501611377565b602085015260408301519081116102da576125769201611377565b604082015290565b908160209103126102da575190565b60409065ffffffffffff61136994931681528160208201520190610712565b909392936125b86124d7565b9480518061268b575b50506004546001600160a01b03918216911603612683575f546126189291906020906125f790611143906001600160a01b031681565b8187015190604051808097819463810da75d60e01b8352886004840161258d565b03915afa9081156106c35761264b935f92612650575b5061263f9192604087015191611637565b90818082109118021890565b915190565b61263f92506126769060203d60201161267c575b61266e8183610beb565b81019061257e565b9161262e565b503d612664565b505090515f91565b61269f9296506020809183010191016124f6565b935f806125c1565b6004546001600160a01b039290831690831603611aed5760206004925f54166040519384809263bd49c35f60e01b82525afa9182156106c3575f92612702575b506126fd61263f915f52600360205260405f2090565b6121eb565b61263f9192506127236126fd9160203d60201161267c5761266e8183610beb565b9291506126e7565b65ffffffffffff9081811161273e571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b80548061276e5750505f905f905f90565b5f19918183810111611a65575f5260205f2001015460019165ffffffffffff82169160301c90565b600181111561136957600181600160801b8110156128af575b61285761284d61284361283961282f61282561286397600488600160401b61285e9a10156128a2575b640100000000811015612895575b62010000811015612888575b61010081101561287c575b6010811015612870575b1015612868575b60030260011c61281e818b611a39565b0160011c90565b61281e818a611a39565b61281e8189611a39565b61281e8188611a39565b61281e8187611a39565b61281e8186611a39565b8093611a39565b821190565b900390565b60011b61280e565b811c9160021b91612807565b60081c91811b916127fd565b60101c9160081b916127f2565b60201c9160101b916127e6565b60401c9160201b916127d8565b50600160401b9050608082901c6127af565b91905b8382106128d15750505090565b909192808316906001818518811c8301809311611a6557855f5265ffffffffffff808460205f20015416908516105f14612910575050925b91906128c4565b909493508101809111611a655791612909565b61292b612ea0565b612933612ea0565b60015f80516020612eef83398151915255565b6040519061295382610bb5565b5f6040838281528260208201520152565b81601f820112156102da578051916020916001600160401b038411610bb0578360051b906040519461299885840187610beb565b855283808601928201019283116102da578301905b8282106129bb575050505090565b83809183516129c981610701565b8152019101906129ad565b6020818303126102da5780516001600160401b03918282116102da5701918281039260a084126102da57606060405194612a0d86610bb5565b126102da57604051612a1e81610bb5565b8151612a2981610701565b81526020820151612a3981610701565b60208201526040820151612a4c81610701565b6040820152845260608101519283116102da57612a70608092612576948301612964565b6020850152016113e2565b8051821015611c455760209160051b010190565b612a97612946565b50612aad815191602080809483010191016129d4565b8051516001600160a01b0393919084161580612c24575b612c12576040818101805182516302910f8b60e31b81526001600160a01b0390911660048083019190915296929491928690829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106c3575f91612bf5575b5015612be35791938401915f5b83518051821015612bb257611143612b5783612b6493612a7b565b516001600160a01b031690565b15612ba257612b86612b82612b7d612b57848851612a7b565b6120b5565b1590565b612b9257600101612b3c565b8451635140fefd60e11b81528790fd5b84516323cda06760e01b81528790fd5b50509051600480546001600160a01b0319166001600160a01b039092169190911790559350612bdf915050565b5190565b604051631f0853c160e21b8152600490fd5b612c0c9150863d88116106bc576106ae8183610beb565b5f612b2f565b6040516303501f5960e11b8152600490fd5b50828101515115612ac4565b908154905f829160058411612c9a575b612c4b9350846128c1565b80612c7357505f905b6001600160d01b03821615611aed57611369916001611df59201611c30565b612c8d612c82612c9492611c85565b835f5260205f200190565b5460301c90565b90612c54565b9192612ca581612796565b8103908111611a6557612c4b93855f5265ffffffffffff808360205f20015416908516105f14612cd6575091612c40565b929150612ce290611a57565b90612c40565b60405190612cf582610b95565b5f6020838281520152565b90612d29612d23612d4a92612d13612ce8565b50612d1c612ce8565b5084611c30565b50611d55565b91600165ffffffffffff845116936020828060d01b03910151169101611c30565b90549060405192612d5a84610b95565b835260031b1c602082015290565b8054600160401b811015610bb057612d8591600182018155611c30565b612db057815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293928015612e7657612dda612de591611c85565b825f5260205f200190565b9182549265ffffffffffff91828516928116808411612e6457879303612e2b5750612e2492509065ffffffffffff82549181199060301b169116179055565b60301c9190565b915050612e5f91612e4b612e3d610c1b565b65ffffffffffff9093168352565b6001600160d01b0386166020830152612d68565b612e24565b604051632520601d60e01b8152600490fd5b5090612e9b91612e87612e3d610c1b565b6001600160d01b0385166020830152612d68565b5f9190565b60ff5f80516020612f0f8339815191525460401c1615612ebc57565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220f658ab538ab4e6b7b4e6661b8ff490a4553a539b3f6214af0f6a125c6462927f64736f6c63430008190033","sourceMap":"11341:2257:94:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;11341:2257:94;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;11341:2257:94;;;;;;;;;;3551:87:23;-1:-1:-1;;;1134:40:32;;-1:-1:-1;3551:87:23;;;11341:2257:94;-1:-1:-1;11341:2257:94;;;;;;;;;;;;;;;;;;;;3202:4:23;;;:::i;:::-;11341:2257:94;-1:-1:-1;11341:2257:94;2428:15:93;11341:2257:94;;;-1:-1:-1;11341:2257:94;;2419:36:93;;2415:98;;11341:2257:94;-1:-1:-1;11341:2257:94;2193:13:93;11341:2257:94;;;2193:34:93;11341:2257:94;-1:-1:-1;11341:2257:94;2193:34:93;:::i;:::-;2527;2523:84;;2617:25;2689:35;2617:25;:56;2689:35;2617:25;;;11341:2257:94;;2193:13:93;11341:2257:94;;;;;;;2617:25:93;819:34:75;837:15;819:34;:::i;:::-;2617:56:93;;:::i;:::-;-1:-1:-1;;11341:2257:94;;;;;;;;;;;;2689:35:93;;;;11341:2257:94;2523:84:93;11341:2257:94;-1:-1:-1;;;2584:12:93;;11341:2257:94;;2584:12:93;2415:98;11341:2257:94;-1:-1:-1;;;2478:24:93;;11341:2257:94;;2478:24:93;11341:2257:94;;;;;;-1:-1:-1;;11341:2257:94;;;;;;1537:38:89;-1:-1:-1;;;;;11341:2257:94;;;;;;;;;;;;-1:-1:-1;;11341:2257:94;;;;;;1632:54:89;-1:-1:-1;;;;;11341:2257:94;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;11341:2257:94;;;;;;:::i;:::-;449:5:95;-1:-1:-1;;;;;11341:2257:94;435:10:95;:19;431:71;;11341:2257:94;12172:64;11341:2257;;;;-1:-1:-1;11341:2257:94;12172:13;11341:2257;;;-1:-1:-1;11341:2257:94;12172:64;:::i;:::-;11341:2257;;;;;;;;;;;;;;;;;;;431:71:95;11341:2257:94;;-1:-1:-1;;;477:14:95;;11341:2257:94;;477:14:95;11341:2257:94;;;;;;-1:-1:-1;;11341:2257:94;;;;;;1743:56:89;-1:-1:-1;;;;;11341:2257:94;;;;;;;;;;;;-1:-1:-1;;11341:2257:94;;;;;;-1:-1:-1;;;;;11341:2257:94;;;;;;;;3361:103:30;;;:::i;:::-;11341:2257:94;;-1:-1:-1;;;4285:48:89;;4322:10;11341:2257:94;4285:48:89;;11341:2257:94;;;;;-1:-1:-1;;;;;4295:16:89;11341:2257:94;4285:48:89;;;;;;;-1:-1:-1;4285:48:89;;;11341:2257:94;4284:49:89;;4280:99;;-1:-1:-1;;;;;11341:2257:94;-1:-1:-1;;4322:10:89;297:2:101;11341:2257:94;;267:46:101;4459:27:89;;;;11341:2257:94;;4459:15:89;11341:2257:94;;;;;;;4459:27:89;11341:2257:94;4459:37:89;4455:87;;4654:38;4552:27;4654:38;4552:27;;;11341:2257:94;;4459:15:89;11341:2257:94;;;;;;;4552:27:89;11341:2257:94;4631:6:89;;;;:::i;:::-;11341:2257:94;;;;;;;;;;;;;4654:38:89;;;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;11341:2257:94;3860:283:30;3426:1;11341:2257:94;4455:87:89;11341:2257:94;;-1:-1:-1;;;4519:12:89;;11341:2257:94;;4519:12:89;4280:99;11341:2257:94;;-1:-1:-1;;;4356:12:89;;11341:2257:94;;4356:12:89;4285:48;;;;11341:2257:94;4285:48:89;11341:2257:94;4285:48:89;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;11341:2257:94:-;;;;;;-1:-1:-1;;11341:2257:94;;;;;;-1:-1:-1;11341:2257:94;-1:-1:-1;;;;;;;;;;;11341:2257:94;;;4919:24:23;11341:2257:94;-1:-1:-1;11341:2257:94;4919:24:23;11341:2257:94;;;;;;;;-1:-1:-1;;;;;11341:2257:94;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;11341:2257:94;;;;;;;;-1:-1:-1;;11341:2257:94;;;;:::o;:::-;;;;;;-1:-1:-1;;11341:2257:94;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;11341:2257:94;;;;;;322:32:82;-1:-1:-1;;;;;11341:2257:94;;;;;;;;;;;;-1:-1:-1;;11341:2257:94;;;;5350:25:23;11341:2257:94;;;;;;;:::i;:::-;;-1:-1:-1;11341:2257:94;-1:-1:-1;;;;;;;;;;;11341:2257:94;;3202:4:23;4919:24;11341:2257:94;-1:-1:-1;11341:2257:94;4919:24:23;11341:2257:94;3202:4:23;:::i;:::-;5350:25;:::i;11341:2257:94:-;;;;;;-1:-1:-1;;11341:2257:94;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;11341:2257:94;;6441:34:23;6437:102;;6549:37;11341:2257:94;;;6549:37:23;:::i;6437:102::-;11341:2257:94;;-1:-1:-1;;;6498:30:23;;11341:2257:94;;6498:30:23;11341:2257:94;;;;;;-1:-1:-1;;11341:2257:94;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;966:10:28;-1:-1:-1;11341:2257:94;;;;;;;;;;1356:26:89;;11341:2257:94;;4468:23:23;4464:108;;-1:-1:-1;4861:4:89;11341:2257:94;-1:-1:-1;;;;;11341:2257:94;;;;;;4861:13:89;;4857:63;;-1:-1:-1;;;;;;11341:2257:94;;;4861:4:89;11341:2257:94;4958:14:89;-1:-1:-1;;4958:14:89;4861:4;-1:-1:-1;;;;;;;;;;;11341:2257:94;;4464:108:23;11341:2257:94;;;;4514:47:23;;;;;;966:10:28;11341:2257:94;4514:47:23;;11341:2257:94;;;;;4514:47:23;11341:2257:94;;;;;;-1:-1:-1;;11341:2257:94;;;;;;-1:-1:-1;11341:2257:94;2193:13:93;11341:2257:94;;;2193:34:93;11341:2257:94;-1:-1:-1;11341:2257:94;2193:34:93;:::i;:::-;11341:2257:94;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11341:2257:94;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;11341:2257:94;;;;-1:-1:-1;;;;;11341:2257:94;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;11341:2257:94;;;;;;;4301:16:26;11341:2257:94;;4726:16:26;;:34;;;;11341:2257:94;4805:1:26;4790:16;:50;;;;11341:2257:94;4855:13:26;:30;;;;11341:2257:94;4851:91:26;;;-1:-1:-1;;;;;;;;;;;11341:2257:94;;-1:-1:-1;;11341:2257:94;;;;;718:4:82;;4951:18:26;4979:67;;718:4:82;:::i;:::-;5066:101:26;;11341:2257:94;5066:101:26;-1:-1:-1;;;;;;;;;;;11341:2257:94;;-1:-1:-1;;;;11341:2257:94;;;;;-1:-1:-1;11341:2257:94;;5142:14:26;;11341:2257:94;;5142:14:26;11341:2257:94;4979:67:26;-1:-1:-1;;;;;;;;;;;11341:2257:94;;-1:-1:-1;;;;11341:2257:94;-1:-1:-1;;;11341:2257:94;;;718:4:82;:::i;4851:91:26:-;11341:2257:94;;-1:-1:-1;;;4908:23:26;;11341:2257:94;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;11341:2257:94;;;;;;-1:-1:-1;;11341:2257:94;;;;;;11523:36;-1:-1:-1;;;;;11341:2257:94;;;;;;;;;;;;-1:-1:-1;;11341:2257:94;;;;;;;1253:6:89;11341:2257:94;;;;;;;;;-1:-1:-1;;11341:2257:94;;;;;;;;-1:-1:-1;;;;;11341:2257:94;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11341:2257:94;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;11341:2257:94;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;11341:2257:94;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;11341:2257:94;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;11341:2257:94;;;;;;-1:-1:-1;;11341:2257:94;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;11341:2257:94;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;11341:2257:94;;;;;;:::i;:::-;;;-1:-1:-1;;;;;11341:2257:94;;;;;;;1955:60:93;11341:2257:94;;;;;;:::i;:::-;;;;-1:-1:-1;11341:2257:94;1955:13:93;11341:2257:94;;;-1:-1:-1;11341:2257:94;1955:60:93;:::i;11341:2257:94:-;;;;;;-1:-1:-1;;11341:2257:94;;;;;;;1356:26:89;11341:2257:94;;;;;;;;;-1:-1:-1;;11341:2257:94;;;;;;11472:45;-1:-1:-1;;;;;11341:2257:94;;;;;;;;;;;;-1:-1:-1;;11341:2257:94;;;;;;;885:35:93;11341:2257:94;;;;;;;;;-1:-1:-1;;11341:2257:94;;;;;;;;-1:-1:-1;;;;;11341:2257:94;;;;;;;;;;;;;;-1:-1:-1;;11341:2257:94;;;;;;989:42:93;-1:-1:-1;;;;;11341:2257:94;;;;;;;;;;;;-1:-1:-1;;11341:2257:94;;;;;;3901:31:23;11341:2257:94;;;;;:::i;:::-;;;-1:-1:-1;11341:2257:94;-1:-1:-1;;;;;;;;;;;11341:2257:94;;;-1:-1:-1;11341:2257:94;;;;;;;;;;;;;;;;;3901:31:23;11341:2257:94;;;;;;;;;;;;;;;;-1:-1:-1;;11341:2257:94;;;;;;11565:45;-1:-1:-1;;;;;11341:2257:94;;;;;;;;;;;;-1:-1:-1;;11341:2257:94;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;11341:2257:94;;;;-1:-1:-1;11341:2257:94;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:88;;;;477:31;416:25;;:::i;:::-;11341:2257:94;;;;;;;;;;477:31:88;;11341:2257:94;;;;;;;;;;;:::i;:::-;477:31:88;11341:2257:94;;477:31:88;;;;;;:::i;:::-;518:79;;;11341:2257:94;518:79:88;;11341:2257:94;;;;;;-1:-1:-1;;11341:2257:94;;;;;;;;;;;;;;;;;-1:-1:-1;;11341:2257:94;;;;;;;-1:-1:-1;;;;;404:28:82;11341:2257:94;;;;;;;;;;-1:-1:-1;;11341:2257:94;;;;;;1439:41:89;-1:-1:-1;;;;;11341:2257:94;;;;;;;;;;;;-1:-1:-1;;11341:2257:94;;;;;;-1:-1:-1;11341:2257:94;2009:67:89;11341:2257:94;;;;-1:-1:-1;11341:2257:94;;;;;;;;;;;;;;-1:-1:-1;;11341:2257:94;;;;5767:26:23;11341:2257:94;;;;;;;:::i;:::-;;-1:-1:-1;11341:2257:94;-1:-1:-1;;;;;;;;;;;11341:2257:94;;3202:4:23;4919:24;11341:2257:94;-1:-1:-1;11341:2257:94;4919:24:23;11341:2257:94;3202:4:23;:::i;:::-;5767:26;:::i;11341:2257:94:-;;;;;;-1:-1:-1;;11341:2257:94;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;11341:2257:94;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;;;;11341:2257:94;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;11341:2257:94;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;11341:2257:94;;;;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;-1:-1:-1;11341:2257:94;;;5246:21:89;;:13;;-1:-1:-1;;;;;11341:2257:94;5246:13:89;11341:2257:94;;-1:-1:-1;;;;;11341:2257:94;;;5246:21:89;11341:2257:94;;-1:-1:-1;;;5246:23:89;;11341:2257:94;;;;;5246:23:89;;;;;;;-1:-1:-1;5246:23:89;;;11341:2257:94;-1:-1:-1;;;;;;11341:2257:94;;;5232:10:89;:37;5228:87;;5341:4;11341:2257:94;-1:-1:-1;;;;;11341:2257:94;;;;5355:469:89;;11341:2257:94;-1:-1:-1;;11341:2257:94;;;;;;;;;;;;;;;;5839:55:89;;11341:2257:94;;;;5839:55:89;;;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;11341:2257:94;3860:283:30;5355:469:89;11341:2257:94;;;;5435:94:89;;;;11341:2257:94;5435:94:89;;;;;;;;;;;;11341:2257:94;5435:94:89;;;:::i;:::-;;11341:2257:94;;5435:94:89;;;;;;:::i;:::-;11341:2257:94;5548:9:89;:51;5544:118;;-1:-1:-1;5839:55:89;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;11341:2257:94;;-1:-1:-1;;;5626:21:89;;11341:2257:94;;5626:21:89;5228:87;11341:2257:94;;-1:-1:-1;;;5292:12:89;;11341:2257:94;;5292:12:89;5246:23;;;;;11341:2257:94;5246:23:89;11341:2257:94;5246:23:89;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;11341:2257:94;;;;;;-1:-1:-1;;11341:2257:94;;;;;;;;-1:-1:-1;;;;;11341:2257:94;;;;;;;;;;;;;;-1:-1:-1;;11341:2257:94;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;11341:2257:94;;;;;;;1150:7:89;11341:2257:94;;;;;;;;;-1:-1:-1;;11341:2257:94;;;;;;;2700:1:89;11341:2257:94;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;11341:2257:94;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;11341:2257:94;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;12761:835::-;11341:2257;;-1:-1:-1;;;12978:99:94;;-1:-1:-1;;;;;11341:2257:94;;;12978:99;;;11341:2257;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11341:2257:94;;;12997:20;11341:2257;;12978:99;;;;;;;;;;;12761:835;-1:-1:-1;11341:2257:94;;-1:-1:-1;;;13171:32:94;;;11341:2257;12978:99;11341:2257;;;;13171:32;;;;;;;13131:84;13171:32;12978:99;13171:32;;;;;;;12761:835;-1:-1:-1;11341:2257:94;;-1:-1:-1;;;13131:84:94;;-1:-1:-1;;;;;11341:2257:94;;;12978:99;13131:84;;11341:2257;;;;;;;;;;;;;-1:-1:-1;11341:2257:94;;;;;;;;;13131:84;;13142:11;;11341:2257;13131:84;;;;;;;12978:99;13131:84;;;12761:835;13259:50;;;;;:::i;:::-;11341:2257;;;13324:21;;;:52;;;12761:835;13324:85;;;;12761:835;13320:270;;12761:835;;;:::o;13320:270::-;13432:147;11341:2257;;;;13432:147;11341:2257;;;;:::i;:::-;;;;13171:32;13460:105;;11341:2257;;13460:105;;11341:2257;;;13432:147;;;13171:32;13432:147;;;:::i;13324:85::-;11341:2257;;;13380:29;;13324:85;;:52;11341:2257;;;13349:27;;13324:52;;13131:84;13259:50;13131:84;;;;;;12978:99;13131:84;;;;;;:::i;:::-;;;;;:::i;:::-;;;;13171:32;;;;;;;;;;;;;;:::i;:::-;;;;12978:99;;;;;;;;;;;;;;:::i;:::-;;;;;1827:195:93;;1955:60;1827:195;;-1:-1:-1;11341:2257:94;1955:13:93;11341:2257:94;;;-1:-1:-1;11341:2257:94;1955:60:93;:::i;11341:2257:94:-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;11341:2257:94;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;12249:506::-;;;-1:-1:-1;12383:12:94;11341:2257;;;;;12529:96;;;;;;;;;;;;;11341:2257;;;;;;;12529:96;;;;;:::i;:::-;11341:2257;;716:88:95;;11341:2257:94;716:88:95;;;;;;;;;783:4;12529:96:94;716:88:95;;11341:2257:94;;;;;;;;;;;:::i;:::-;716:88:95;11341:2257:94;716:88:95;11341:2257:94;;716:88:95;;;;;;;;:::i;:::-;698:107;;;;;857:45;698:107;;:::i;:::-;11341:2257:94;;;;857:45:95;;;;;;:::i;:::-;916:8;;912:175;;11341:2257:94;;;12437:240;11341:2257;;12437:240;;;;;;:::i;:::-;12688:61;;;;12249:506;;;:::o;12688:61::-;12721:17;11341:2257;;;;12721:17;11341:2257;;12721:17;;;;;11341:2257;;;;;;;;;;;;12721:17;;;;;;;;;:::i;912:175:95:-;11341:2257:94;;;;944:22:95;;;940:36;;990:87;;11341:2257:94;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;11341:2257:94;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;11341:2257:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:89:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;11341:2257:94;;:::i;:::-;;;;3086:20:89;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:89;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;11341:2257:94;;;;;;;;;;3430:180:89;;467:2:101;11341:2257:94;3430:180:89;;;;;:::i;:::-;;11341:2257:94;3444:31:89;-1:-1:-1;;;;;11341:2257:94;3430:180:89;;;;;;;-1:-1:-1;3430:180:89;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;11341:2257:94;;;-1:-1:-1;;;;;;11341:2257:94;3248:161:89;3354:37;;;11341:2257:94;3248:161:89;11341:2257:94;;;;;;;;;;3248:161:89;;;;;;;:::i;:::-;;11341:2257:94;3262:29:89;-1:-1:-1;;;;;11341:2257:94;3248:161:89;;;;;;;-1:-1:-1;3248:161:89;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;11341:2257:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;8889:1:99;11341:2257:94;;;;;;;:::o;:::-;;:::i;3740:389:89:-;3918:5;11341:2257:94;;;-1:-1:-1;;;3853:71:89;;;-1:-1:-1;;;;;11341:2257:94;;;3853:71:89;;;11341:2257:94;;;;;;;;3740:389:89;;11341:2257:94;3853:71:89;;11341:2257:94;;3853:71:89;11341:2257:94;;;3867:29:89;11341:2257:94;;3853:71:89;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;11341:2257:94;;;3852:181:89;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;11341:2257:94;;3945:88:89;;;-1:-1:-1;;;;;11341:2257:94;;3853:71:89;3945:88;;11341:2257:94;467:2:101;11341:2257:94;;;;;;;;-1:-1:-1;11341:2257:94;;;;;;;;3959:31:89;11341:2257:94;3945:88:89;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:89;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;4148:103:23;966:10:28;-1:-1:-1;11341:2257:94;;;;;;;;;885:35:93;;11341:2257:94;;3901:31:23;11341:2257:94;;4468:23:23;4464:108;;4148:103;:::o;:::-;-1:-1:-1;11341:2257:94;;;-1:-1:-1;;;;;;;;;;;11341:2257:94;;;;;;;;966:10:28;11341:2257:94;;;;;;;;;3901:31:23;11341:2257:94;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11341:2257:94;;-1:-1:-1;11341:2257:94;;;-1:-1:-1;11341:2257:94;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;;11341:2257:94;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11341:2257:94;;;;;;;;:::o;6246:584:99:-;;;;;6360:12;;;11341:2257:94;;;6360:24:99;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;11341:2257:94;;;;;;6578:12:99;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:99;;;-1:-1:-1;;;;;11341:2257:94;;;;;;;6644:21:99;;;:29;:21;;:::i;:29::-;6798:25;6246:584;:::o;6600:188::-;6753:24;;11341:2257:94;;8310:38:73;;-1:-1:-1;;;;;11341:2257:94;;;;;8310:38:73;:::i;:::-;6753:24:99;;;:::i;6604:::-;11341:2257:94;;;;;;6614:14:99;;-1:-1:-1;6604:24:99;;;6356:75;-1:-1:-1;;;11341:2257:94;;;;;;6360:12:99;11341:2257:94;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:99;;;11341:2257:94;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;8406:869:99:-;;;11341:2257:94;;8620:15:99;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;11341:2257:94;9219:31:99;11341:2257:94;9130:48:99;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;9130:48;11341:2257:94;:::i;:::-;;9176:1:99;11341:2257:94;9232:17:99;11341:2257:94;;;;;;;;9232:17:99;;11341:2257:94;-1:-1:-1;;;;;11341:2257:94;;;;9219:12:99;;:31;:::i;:::-;11341:2257:94;;;;;;;;;9259:7:99;;:::i;:::-;11341:2257:94;;;;9252:15:99;9176:1;;9188:80;;8406:869::o;9010:62::-;8578:11;;-1:-1:-1;8578:11:99;;-1:-1:-1;8578:11:99;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;11341:2257:94;;;;;;;8939:60:99;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;11341:2257:94;;;;;;8759:49:99;11341:2257:94;;;;8753:55:99;11341:2257:94;;;8753:55:99;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;3470:384:30;-1:-1:-1;;;;;;;;;;;1991:1:30;11341:2257:94;;3670:20:30;3666:88;;1991:1;11341:2257:94;;3470:384:30:o;3666:88::-;11341:2257:94;;-1:-1:-1;;;3713:30:30;;;;;3701:308:93;;11341:2257:94;-1:-1:-1;11341:2257:94;3832:13:93;11341:2257:94;;;-1:-1:-1;11341:2257:94;11124:30:99;;;;:::i;:::-;11173;;;-1:-1:-1;11173:30:99;;;;11182:17;;-1:-1:-1;;;;;11341:2257:94;;11182:12:99;;:17;:::i;:::-;11341:2257:94;;;3832:13:93;11341:2257:94;;11173:30:99;3890::93;;;11173::99;3886:117:93;;;;3701:308;;:::o;3886:117::-;3936:56;11341:2257:94;-1:-1:-1;11341:2257:94;3832:13:93;11341:2257:94;;;-1:-1:-1;11341:2257:94;819:34:75;837:15;819:34;:::i;3936:56:93:-;3701:308;;:::o;3890:30::-;3900:20;;-1:-1:-1;3890:30:93;;;;11173::99;;;-1:-1:-1;11173:30:99;;7270:387:23;-1:-1:-1;;;;;11341:2257:94;;-1:-1:-1;11341:2257:94;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;11341:2257:94;;;;-1:-1:-1;11341:2257:94;;;;;;;;;;;-1:-1:-1;;;;;11341:2257:94;;;;;;;;;;-1:-1:-1;;11341:2257:94;7509:4:23;11341:2257:94;;;966:10:28;;-1:-1:-1;;;;;11341:2257:94;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;11341:2257:94;;-1:-1:-1;11341:2257:94;;;;;;;;;1356:26:89;;-1:-1:-1;;;;;;;;;;;2887:71:23;11341:2257:94;;3901:31:23;11341:2257:94;;;;-1:-1:-1;11341:2257:94;;;;;;;;;;;-1:-1:-1;;;;;11341:2257:94;;;;;;;;;;-1:-1:-1;;11341:2257:94;7509:4:23;11341:2257:94;;;966:10:28;;-1:-1:-1;;;;;11341:2257:94;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;11341:2257:94;;-1:-1:-1;11341:2257:94;;;;;;;;;885:35:93;;-1:-1:-1;;;;;;;;;;;2887:71:23;11341:2257:94;;3901:31:23;11341:2257:94;7270:387:23;-1:-1:-1;11341:2257:94;;;-1:-1:-1;;;;;;;;;;;11341:2257:94;;;;;;;;-1:-1:-1;;;;;11341:2257:94;;;;;;;;;;;;3901:31:23;11341:2257:94;7892:388:23;-1:-1:-1;11341:2257:94;;;-1:-1:-1;;;;;;;;;;;11341:2257:94;;;;;;;;-1:-1:-1;;;;;11341:2257:94;;;;;;;;;;;;;;;;-1:-1:-1;11341:2257:94;;;;;;;;;;;-1:-1:-1;;;;;11341:2257:94;;;;;;;;;;-1:-1:-1;;11341:2257:94;;;966:10:28;;-1:-1:-1;;;;;11341:2257:94;;8155:40:23;-1:-1:-1;;8155:40:23;11341:2257:94;8209:11:23;:::o;10580:184:99:-;11341:2257:94;;10446:8:73;;;:63;-1:-1:-1;10446:63:73;-1:-1:-1;;;;;11341:2257:94;;10726:7:99;11341:2257:94;;10736:12:99;:17;:12;;:17;:::i;10446:63:73:-;11341:2257:94;;;;;;;;;;13267:109:99;-1:-1:-1;13267:109:99;;-1:-1:-1;13267:109:99;;;11341:2257:94;;;10446:63:73;;11341:2257:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;11341:2257:94;;;;;;;;:::i;5907:716:89:-;6030:34;5907:716;6030:34;;;;:::i;:::-;11341:2257:94;;-1:-1:-1;;;6080:41:89;;-1:-1:-1;;;;;11341:2257:94;;;6080:41:89;;;11341:2257:94;;;;;6080:41:89;11341:2257:94;;;6090:13:89;11341:2257:94;;6080:41:89;;;;;;;-1:-1:-1;6080:41:89;;;5907:716;6079:42;;6075:90;;6266:27;11341:2257:94;2684:111:30;6210:14:89;11341:2257:94;2684:111:30;;;:::i;:::-;11341:2257:94;;;;;;-1:-1:-1;;;;;11341:2257:94;;-1:-1:-1;11341:2257:94;;;-1:-1:-1;11341:2257:94;;6210:14:89;6266:27;:::i;:::-;6080:41;6311:15;;11341:2257:94;;;;-1:-1:-1;;;;;;11341:2257:94;-1:-1:-1;;;;;11341:2257:94;;;;;;;;;;;-1:-1:-1;;;;;11341:2257:94;;;;6337:143:89;;5907:716;-1:-1:-1;6493:28:89;11341:2257:94;-1:-1:-1;;;;;11341:2257:94;;;;;;;6489:128:89;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;11341:2257:94;;-1:-1:-1;;;6144:10:89;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;11341:2257:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;7558:604:99:-;;11341:2257:94;;7686:17:99;7682:83;;11341:2257:94;7789:27:99;11341:2257:94;7789:27:99;11341:2257:94;;7789:27:99;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;11341:2257:94;;;;;;;;;;;;;;;;7888:22:99;;;7884:77;;7975:21;-1:-1:-1;7975:84:99;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;11341:2257:94;8075:24:99;:::o;7975:84::-;11341:2257:94;;;8009:16:99;11341:2257:94;;8009:16:99;:::i;:::-;11341:2257:94;;;8001:24:99;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;11341:2257:94;;;;;8029:29:99;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;11341:2257:94;7926:24:99;:::o;7682:83::-;7726:28;;;;:::i;11341:2257:94:-;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;11341:2257:94;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;11341:2257:94;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;2737:699:93:-;;;;;11341:2257:94;;:::i;:::-;;;;2978:16:93;2974:92;;2737:699;-1:-1:-1;;3080:8:93;11341:2257:94;-1:-1:-1;;;;;11341:2257:94;;;;;3080:21:93;3076:85;;-1:-1:-1;11341:2257:94;3218:67:93;;11341:2257:94;;3257:27:93;;3218;;:13;;-1:-1:-1;;;;;11341:2257:94;3218:13:93;11341:2257:94;3218:27:93;3257;;;;11341:2257:94;;;;;;;;;;;3218:67:93;;;3080:8;3218:67;;;:::i;:::-;;;;;;;;;;3192:192;3218:67;-1:-1:-1;3218:67:93;;;2737:699;3341:28;3303:67;3341:28;;11341:2257:94;3341:28:93;;;3303:67;;:::i;:::-;3192:192;3463:5:70;;;;3066;;11341:2257:94;3060:42:70;3371:111;;3192:192:93;3398:21;;2737:699;:::o;3218:67::-;3303;3218;;;;3257:27;3218:67;3257:27;3218:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;3076:85;-1:-1:-1;;3128:21:93;;-1:-1:-1;;3117:33:93:o;2974:92::-;3024:31;;;;;;;;;;;;;:::i;:::-;2974:92;;;;;3442:253;3552:8;11341:2257:94;-1:-1:-1;;;;;11341:2257:94;;;;;;;3552:21:93;3548:60;;3634:27;3552:8;11341:2257:94;-1:-1:-1;11341:2257:94;;;;;;;;;;;3634:27:93;;;;;;;;;-1:-1:-1;3634:27:93;;;3442:253;2193:25;;:34;:25;11341:2257:94;;2193:13:93;11341:2257:94;;;;;;;2193:25:93;:34;:::i;3634:27::-;2193:34;3634:27;;;;2193:25;3634:27;;;;;;;;;;;:::i;:::-;;;;;;14296:213:71;11341:2257:94;14374:24:71;;;;14370:103;;11341:2257:94;14296:213:71;:::o;14370:103::-;11341:2257:94;;;;14421:41:71;;;;;;14452:2;14421:41;;;11341:2257:94;;;;;14421:41:71;10695:389:73;11341:2257:94;;10871:8:73;;;10895:20;;10833:17;10895:20;10833:17;10895:20;10833:17;10895:20;:::o;10867:211::-;11341:2257:94;;;;;;;;;;10833:17:73;13267:109:99;;10833:17:73;13267:109:99;;;11341:2257:94;11014:1:73;11341:2257:94;;;;;;;11030:37:73;:::o;18080:5181:70:-;18246:1;18241:6;;;18237:53;;18246:1;19217:14;-1:-1:-1;;;19278:16:70;;;19274:92;;18080:5181;22827:18;22717;22607;22498;22387;22278;23216:28;19383:15;19898:6;19383:15;-1:-1:-1;;;23237:6:70;19383:15;;;19379:90;;18080:5181;19493:7;19486:15;;;19482:90;;18080:5181;19596:7;19589:15;;;19585:89;;18080:5181;19698:6;19691:14;;;19687:87;;18080:5181;19798:6;19791:14;;;19787:87;;18080:5181;19891:14;;19887:61;;18080:5181;20374:1;11341:2257:94;18246:1:70;11341:2257:94;22284:6:70;;;;:::i;:::-;11341:2257:94;;;;;22278:18:70;22393:6;;;;:::i;22387:18::-;22504:6;;;;:::i;22498:18::-;22613:6;;;;:::i;22607:18::-;22723:6;;;;:::i;22717:18::-;22833:6;;;;:::i;22827:18::-;23237:6;;;:::i;:::-;23232:11;;;11341:2257:94;23216:28:70;11341:2257:94;;18080:5181:70;:::o;19887:61::-;18246:1;11341:2257:94;19887:61:70;;19787:87;11341:2257:94;;;;;19787:87:70;;;19687;11341:2257:94;;;;;19687:87:70;;;19585:89;11341:2257:94;;;;;19585:89:70;;;19482:90;11341:2257:94;;;;;19482:90:70;;;19379;11341:2257:94;;;;;19379:90:70;;;19274:92;-1:-1:-1;;;;11341:2257:94;-1:-1:-1;11341:2257:94;;;;19274:92:70;;12497:447:99;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;3721:5:70;;;;;;11341:2257:94;;3731:5:70;;;11341:2257:94;;;;;;;;;13267:109:99;-1:-1:-1;13267:109:99;11341:2257:94;13267:109:99;;;-1:-1:-1;13267:109:99;;11341:2257:94;;;;;-1:-1:-1;12771:136:99;11341:2257:94;;;12830:10:99;;12771:136;;12687:230;;;;12771:136;11341:2257:94;;;;;;;;;;;12771:136:99;;;6893:76:26;;;:::i;:::-;;;:::i;:::-;1949:1:30;-1:-1:-1;;;;;;;;;;;11341:2257:94;6893:76:26:o;11341:2257:94:-;;;;;;;:::i;:::-;-1:-1:-1;11341:2257:94;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;11341:2257:94;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11341:2257:94;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;4015:918:93:-;11341:2257:94;;:::i;:::-;;4163:30:93;11341:2257:94;;4163:30:93;;;;;;;;;;;:::i;:::-;4208:17;;11341:2257:94;-1:-1:-1;;;;;11341:2257:94;;4208:17:93;11341:2257:94;;4208:54:93;;:103;;4015:918;4204:161;;4418:15;;;;11341:2257:94;;;;-1:-1:-1;;;4380:54:93;;-1:-1:-1;;;;;11341:2257:94;;;4380:54:93;;;;11341:2257:94;;;;4380:54:93;4418:15;;;;11341:2257:94;;;;;;;;4390:17:93;11341:2257:94;4380:54:93;;;;;;;4208:17;4380:54;;;4015:918;4379:55;;4375:106;;4496:9;;4511:33;;;4208:17;4553:3;4511:33;;11341:2257:94;;4507:44:93;;;;;4576:36;;;:50;:36;;:::i;:::-;11341:2257:94;-1:-1:-1;;;;;11341:2257:94;;;4576:50:93;;4572:119;;4709:73;4710:72;4745:36;;:33;;;:36;:::i;:::-;4710:72;:::i;:::-;4709:73;;11341:2257:94;4709:73:93;4705:140;;11341:2257:94;;4496:9:93;;4705:140;11341:2257:94;;-1:-1:-1;;;4809:21:93;;11341:2257:94;;4809:21:93;4572:119;11341:2257:94;;-1:-1:-1;;;4653:23:93;;11341:2257:94;;4653:23:93;4507:44;-1:-1:-1;;11341:2257:94;;4380:54:93;11341:2257:94;;-1:-1:-1;;;;;;11341:2257:94;-1:-1:-1;;;;;11341:2257:94;;;;;;;;;;-1:-1:-1;4865:26:93;;-1:-1:-1;;11341:2257:94;4865:26:93;4909:17;4015:918;:::o;4375:106::-;4418:15;11341:2257:94;-1:-1:-1;;;4457:13:93;;4380:54;;4457:13;4380:54;;;;;;;;;;;;;;:::i;:::-;;;;4204:161;11341:2257:94;;-1:-1:-1;;;4334:20:93;;;;;4208:103;4266:33;;;;;11341:2257:94;4266:45:93;4208:103;;6999:207:99;;11341:2257:94;;9737:15:73;-1:-1:-1;9762:18:73;9795:7;9801:1;9795:7;;9791:234;;6999:207:99;10049:53:73;;;;;:::i;:::-;10120:8;;;:63;-1:-1:-1;10120:63:73;;-1:-1:-1;;;;;11341:2257:94;;7168:7:99;11341:2257:94;;;7178:12:99;;:17;:12;;:17;:::i;10120:63:73:-;10135:41;10168:7;10135:48;10168:7;;:::i;:::-;10135:41;13267:109:99;;;;;;13089:293;;10135:41:73;11341:2257:94;;;;;10135:48:73;10120:63;;;9791:234;9838:14;;;;;:::i;:::-;11341:2257:94;;;;;;;10049:53:73;13267:109:99;;-1:-1:-1;13267:109:99;11341:2257:94;13267:109:99;;;-1:-1:-1;13267:109:99;;11341:2257:94;;;;;9870:48:73;9866:149;11341:2257:94;;;9938:10:73;9866:149;9791:234;;9866:149;9993:7;;;;;;:::i;:::-;9866:149;9791:234;;11341:2257:94;;;;;;;:::i;:::-;-1:-1:-1;11341:2257:94;;;;;;;:::o;11486:272:99:-;;11341:2257:94;11452:22:73;11718:31:99;11486:272;11341:2257:94;;:::i;:::-;;;;:::i;:::-;;11452:22:73;;:::i;:::-;11341:2257:94;;:::i;:::-;;11718:12:99;11341:2257:94;;;;;11731:17:99;11341:2257:94;;;;;11731:17:99;;11341:2257:94;;11718:12:99;;:31;:::i;:::-;11341:2257:94;;;;;;;;;:::i;:::-;;;;;;11731:17:99;11672:79;;11341:2257:94;11486:272:99;:::o;11341:2257:94:-;;;-1:-1:-1;;;11341:2257:94;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;11341:2257:94;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11657:922:73;11341:2257:94;;11657:922:73;;;11864:7;;;;11936;11916:28;11936:7;;:::i;:::-;11916:28;13267:109:99;;;;;;13089:293;;11916:28:73;11341:2257:94;;;;;;;;;;;;12103:13:73;;;12099:89;;12251:14;;;;;12285:19;;;;11341:2257:94;;;;;;;;;;;;;;;;;12285:19:73;11341:2257:94;;12423:25:73;;:::o;12247:163::-;11341:2257:94;;;12343:52:73;11341:2257:94;12353:41:73;11341:2257:94;;:::i;:::-;;;;;;;;12353:41:73;-1:-1:-1;;;;;11341:2257:94;;12353:41:73;;;11341:2257:94;12343:52:73;:::i;:::-;12247:163;;12099:89;11341:2257:94;;-1:-1:-1;;;12143:30:73;;;;;11860:713;11341:2257:94;;12479:52:73;11341:2257:94;12489:41:73;11341:2257:94;;:::i;12489:41:73:-;-1:-1:-1;;;;;11341:2257:94;;12489:41:73;;;11341:2257:94;12343:52:73;:::i;12479:::-;11870:1;12545:17;;:::o;7084:141:26:-;11341:2257:94;-1:-1:-1;;;;;;;;;;;11341:2257:94;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;11341:2257:94;;-1:-1:-1;;;7191:17:26;;;;","linkReferences":{},"immutableReferences":{"60120":[{"start":1956,"length":32}],"60123":[{"start":3948,"length":32}],"61074":[{"start":1429,"length":32},{"start":4005,"length":32}],"61077":[{"start":959,"length":32},{"start":8857,"length":32}],"61080":[{"start":1027,"length":32},{"start":6514,"length":32},{"start":6817,"length":32}],"61083":[{"start":1299,"length":32},{"start":6361,"length":32},{"start":6943,"length":32}],"62999":[{"start":3534,"length":32},{"start":11007,"length":32}],"64267":[{"start":3369,"length":32},{"start":5274,"length":32}],"64269":[{"start":2830,"length":32},{"start":5435,"length":32}],"64271":[{"start":3696,"length":32}],"64680":[{"start":1164,"length":32}]}},"methodIdentifiers":{"BASE_DELEGATOR_HINTS()":"79d89614","DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_LIMIT_SET_ROLE()":"7d24bb27","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_REGISTRY()":"83ce0322","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","OPT_IN_SERVICE_HINTS()":"9b656b22","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VAULT_HINTS()":"45e78fcb","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","networkLimit(bytes32)":"3eb22c0f","networkLimitAt(bytes32,uint48,bytes)":"5d32a1c9","networkLimitHint(address,bytes32,uint48)":"da749d2b","networkLimitHintInternal(bytes32,uint48)":"197aa7ea","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operator()":"570ca735","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","setNetworkLimit(bytes32,uint256)":"02145348","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","stakeHints(address,bytes32,address,uint48)":"25dc9708","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseDelegatorHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"optInServiceHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateRoleHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExceedsMaxNetworkLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoleHolders\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressRoleHolder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPT_IN_SERVICE_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"networkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"networkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"networkLimit(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the subnetwork\"}},\"networkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the subnetwork limit at\"},\"returns\":{\"_0\":\"limit of the subnetwork at the given timestamp\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"setNetworkLimit(bytes32,uint256)\":{\"details\":\"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"},\"SetNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's limit is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get a subnetwork limit setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_REGISTRY()\":{\"notice\":\"Get the operator registry's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"networkLimit(bytes32)\":{\"notice\":\"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"networkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operator()\":{\"notice\":\"Get an operator managing the vault's funds.\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"setNetworkLimit(bytes32,uint256)\":{\"notice\":\"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/DelegatorHints.sol\":\"OperatorSpecificDelegatorHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf\",\"dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x4aaaf1c0737dd16e81f0d2b9833c549747a5ede6873bf1444bc72aa572d03e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eada27d7668eebaea16c3b890aa1b38ffc53965292e26c96f7c44834623f4710\",\"dweb:/ipfs/QmVSWuLtxyCqNbLyY89ptxkvsk4CLLKDQYigEne5Qj8k1L\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a\",\"dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c\",\"dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e\",\"dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0xbdc3bb48ccedb818cd75a6d74a16df55a822e9f6d3cc54c59f576f10aab67b5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2284f25f2478f419d7781573b17a89d0e7c5589a865d55e2d6ed5163aee23aa8\",\"dweb:/ipfs/QmNsr2625APBQiNKpYnX5VcSnYgfUHR9Uzzp9pRXjoDqK7\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44\",\"dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0xd71e9102e99a25ee8b5435779f011a24558f56074aa2b16c18b623b57754ae97\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://29db5552e55dab51bea1ae40ba00ca674cb50fcb10997999a72a94527b6eb591\",\"dweb:/ipfs/QmQrYyTPx73ubNxMhYWJCkprCVFVtuTFcKaabYiKTe71tY\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseDelegatorHints","type":"address"},{"internalType":"address","name":"vaultHints","type":"address"},{"internalType":"address","name":"optInServiceHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DuplicateRoleHolder"},{"inputs":[],"type":"error","name":"ExceedsMaxNetworkLimit"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"MissingRoleHolders"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotOperator"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"ZeroAddressRoleHolder"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPT_IN_SERVICE_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"networkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"networkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"networkLimit(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the subnetwork"}},"networkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the subnetwork limit at"},"returns":{"_0":"limit of the subnetwork at the given timestamp"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"setNetworkLimit(bytes32,uint256)":{"details":"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_LIMIT_SET_ROLE()":{"notice":"Get a subnetwork limit setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_REGISTRY()":{"notice":"Get the operator registry's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"networkLimit(bytes32)":{"notice":"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"networkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operator()":{"notice":"Get an operator managing the vault's funds."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"setNetworkLimit(bytes32,uint256)":{"notice":"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/DelegatorHints.sol":"OperatorSpecificDelegatorHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866","urls":["bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf","dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab","urls":["bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89","dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606","urls":["bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1","dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x4aaaf1c0737dd16e81f0d2b9833c549747a5ede6873bf1444bc72aa572d03e98","urls":["bzz-raw://eada27d7668eebaea16c3b890aa1b38ffc53965292e26c96f7c44834623f4710","dweb:/ipfs/QmVSWuLtxyCqNbLyY89ptxkvsk4CLLKDQYigEne5Qj8k1L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol":{"keccak256":"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549","urls":["bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a","dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed","urls":["bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0","dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d","urls":["bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c","dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575","urls":["bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e","dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0xbdc3bb48ccedb818cd75a6d74a16df55a822e9f6d3cc54c59f576f10aab67b5f","urls":["bzz-raw://2284f25f2478f419d7781573b17a89d0e7c5589a865d55e2d6ed5163aee23aa8","dweb:/ipfs/QmNsr2625APBQiNKpYnX5VcSnYgfUHR9Uzzp9pRXjoDqK7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f","urls":["bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44","dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0xd71e9102e99a25ee8b5435779f011a24558f56074aa2b16c18b623b57754ae97","urls":["bzz-raw://29db5552e55dab51bea1ae40ba00ca674cb50fcb10997999a72a94527b6eb591","dweb:/ipfs/QmQrYyTPx73ubNxMhYWJCkprCVFVtuTFcKaabYiKTe71tY"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":94} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"baseDelegatorHints","type":"address","internalType":"address"},{"name":"vaultHints","type":"address","internalType":"address"},{"name":"optInServiceHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HOOK_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HOOK_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPT_IN_SERVICE_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VAULT_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHint","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"networkLimitHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"operator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setHook","inputs":[{"name":"hook_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxNetworkLimit","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeHints","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetHook","inputs":[{"name":"hook","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetMaxNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetNetworkLimit","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DuplicateRoleHolder","inputs":[]},{"type":"error","name":"ExceedsMaxNetworkLimit","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientHookGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"MissingRoleHolders","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotOperator","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddressRoleHolder","inputs":[]}],"bytecode":{"object":"0x6101e0346101d557601f61316638819003918201601f19168301916001600160401b0391828411858510176101d95781606092869260409687528339810103126101d55761004c836101ed565b926100648361005d602084016101ed565b92016101ed565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c166101c4578080831603610180575b5050505f60a0525f60c0525f60e052610100935f8552610120935f85526101405f8152610160915f83526101809384526101a09485526101c09586525195612f64978861020289396080518861048c015260a051886107a4015260c05188610f6c015260e0518881816105950152610fa50152518781816103bf0152612299015251868181610403015281816119720152611aa1015251858181610513015281816118d90152611b1f015251848181610dce0152612aff015251838181610d29015261149a015251828181610b0e015261153b01525181610e700152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a2565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101d55756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610284578063021453481461027f578063103f29071461027a578063128e5d8214610275578063197aa7ea146102705780631a80e5001461026b57806323f752d514610266578063248a9ca31461026157806325dc97081461025c5780632dd31000146102575780632f2ff15d1461025257806336568abe1461024d5780633dfd3873146102485780633eb22c0f14610243578063439fab911461023e57806345e78fcb14610239578063557cab4414610234578063570ca7351461022f5780635d32a1c91461022a5780636679191e1461022557806379d89614146102205780637d24bb271461021b5780637f5a7c7b1461021657806383ce03221461021157806391d148541461020c5780639b656b22146102075780639f86fd8514610202578063a217fddf146101fd578063bb24fe8a146101f8578063c0cd7c3e146101f3578063d15b740e146101ee578063d547741f146101e9578063da749d2b146101e4578063e02f6937146101df578063e49561ee146101da578063fbfa77cf146101d5578063fd4d447c146101d0578063ff54740f146101cb5763ffa1ad74146101c6575f80fd5b61132d565b611310565b6112e6565b6112bf565b6110d4565b61107f565b61104a565b610ffe565b610fd4565b610f90565b610f4d565b610f33565b610e9f565b610e5b565b610dfd565b610db9565b610d91565b610d58565b610d14565b610cda565b610c89565b610b59565b610b3d565b610af9565b6109c1565b610963565b61086a565b61081f565b6107d3565b61078f565b610736565b6106c8565b610542565b6104fe565b610471565b6103ee565b6103aa565b6102de565b346102da5760203660031901126102da5760043563ffffffff60e01b81168091036102da57602090637965db0b60e01b81149081156102c9575b506040519015158152f35b6301ffc9a760e01b1490505f6102be565b5f80fd5b346102da576040806003193601126102da576004359060243590610300611b94565b825f526002602052805f2054821161039a57825f52600360205281610326825f206121eb565b1461038a5781610385916103757e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f94610366875f52600360205260405f2090565b61036f4261272b565b90611c93565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6024359065ffffffffffff821682036102da57565b6064359065ffffffffffff821682036102da57565b6044359065ffffffffffff821682036102da57565b346102da5760403660031901126102da5761048a610432565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036104ec5763ffffffff6104d76040926004355f526003602052835f20611d79565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da576004356001600160601b03811681036102da5760243590610572611e88565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106c3575f91610694575b5015610682576001600160601b03166bffffffffffffffffffffffff193360601b161790806105fc835f52600260205260405f2090565b541461067057610655817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c9261063a855f52600260205260405f2090565b556106458185611eb7565b6040519081529081906020820190565b0390a261066e60015f80516020612eef83398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6106b6915060203d6020116106bc575b6106ae8183610beb565b810190611355565b5f6105c5565b503d6106a4565b61136c565b346102da5760203660031901126102da576004355f525f80516020612ecf8339815191526020526020600160405f200154604051908152f35b6001600160a01b038116036102da57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102da5760803660031901126102da5761078b61077760043561075981610701565b60443561076581610701565b61076d610447565b9160243590611451565b604051918291602083526020830190610712565b0390f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da5761066e6024356004356107f682610701565b805f525f80516020612ecf83398151915260205261081a600160405f200154611bf0565b612123565b346102da5760403660031901126102da5760243561083c81610701565b336001600160a01b038216036108585761066e90600435612159565b60405163334bd91960e11b8152600490fd5b346102da5760203660031901126102da5760043561088781610701565b61088f611e88565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff161561094557506001546001600160a01b039182169181168214610670576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612eef83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346102da5760203660031901126102da576004355f526003602052602061098c60405f206121eb565b604051908152f35b9181601f840112156102da578235916001600160401b0383116102da57602083818601950101116102da57565b346102da5760203660031901126102da576001600160401b036004358181116102da576109f2903690600401610994565b5f80516020612f0f833981519152549260ff8460401c1615931680159081610af1575b6001149081610ae7575b159081610ade575b50610acc575f80516020612f0f833981519152805467ffffffffffffffff19166001179055610a5a9183610aa857612264565b610a6057005b5f80516020612f0f833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612f0f833981519152805460ff60401b1916600160401b179055612264565b60405163f92ee8a960e01b8152600490fd5b9050155f610a27565b303b159150610a1f565b849150610a15565b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da576020604051614e208152f35b346102da575f3660031901126102da576004546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610bb057604052565b610b81565b606081019081106001600160401b03821117610bb057604052565b608081019081106001600160401b03821117610bb057604052565b90601f801991011681019081106001600160401b03821117610bb057604052565b60405190610c1982610bb5565b565b60405190610c1982610b95565b6001600160401b038111610bb057601f01601f191660200190565b81601f820112156102da57803590610c5a82610c28565b92610c686040519485610beb565b828452602083830101116102da57815f926020809301838601378301015290565b346102da5760603660031901126102da57610ca2610432565b6044356001600160401b0381116102da57602091610cc761098c923690600401610c43565b906004355f526003845260405f206123cb565b346102da575f3660031901126102da5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b346102da575f3660031901126102da576001546040516001600160a01b039091168152602090f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da57602060ff610e4f602435610e2181610701565b6004355f525f80516020612ecf833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da57600435610ebc81610701565b6024356001600160401b0381116102da575f91610ede83923690600401610994565b90816040519283928337810184815203915af4610f2b610efc61164d565b91610f1d604051938492151560208401526040808401526060830190610712565b03601f198101835282610beb565b805190602001fd5b346102da575f3660031901126102da5760206040515f8152f35b346102da575f3660031901126102da5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760203660031901126102da576004355f526002602052602060405f2054604051908152f35b346102da5760403660031901126102da5761066e60243560043561102182610701565b805f525f80516020612ecf833981519152602052611045600160405f200154611bf0565b612159565b346102da5760603660031901126102da5761078b61077760043561106d81610701565b61107561045c565b90602435906116ae565b346102da5760803660031901126102da5760243561109c81610701565b6110a461045c565b90606435906001600160401b0382116102da576020926110cb61098c933690600401610c43565b91600435611863565b346102da5760a03660031901126102da576024356004356110f482610701565b60443591611100610447565b90608435906001600160401b0382116102da5761112260049236908401610c43565b61112a611e88565b5f5460209061114f90611143906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156106c3575f9361128e575b506001600160a01b03928316330361127c576001546001600160a01b03168381166111f1575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361066e60015f80516020612eef83398151915255565b9093604051946112288661121a602082019363724ab0f760e11b8552858c898d602487016119ed565b03601f198101885287610beb565b62042e305a1061126a575f6111d8938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611197565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b6112b191935060203d6020116112b8575b6112a98183610beb565b8101906113ed565b915f611171565b503d61129f565b346102da575f3660031901126102da575f546040516001600160a01b039091168152602090f35b346102da5760403660031901126102da57602061098c60243561130881610701565b600435611a6a565b346102da575f3660031901126102da5760206040516203d0908152f35b346102da575f3660031901126102da57602060405160018152f35b519081151582036102da57565b908160209103126102da5761136990611348565b90565b6040513d5f823e3d90fd5b81601f820112156102da5780519061138e82610c28565b9261139c6040519485610beb565b828452602083830101116102da57815f9260208093018386015e8301015290565b906020828203126102da5781516001600160401b0381116102da576113699201611377565b5190610c1982610701565b908160209103126102da575161136981610701565b9061136991602081526114218251606060208401526080830190610712565b9060606040611441602086015194601f1995868683030184870152610712565b9401519282850301910152610712565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052938416604482015265ffffffffffff8516606482015260609594909391925f856084817f000000000000000000000000000000000000000000000000000000000000000087165afa9485156106c3575f9561161b575b5060405163fbfa77cf60e01b81526020816004818888165afa9081156106c357611537945f92859284916115fc575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff90921660248301529094859190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9283156106c3575f936115d6575b5061157692936116ae565b908251158015906115cc575b80156115c2575b61159257505050565b610f1d9394509061136992916115a6610c0c565b9283526020830152604082015260405192839160208301611402565b5081511515611589565b5080511515611582565b61157693506115f6903d805f833e6115ee8183610beb565b8101906113bd565b9261156b565b611615915060203d6020116112b8576112a98183610beb565b5f6114fa565b6116309195503d805f833e6115ee8183610beb565b935f6114cb565b9061136992915f52600360205260405f206123cb565b3d15611677573d9061165e82610c28565b9161166c6040519384610beb565b82523d5f602084013e565b606090565b519063ffffffff821682036102da57565b91908260409103126102da5761136960206116a784611348565b930161167c565b92915f8060609565ffffffffffff60405194602096630cbd53f560e11b888801526024870152166044850152604484526116e784610bd0565b604051938461171487820192639f86fd8560e01b8452306024840152604060448401526064830190610712565b0394611728601f1996878101835282610beb565b51915afa5061174661173861164d565b8380825183010191016124a3565b90156117995780838061175e9351830101910161168d565b929061176957505050565b6113699293945061178d604051948592830191909163ffffffff6020820193169052565b03908101835282610beb565b809150519182156102da5701fd5b604051906117b482610b95565b60606020838281520152565b906020828203126102da5781516001600160401b03928382116102da5701906040828203126102da57604051926117f684610b95565b82518181116102da578261180b918501611377565b845260208301519081116102da576118239201611377565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261136992910190610712565b92611873909291928284866125ac565b92909361187e6117a7565b938051806119d1575b5050841593841561193b575b84156118aa575b505050506118a55790565b505f90565b6020809495506118d5910151604051958694859463530e1d4360e01b865260601c906004860161182b565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106c3575f9161191c575b50155f80808061189a565b611935915060203d6020116106bc576106ae8183610beb565b5f611911565b5f549094506001600160a01b031660208486519261196e604051948593849363530e1d4360e01b8552896004860161182b565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106c3575f916119b2575b501593611893565b6119cb915060203d6020116106bc576106ae8183610beb565b5f6119aa565b6119e59295506020809183010191016117c0565b925f80611887565b919360a093611369969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610712565b634e487b7160e01b5f52601160045260245ffd5b8115611a43570490565b634e487b7160e01b5f52601260045260245ffd5b9060018201809211611a6557565b611a25565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156106c3575f91611b77575b5015918215611af3575b50509050611aed57611369916126a7565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156106c3575f92611b5a575b505015805f80611adc565b611b709250803d106106bc576106ae8183610beb565b5f80611b4f565b611b8e9150843d86116106bc576106ae8183610beb565b5f611ad2565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b5416156109455750565b5f8181525f80516020612ecf83398151915260209081526040808320338452909152902060ff90611be6565b634e487b7160e01b5f52603260045260245ffd5b8054821015611c45575f5260205f2001905f90565b611c1c565b90815491600160401b831015610bb05782611c6d916001610c1995018155611c30565b90919082549060031b91821b915f19901b1916179055565b5f19810191908211611a6557565b90929192600182019081548015611d25575b5084611cb08461275d565b50949092845493611cc0836121eb565b9681611d10575b5015611ced575050505f198101908111611a6557611c6d8591611ce993611c30565b9190565b611ce9949293611d09926001600160d01b039091169190612dc3565b5050611c4a565b65ffffffffffff83811691161490505f611cc7565b600160401b811015610bb057806001611d419201845583611c30565b8154905f199060031b1b191690555f611ca5565b90604051611d6281610b95565b915465ffffffffffff8116835260301c6020830152565b91908254905f829160058411611e21575b611d959350856128c1565b908115611e1557611e0e611e05611dff611df5611dc7611dc2611db788611c85565b895f5260205f200190565b611d55565b966001611dee6020611ddf8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101611c30565b90549060031b1c90565b93611c85565b63ffffffff1690565b6001939291565b5f925082915081908190565b9192611e2c81612796565b8103908111611a6557611d9593865f52611e60611e558360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff85161015611e76575091611d8a565b929150611e8290611a57565b90611d8a565b5f80516020612eef8339815191526002815414611ea55760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f2081611ece8261275d565b919390508315611f2c57611eee916001600160d01b031690600101611c30565b90549060031b1c5b82611f22575b5050611f06575050565b611f1e915f52600360205260405f2061036f4261272b565b5050565b119050815f611efc565b50505f611ef6565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612ecf8339815191529060ff16611aed575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612ecf8339815191529060ff905b54166120ae575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f80516020612ecf8339815191529060ff9061204a565b5f8181525f80516020612ecf833981519152602081815260408084206001600160a01b038716855290915290912060ff9061204a565b5f8181525f80516020612ecf833981519152602081815260408084206001600160a01b03871685529091529091205460ff16156120ae575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b80548061221057505f5b6001600160d01b03811615611aed576001611df59201611c30565b5f19908082810111611a6557825f5260205f2001015460301c6121f5565b9190916040818403126102da57803561224681610701565b9260208201356001600160401b0381116102da576113699201610c43565b6122709181019061222e565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156106c3575f91612383575b50156123715761230560409161230061234b946122e5612923565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612a8f565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116612361575b5001516001600160a01b031690565b9081166123555750565b61235e90611fdf565b50565b61236a90611f34565b505f61233c565b6040516362df054560e01b8152600490fd5b61239c915060203d6020116106bc576106ae8183610beb565b5f6122ca565b908160209103126102da576113699061167c565b90600163ffffffff80931601918211611a6557565b9180511561249957806020806123e6935183010191016123a2565b916123f18382612d00565b92612402845165ffffffffffff1690565b9065ffffffffffff808516921682811461248d5782119182612438575b505061242f576113699250612c30565b50506020015190565b9091506124458354611c85565b63ffffffff83161491821561245e575b50505f8061241f565b612485919250612479612473611e55926123b6565b85612d00565b5165ffffffffffff1690565b115f80612455565b50505050506020015190565b5061136991612c30565b9190916040818403126102da576124b981611348565b9260208201516001600160401b0381116102da576113699201611377565b604051906124e482610bb5565b60606040838281528260208201520152565b906020828203126102da5781516001600160401b03928382116102da5701906060828203126102da576040519261252c84610bb5565b82518181116102da5782612541918501611377565b845260208301518181116102da578261255b918501611377565b602085015260408301519081116102da576125769201611377565b604082015290565b908160209103126102da575190565b60409065ffffffffffff61136994931681528160208201520190610712565b909392936125b86124d7565b9480518061268b575b50506004546001600160a01b03918216911603612683575f546126189291906020906125f790611143906001600160a01b031681565b8187015190604051808097819463810da75d60e01b8352886004840161258d565b03915afa9081156106c35761264b935f92612650575b5061263f9192604087015191611637565b90818082109118021890565b915190565b61263f92506126769060203d60201161267c575b61266e8183610beb565b81019061257e565b9161262e565b503d612664565b505090515f91565b61269f9296506020809183010191016124f6565b935f806125c1565b6004546001600160a01b039290831690831603611aed5760206004925f54166040519384809263bd49c35f60e01b82525afa9182156106c3575f92612702575b506126fd61263f915f52600360205260405f2090565b6121eb565b61263f9192506127236126fd9160203d60201161267c5761266e8183610beb565b9291506126e7565b65ffffffffffff9081811161273e571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b80548061276e5750505f905f905f90565b5f19918183810111611a65575f5260205f2001015460019165ffffffffffff82169160301c90565b600181111561136957600181600160801b8110156128af575b61285761284d61284361283961282f61282561286397600488600160401b61285e9a10156128a2575b640100000000811015612895575b62010000811015612888575b61010081101561287c575b6010811015612870575b1015612868575b60030260011c61281e818b611a39565b0160011c90565b61281e818a611a39565b61281e8189611a39565b61281e8188611a39565b61281e8187611a39565b61281e8186611a39565b8093611a39565b821190565b900390565b60011b61280e565b811c9160021b91612807565b60081c91811b916127fd565b60101c9160081b916127f2565b60201c9160101b916127e6565b60401c9160201b916127d8565b50600160401b9050608082901c6127af565b91905b8382106128d15750505090565b909192808316906001818518811c8301809311611a6557855f5265ffffffffffff808460205f20015416908516105f14612910575050925b91906128c4565b909493508101809111611a655791612909565b61292b612ea0565b612933612ea0565b60015f80516020612eef83398151915255565b6040519061295382610bb5565b5f6040838281528260208201520152565b81601f820112156102da578051916020916001600160401b038411610bb0578360051b906040519461299885840187610beb565b855283808601928201019283116102da578301905b8282106129bb575050505090565b83809183516129c981610701565b8152019101906129ad565b6020818303126102da5780516001600160401b03918282116102da5701918281039260a084126102da57606060405194612a0d86610bb5565b126102da57604051612a1e81610bb5565b8151612a2981610701565b81526020820151612a3981610701565b60208201526040820151612a4c81610701565b6040820152845260608101519283116102da57612a70608092612576948301612964565b6020850152016113e2565b8051821015611c455760209160051b010190565b612a97612946565b50612aad815191602080809483010191016129d4565b8051516001600160a01b0393919084161580612c24575b612c12576040818101805182516302910f8b60e31b81526001600160a01b0390911660048083019190915296929491928690829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106c3575f91612bf5575b5015612be35791938401915f5b83518051821015612bb257611143612b5783612b6493612a7b565b516001600160a01b031690565b15612ba257612b86612b82612b7d612b57848851612a7b565b6120b5565b1590565b612b9257600101612b3c565b8451635140fefd60e11b81528790fd5b84516323cda06760e01b81528790fd5b50509051600480546001600160a01b0319166001600160a01b039092169190911790559350612bdf915050565b5190565b604051631f0853c160e21b8152600490fd5b612c0c9150863d88116106bc576106ae8183610beb565b5f612b2f565b6040516303501f5960e11b8152600490fd5b50828101515115612ac4565b908154905f829160058411612c9a575b612c4b9350846128c1565b80612c7357505f905b6001600160d01b03821615611aed57611369916001611df59201611c30565b612c8d612c82612c9492611c85565b835f5260205f200190565b5460301c90565b90612c54565b9192612ca581612796565b8103908111611a6557612c4b93855f5265ffffffffffff808360205f20015416908516105f14612cd6575091612c40565b929150612ce290611a57565b90612c40565b60405190612cf582610b95565b5f6020838281520152565b90612d29612d23612d4a92612d13612ce8565b50612d1c612ce8565b5084611c30565b50611d55565b91600165ffffffffffff845116936020828060d01b03910151169101611c30565b90549060405192612d5a84610b95565b835260031b1c602082015290565b8054600160401b811015610bb057612d8591600182018155611c30565b612db057815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293928015612e7657612dda612de591611c85565b825f5260205f200190565b9182549265ffffffffffff91828516928116808411612e6457879303612e2b5750612e2492509065ffffffffffff82549181199060301b169116179055565b60301c9190565b915050612e5f91612e4b612e3d610c1b565b65ffffffffffff9093168352565b6001600160d01b0386166020830152612d68565b612e24565b604051632520601d60e01b8152600490fd5b5090612e9b91612e87612e3d610c1b565b6001600160d01b0385166020830152612d68565b5f9190565b60ff5f80516020612f0f8339815191525460401c1615612ebc57565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122001234d11bd31f1e4a2b60a7eec5ad2899ab1230e73d3d5f2aab566a8d4ef5db464736f6c63430008190033","sourceMap":"11341:2257:92:-:0;;;;;;;;;;;;;-1:-1:-1;;11341:2257:92;;;;-1:-1:-1;;;;;11341:2257:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;348:4:93;;332:21;;8837:64:26;11341:2257:92;;;;;;;;;7896:76:26;;11341:2257:92;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:80;;;-1:-1:-1;525:17:80;;-1:-1:-1;552:12:80;;-1:-1:-1;2360:34:87;;2404:28;;-1:-1:-1;2404:28:87;;2442:57;;-1:-1:-1;2442:57:87;;2509:61;-1:-1:-1;2509:61:87;;1716:36:91;;-1:-1:-1;1716:36:91;;11845:41:92;;;;11896:24;;;;11930:40;;;;11341:2257;;;;;;;;332:21:93;11341:2257:92;;;;;525:17:80;11341:2257:92;;;;;552:12:80;11341:2257:92;;;;;2360:34:87;11341:2257:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;11341:2257:92;;;;;;;;;;;;;8087:29:26;;11341:2257:92;;8087:29:26;7981:146;;;;;7896:76;11341:2257:92;;-1:-1:-1;;;7938:23:26;;;;;11341:2257:92;-1:-1:-1;11341:2257:92;;;;;;-1:-1:-1;11341:2257:92;;;;;-1:-1:-1;11341:2257:92;;;;-1:-1:-1;;;;;11341:2257:92;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610284578063021453481461027f578063103f29071461027a578063128e5d8214610275578063197aa7ea146102705780631a80e5001461026b57806323f752d514610266578063248a9ca31461026157806325dc97081461025c5780632dd31000146102575780632f2ff15d1461025257806336568abe1461024d5780633dfd3873146102485780633eb22c0f14610243578063439fab911461023e57806345e78fcb14610239578063557cab4414610234578063570ca7351461022f5780635d32a1c91461022a5780636679191e1461022557806379d89614146102205780637d24bb271461021b5780637f5a7c7b1461021657806383ce03221461021157806391d148541461020c5780639b656b22146102075780639f86fd8514610202578063a217fddf146101fd578063bb24fe8a146101f8578063c0cd7c3e146101f3578063d15b740e146101ee578063d547741f146101e9578063da749d2b146101e4578063e02f6937146101df578063e49561ee146101da578063fbfa77cf146101d5578063fd4d447c146101d0578063ff54740f146101cb5763ffa1ad74146101c6575f80fd5b61132d565b611310565b6112e6565b6112bf565b6110d4565b61107f565b61104a565b610ffe565b610fd4565b610f90565b610f4d565b610f33565b610e9f565b610e5b565b610dfd565b610db9565b610d91565b610d58565b610d14565b610cda565b610c89565b610b59565b610b3d565b610af9565b6109c1565b610963565b61086a565b61081f565b6107d3565b61078f565b610736565b6106c8565b610542565b6104fe565b610471565b6103ee565b6103aa565b6102de565b346102da5760203660031901126102da5760043563ffffffff60e01b81168091036102da57602090637965db0b60e01b81149081156102c9575b506040519015158152f35b6301ffc9a760e01b1490505f6102be565b5f80fd5b346102da576040806003193601126102da576004359060243590610300611b94565b825f526002602052805f2054821161039a57825f52600360205281610326825f206121eb565b1461038a5781610385916103757e899d104fc3d8820bd96540612bcc5c448c8837b13b9f7faa43ad0728f0c14f94610366875f52600360205260405f2090565b61036f4261272b565b90611c93565b5050519081529081906020820190565b0390a2005b5163a741a04560e01b8152600490fd5b51631eefc06360e31b8152600490fd5b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6024359065ffffffffffff821682036102da57565b6064359065ffffffffffff821682036102da57565b6044359065ffffffffffff821682036102da57565b346102da5760403660031901126102da5761048a610432565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036104ec5763ffffffff6104d76040926004355f526003602052835f20611d79565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da576004356001600160601b03811681036102da5760243590610572611e88565b6040516302910f8b60e31b81523360048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106c3575f91610694575b5015610682576001600160601b03166bffffffffffffffffffffffff193360601b161790806105fc835f52600260205260405f2090565b541461067057610655817fc67e7929681aa1bccd63f52b3799bf5805f3009f197db6fdf584b14f7fbf608c9261063a855f52600260205260405f2090565b556106458185611eb7565b6040519081529081906020820190565b0390a261066e60015f80516020612eef83398151915255565b005b60405163a741a04560e01b8152600490fd5b6040516323d53b9760e21b8152600490fd5b6106b6915060203d6020116106bc575b6106ae8183610beb565b810190611355565b5f6105c5565b503d6106a4565b61136c565b346102da5760203660031901126102da576004355f525f80516020612ecf8339815191526020526020600160405f200154604051908152f35b6001600160a01b038116036102da57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102da5760803660031901126102da5761078b61077760043561075981610701565b60443561076581610701565b61076d610447565b9160243590611451565b604051918291602083526020830190610712565b0390f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da5761066e6024356004356107f682610701565b805f525f80516020612ecf83398151915260205261081a600160405f200154611bf0565b612123565b346102da5760403660031901126102da5760243561083c81610701565b336001600160a01b038216036108585761066e90600435612159565b60405163334bd91960e11b8152600490fd5b346102da5760203660031901126102da5760043561088781610701565b61088f611e88565b335f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c60205260409020547fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c9060ff161561094557506001546001600160a01b039182169181168214610670576001600160a01b03191681176001557f5bbb1d3ebb6a3ad2a0f17ff35e579a83af60604d1d3c2a4c83c62adecadf666d5f80a260015f80516020612eef83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346102da5760203660031901126102da576004355f526003602052602061098c60405f206121eb565b604051908152f35b9181601f840112156102da578235916001600160401b0383116102da57602083818601950101116102da57565b346102da5760203660031901126102da576001600160401b036004358181116102da576109f2903690600401610994565b5f80516020612f0f833981519152549260ff8460401c1615931680159081610af1575b6001149081610ae7575b159081610ade575b50610acc575f80516020612f0f833981519152805467ffffffffffffffff19166001179055610a5a9183610aa857612264565b610a6057005b5f80516020612f0f833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020612f0f833981519152805460ff60401b1916600160401b179055612264565b60405163f92ee8a960e01b8152600490fd5b9050155f610a27565b303b159150610a1f565b849150610a15565b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da576020604051614e208152f35b346102da575f3660031901126102da576004546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610bb057604052565b610b81565b606081019081106001600160401b03821117610bb057604052565b608081019081106001600160401b03821117610bb057604052565b90601f801991011681019081106001600160401b03821117610bb057604052565b60405190610c1982610bb5565b565b60405190610c1982610b95565b6001600160401b038111610bb057601f01601f191660200190565b81601f820112156102da57803590610c5a82610c28565b92610c686040519485610beb565b828452602083830101116102da57815f926020809301838601378301015290565b346102da5760603660031901126102da57610ca2610432565b6044356001600160401b0381116102da57602091610cc761098c923690600401610c43565b906004355f526003845260405f206123cb565b346102da575f3660031901126102da5760206040517fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c8152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da575f3660031901126102da5760206040517e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf8152f35b346102da575f3660031901126102da576001546040516001600160a01b039091168152602090f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da57602060ff610e4f602435610e2181610701565b6004355f525f80516020612ecf833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760403660031901126102da57600435610ebc81610701565b6024356001600160401b0381116102da575f91610ede83923690600401610994565b90816040519283928337810184815203915af4610f2b610efc61164d565b91610f1d604051938492151560208401526040808401526060830190610712565b03601f198101835282610beb565b805190602001fd5b346102da575f3660031901126102da5760206040515f8152f35b346102da575f3660031901126102da5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102da575f3660031901126102da576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102da5760203660031901126102da576004355f526002602052602060405f2054604051908152f35b346102da5760403660031901126102da5761066e60243560043561102182610701565b805f525f80516020612ecf833981519152602052611045600160405f200154611bf0565b612159565b346102da5760603660031901126102da5761078b61077760043561106d81610701565b61107561045c565b90602435906116ae565b346102da5760803660031901126102da5760243561109c81610701565b6110a461045c565b90606435906001600160401b0382116102da576020926110cb61098c933690600401610c43565b91600435611863565b346102da5760a03660031901126102da576024356004356110f482610701565b60443591611100610447565b90608435906001600160401b0382116102da5761112260049236908401610c43565b61112a611e88565b5f5460209061114f90611143906001600160a01b031681565b6001600160a01b031690565b60405163b134427160e01b815294859182905afa9283156106c3575f9361128e575b506001600160a01b03928316330361127c576001546001600160a01b03168381166111f1575b50506040805195865265ffffffffffff909316602086015216927f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed91819081015b0390a361066e60015f80516020612eef83398151915255565b9093604051946112288661121a602082019363724ab0f760e11b8552858c898d602487016119ed565b03601f198101885287610beb565b62042e305a1061126a575f6111d8938192827f741a5de99085c0d660f3e4192217b0ffb0ea4e35a0480de48e857a4bc3ee36ed9951926203d090f15093611197565b604051638072475160e01b8152600490fd5b60405163dabc4ad960e01b8152600490fd5b6112b191935060203d6020116112b8575b6112a98183610beb565b8101906113ed565b915f611171565b503d61129f565b346102da575f3660031901126102da575f546040516001600160a01b039091168152602090f35b346102da5760403660031901126102da57602061098c60243561130881610701565b600435611a6a565b346102da575f3660031901126102da5760206040516203d0908152f35b346102da575f3660031901126102da57602060405160018152f35b519081151582036102da57565b908160209103126102da5761136990611348565b90565b6040513d5f823e3d90fd5b81601f820112156102da5780519061138e82610c28565b9261139c6040519485610beb565b828452602083830101116102da57815f9260208093018386015e8301015290565b906020828203126102da5781516001600160401b0381116102da576113699201611377565b5190610c1982610701565b908160209103126102da575161136981610701565b9061136991602081526114218251606060208401526080830190610712565b9060606040611441602086015194601f1995868683030184870152610712565b9401519282850301910152610712565b604051630df8851f60e11b81526001600160a01b03828116600483015260248201849052938416604482015265ffffffffffff8516606482015260609594909391925f856084817f000000000000000000000000000000000000000000000000000000000000000087165afa9485156106c3575f9561161b575b5060405163fbfa77cf60e01b81526020816004818888165afa9081156106c357611537945f92859284916115fc575b5060405163192c0ff760e21b81526001600160a01b03909116600482015265ffffffffffff90921660248301529094859190829081906044820190565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa9283156106c3575f936115d6575b5061157692936116ae565b908251158015906115cc575b80156115c2575b61159257505050565b610f1d9394509061136992916115a6610c0c565b9283526020830152604082015260405192839160208301611402565b5081511515611589565b5080511515611582565b61157693506115f6903d805f833e6115ee8183610beb565b8101906113bd565b9261156b565b611615915060203d6020116112b8576112a98183610beb565b5f6114fa565b6116309195503d805f833e6115ee8183610beb565b935f6114cb565b9061136992915f52600360205260405f206123cb565b3d15611677573d9061165e82610c28565b9161166c6040519384610beb565b82523d5f602084013e565b606090565b519063ffffffff821682036102da57565b91908260409103126102da5761136960206116a784611348565b930161167c565b92915f8060609565ffffffffffff60405194602096630cbd53f560e11b888801526024870152166044850152604484526116e784610bd0565b604051938461171487820192639f86fd8560e01b8452306024840152604060448401526064830190610712565b0394611728601f1996878101835282610beb565b51915afa5061174661173861164d565b8380825183010191016124a3565b90156117995780838061175e9351830101910161168d565b929061176957505050565b6113699293945061178d604051948592830191909163ffffffff6020820193169052565b03908101835282610beb565b809150519182156102da5701fd5b604051906117b482610b95565b60606020838281520152565b906020828203126102da5781516001600160401b03928382116102da5701906040828203126102da57604051926117f684610b95565b82518181116102da578261180b918501611377565b845260208301519081116102da576118239201611377565b602082015290565b6001600160a01b0391821681529116602082015265ffffffffffff909116604082015260806060820181905261136992910190610712565b92611873909291928284866125ac565b92909361187e6117a7565b938051806119d1575b5050841593841561193b575b84156118aa575b505050506118a55790565b505f90565b6020809495506118d5910151604051958694859463530e1d4360e01b865260601c906004860161182b565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106c3575f9161191c575b50155f80808061189a565b611935915060203d6020116106bc576106ae8183610beb565b5f611911565b5f549094506001600160a01b031660208486519261196e604051948593849363530e1d4360e01b8552896004860161182b565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156106c3575f916119b2575b501593611893565b6119cb915060203d6020116106bc576106ae8183610beb565b5f6119aa565b6119e59295506020809183010191016117c0565b925f80611887565b919360a093611369969565ffffffffffff938552600180871b0316602085015260408401521660608201528160808201520190610712565b634e487b7160e01b5f52601160045260245ffd5b8115611a43570490565b634e487b7160e01b5f52601260045260245ffd5b9060018201809211611a6557565b611a25565b5f546040516308834cb560e21b8082526001600160a01b0385811660048401529283166024830152929392602092909183816044817f000000000000000000000000000000000000000000000000000000000000000086165afa9081156106c3575f91611b77575b5015918215611af3575b50509050611aed57611369916126a7565b50505f90565b6040519081526001600160a01b0385166004820152606086901c602482015291508290829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9182156106c3575f92611b5a575b505015805f80611adc565b611b709250803d106106bc576106ae8183610beb565b5f80611b4f565b611b8e9150843d86116106bc576106ae8183610beb565b5f611ad2565b335f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf9060ff905b5416156109455750565b5f8181525f80516020612ecf83398151915260209081526040808320338452909152902060ff90611be6565b634e487b7160e01b5f52603260045260245ffd5b8054821015611c45575f5260205f2001905f90565b611c1c565b90815491600160401b831015610bb05782611c6d916001610c1995018155611c30565b90919082549060031b91821b915f19901b1916179055565b5f19810191908211611a6557565b90929192600182019081548015611d25575b5084611cb08461275d565b50949092845493611cc0836121eb565b9681611d10575b5015611ced575050505f198101908111611a6557611c6d8591611ce993611c30565b9190565b611ce9949293611d09926001600160d01b039091169190612dc3565b5050611c4a565b65ffffffffffff83811691161490505f611cc7565b600160401b811015610bb057806001611d419201845583611c30565b8154905f199060031b1b191690555f611ca5565b90604051611d6281610b95565b915465ffffffffffff8116835260301c6020830152565b91908254905f829160058411611e21575b611d959350856128c1565b908115611e1557611e0e611e05611dff611df5611dc7611dc2611db788611c85565b895f5260205f200190565b611d55565b966001611dee6020611ddf8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101611c30565b90549060031b1c90565b93611c85565b63ffffffff1690565b6001939291565b5f925082915081908190565b9192611e2c81612796565b8103908111611a6557611d9593865f52611e60611e558360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff85161015611e76575091611d8a565b929150611e8290611a57565b90611d8a565b5f80516020612eef8339815191526002815414611ea55760029055565b604051633ee5aeb560e01b8152600490fd5b90815f52600360205260405f2081611ece8261275d565b919390508315611f2c57611eee916001600160d01b031690600101611c30565b90549060031b1c5b82611f22575b5050611f06575050565b611f1e915f52600360205260405f2061036f4261272b565b5050565b119050815f611efc565b50505f611ef6565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020612ecf8339815191529060ff16611aed575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b6001600160a01b0381165f9081527f9ebbcbe0d2961d3fbe56ca6f679bc753bd848d3e6bb3eaf9041c51b286881d2c602052604090207fd1c1f6fa6bf27d54c5e54c7c1dc6e5004d3c027ea1994fe68b29c1b51b69c36c905f80516020612ecf8339815191529060ff905b54166120ae575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f72a65082a5691803ab2b62c9bc729b34205ba1b183d950896526b2fd8714d0c7602052604090207e8b9b1e5fa9cf3b14f87f435649268146305ddf689f082e5961a335b07a9abf905f80516020612ecf8339815191529060ff9061204a565b5f8181525f80516020612ecf833981519152602081815260408084206001600160a01b038716855290915290912060ff9061204a565b5f8181525f80516020612ecf833981519152602081815260408084206001600160a01b03871685529091529091205460ff16156120ae575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b80548061221057505f5b6001600160d01b03811615611aed576001611df59201611c30565b5f19908082810111611a6557825f5260205f2001015460301c6121f5565b9190916040818403126102da57803561224681610701565b9260208201356001600160401b0381116102da576113699201610c43565b6122709181019061222e565b6040516302910f8b60e31b81526001600160a01b039283166004820181905291906020816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156106c3575f91612383575b50156123715761230560409161230061234b946122e5612923565b60018060a01b03166001600160601b0360a01b5f5416175f55565b612a8f565b6020810151600180546001600160a01b0319166001600160a01b0390921691909117905580516001600160a01b0316848116612361575b5001516001600160a01b031690565b9081166123555750565b61235e90611fdf565b50565b61236a90611f34565b505f61233c565b6040516362df054560e01b8152600490fd5b61239c915060203d6020116106bc576106ae8183610beb565b5f6122ca565b908160209103126102da576113699061167c565b90600163ffffffff80931601918211611a6557565b9180511561249957806020806123e6935183010191016123a2565b916123f18382612d00565b92612402845165ffffffffffff1690565b9065ffffffffffff808516921682811461248d5782119182612438575b505061242f576113699250612c30565b50506020015190565b9091506124458354611c85565b63ffffffff83161491821561245e575b50505f8061241f565b612485919250612479612473611e55926123b6565b85612d00565b5165ffffffffffff1690565b115f80612455565b50505050506020015190565b5061136991612c30565b9190916040818403126102da576124b981611348565b9260208201516001600160401b0381116102da576113699201611377565b604051906124e482610bb5565b60606040838281528260208201520152565b906020828203126102da5781516001600160401b03928382116102da5701906060828203126102da576040519261252c84610bb5565b82518181116102da5782612541918501611377565b845260208301518181116102da578261255b918501611377565b602085015260408301519081116102da576125769201611377565b604082015290565b908160209103126102da575190565b60409065ffffffffffff61136994931681528160208201520190610712565b909392936125b86124d7565b9480518061268b575b50506004546001600160a01b03918216911603612683575f546126189291906020906125f790611143906001600160a01b031681565b8187015190604051808097819463810da75d60e01b8352886004840161258d565b03915afa9081156106c35761264b935f92612650575b5061263f9192604087015191611637565b90818082109118021890565b915190565b61263f92506126769060203d60201161267c575b61266e8183610beb565b81019061257e565b9161262e565b503d612664565b505090515f91565b61269f9296506020809183010191016124f6565b935f806125c1565b6004546001600160a01b039290831690831603611aed5760206004925f54166040519384809263bd49c35f60e01b82525afa9182156106c3575f92612702575b506126fd61263f915f52600360205260405f2090565b6121eb565b61263f9192506127236126fd9160203d60201161267c5761266e8183610beb565b9291506126e7565b65ffffffffffff9081811161273e571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b80548061276e5750505f905f905f90565b5f19918183810111611a65575f5260205f2001015460019165ffffffffffff82169160301c90565b600181111561136957600181600160801b8110156128af575b61285761284d61284361283961282f61282561286397600488600160401b61285e9a10156128a2575b640100000000811015612895575b62010000811015612888575b61010081101561287c575b6010811015612870575b1015612868575b60030260011c61281e818b611a39565b0160011c90565b61281e818a611a39565b61281e8189611a39565b61281e8188611a39565b61281e8187611a39565b61281e8186611a39565b8093611a39565b821190565b900390565b60011b61280e565b811c9160021b91612807565b60081c91811b916127fd565b60101c9160081b916127f2565b60201c9160101b916127e6565b60401c9160201b916127d8565b50600160401b9050608082901c6127af565b91905b8382106128d15750505090565b909192808316906001818518811c8301809311611a6557855f5265ffffffffffff808460205f20015416908516105f14612910575050925b91906128c4565b909493508101809111611a655791612909565b61292b612ea0565b612933612ea0565b60015f80516020612eef83398151915255565b6040519061295382610bb5565b5f6040838281528260208201520152565b81601f820112156102da578051916020916001600160401b038411610bb0578360051b906040519461299885840187610beb565b855283808601928201019283116102da578301905b8282106129bb575050505090565b83809183516129c981610701565b8152019101906129ad565b6020818303126102da5780516001600160401b03918282116102da5701918281039260a084126102da57606060405194612a0d86610bb5565b126102da57604051612a1e81610bb5565b8151612a2981610701565b81526020820151612a3981610701565b60208201526040820151612a4c81610701565b6040820152845260608101519283116102da57612a70608092612576948301612964565b6020850152016113e2565b8051821015611c455760209160051b010190565b612a97612946565b50612aad815191602080809483010191016129d4565b8051516001600160a01b0393919084161580612c24575b612c12576040818101805182516302910f8b60e31b81526001600160a01b0390911660048083019190915296929491928690829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106c3575f91612bf5575b5015612be35791938401915f5b83518051821015612bb257611143612b5783612b6493612a7b565b516001600160a01b031690565b15612ba257612b86612b82612b7d612b57848851612a7b565b6120b5565b1590565b612b9257600101612b3c565b8451635140fefd60e11b81528790fd5b84516323cda06760e01b81528790fd5b50509051600480546001600160a01b0319166001600160a01b039092169190911790559350612bdf915050565b5190565b604051631f0853c160e21b8152600490fd5b612c0c9150863d88116106bc576106ae8183610beb565b5f612b2f565b6040516303501f5960e11b8152600490fd5b50828101515115612ac4565b908154905f829160058411612c9a575b612c4b9350846128c1565b80612c7357505f905b6001600160d01b03821615611aed57611369916001611df59201611c30565b612c8d612c82612c9492611c85565b835f5260205f200190565b5460301c90565b90612c54565b9192612ca581612796565b8103908111611a6557612c4b93855f5265ffffffffffff808360205f20015416908516105f14612cd6575091612c40565b929150612ce290611a57565b90612c40565b60405190612cf582610b95565b5f6020838281520152565b90612d29612d23612d4a92612d13612ce8565b50612d1c612ce8565b5084611c30565b50611d55565b91600165ffffffffffff845116936020828060d01b03910151169101611c30565b90549060405192612d5a84610b95565b835260031b1c602082015290565b8054600160401b811015610bb057612d8591600182018155611c30565b612db057815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293928015612e7657612dda612de591611c85565b825f5260205f200190565b9182549265ffffffffffff91828516928116808411612e6457879303612e2b5750612e2492509065ffffffffffff82549181199060301b169116179055565b60301c9190565b915050612e5f91612e4b612e3d610c1b565b65ffffffffffff9093168352565b6001600160d01b0386166020830152612d68565b612e24565b604051632520601d60e01b8152600490fd5b5090612e9b91612e87612e3d610c1b565b6001600160d01b0385166020830152612d68565b5f9190565b60ff5f80516020612f0f8339815191525460401c1615612ebc57565b604051631afcd79f60e31b8152600490fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122001234d11bd31f1e4a2b60a7eec5ad2899ab1230e73d3d5f2aab566a8d4ef5db464736f6c63430008190033","sourceMap":"11341:2257:92:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;11341:2257:92;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;11341:2257:92;;;;;;;;;;3551:87:23;-1:-1:-1;;;1134:40:32;;-1:-1:-1;3551:87:23;;;11341:2257:92;-1:-1:-1;11341:2257:92;;;;;;;;;;;;;;;;;;;;3202:4:23;;;:::i;:::-;11341:2257:92;-1:-1:-1;11341:2257:92;2428:15:91;11341:2257:92;;;-1:-1:-1;11341:2257:92;;2419:36:91;;2415:98;;11341:2257:92;-1:-1:-1;11341:2257:92;2193:13:91;11341:2257:92;;;2193:34:91;11341:2257:92;-1:-1:-1;11341:2257:92;2193:34:91;:::i;:::-;2527;2523:84;;2617:25;2689:35;2617:25;:56;2689:35;2617:25;;;11341:2257:92;;2193:13:91;11341:2257:92;;;;;;;2617:25:91;819:34:73;837:15;819:34;:::i;:::-;2617:56:91;;:::i;:::-;-1:-1:-1;;11341:2257:92;;;;;;;;;;;;2689:35:91;;;;11341:2257:92;2523:84:91;11341:2257:92;-1:-1:-1;;;2584:12:91;;11341:2257:92;;2584:12:91;2415:98;11341:2257:92;-1:-1:-1;;;2478:24:91;;11341:2257:92;;2478:24:91;11341:2257:92;;;;;;-1:-1:-1;;11341:2257:92;;;;;;1537:38:87;-1:-1:-1;;;;;11341:2257:92;;;;;;;;;;;;-1:-1:-1;;11341:2257:92;;;;;;1632:54:87;-1:-1:-1;;;;;11341:2257:92;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;11341:2257:92;;;;;;:::i;:::-;449:5:93;-1:-1:-1;;;;;11341:2257:92;435:10:93;:19;431:71;;11341:2257:92;12172:64;11341:2257;;;;-1:-1:-1;11341:2257:92;12172:13;11341:2257;;;-1:-1:-1;11341:2257:92;12172:64;:::i;:::-;11341:2257;;;;;;;;;;;;;;;;;;;431:71:93;11341:2257:92;;-1:-1:-1;;;477:14:93;;11341:2257:92;;477:14:93;11341:2257:92;;;;;;-1:-1:-1;;11341:2257:92;;;;;;1743:56:87;-1:-1:-1;;;;;11341:2257:92;;;;;;;;;;;;-1:-1:-1;;11341:2257:92;;;;;;-1:-1:-1;;;;;11341:2257:92;;;;;;;;3361:103:30;;;:::i;:::-;11341:2257:92;;-1:-1:-1;;;4285:48:87;;4322:10;11341:2257:92;4285:48:87;;11341:2257:92;;;;;-1:-1:-1;;;;;4295:16:87;11341:2257:92;4285:48:87;;;;;;;-1:-1:-1;4285:48:87;;;11341:2257:92;4284:49:87;;4280:99;;-1:-1:-1;;;;;11341:2257:92;-1:-1:-1;;4322:10:87;297:2:99;11341:2257:92;;267:46:99;4459:27:87;;;;11341:2257:92;;4459:15:87;11341:2257:92;;;;;;;4459:27:87;11341:2257:92;4459:37:87;4455:87;;4654:38;4552:27;4654:38;4552:27;;;11341:2257:92;;4459:15:87;11341:2257:92;;;;;;;4552:27:87;11341:2257:92;4631:6:87;;;;:::i;:::-;11341:2257:92;;;;;;;;;;;;;4654:38:87;;;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;11341:2257:92;3860:283:30;3426:1;11341:2257:92;4455:87:87;11341:2257:92;;-1:-1:-1;;;4519:12:87;;11341:2257:92;;4519:12:87;4280:99;11341:2257:92;;-1:-1:-1;;;4356:12:87;;11341:2257:92;;4356:12:87;4285:48;;;;11341:2257:92;4285:48:87;11341:2257:92;4285:48:87;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;11341:2257:92:-;;;;;;-1:-1:-1;;11341:2257:92;;;;;;-1:-1:-1;11341:2257:92;-1:-1:-1;;;;;;;;;;;11341:2257:92;;;4919:24:23;11341:2257:92;-1:-1:-1;11341:2257:92;4919:24:23;11341:2257:92;;;;;;;;-1:-1:-1;;;;;11341:2257:92;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;11341:2257:92;;;;;;;;-1:-1:-1;;11341:2257:92;;;;:::o;:::-;;;;;;-1:-1:-1;;11341:2257:92;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;11341:2257:92;;;;;;322:32:80;-1:-1:-1;;;;;11341:2257:92;;;;;;;;;;;;-1:-1:-1;;11341:2257:92;;;;5350:25:23;11341:2257:92;;;;;;;:::i;:::-;;-1:-1:-1;11341:2257:92;-1:-1:-1;;;;;;;;;;;11341:2257:92;;3202:4:23;4919:24;11341:2257:92;-1:-1:-1;11341:2257:92;4919:24:23;11341:2257:92;3202:4:23;:::i;:::-;5350:25;:::i;11341:2257:92:-;;;;;;-1:-1:-1;;11341:2257:92;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;11341:2257:92;;6441:34:23;6437:102;;6549:37;11341:2257:92;;;6549:37:23;:::i;6437:102::-;11341:2257:92;;-1:-1:-1;;;6498:30:23;;11341:2257:92;;6498:30:23;11341:2257:92;;;;;;-1:-1:-1;;11341:2257:92;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;966:10:28;-1:-1:-1;11341:2257:92;;;;;;;;;;1356:26:87;;11341:2257:92;;4468:23:23;4464:108;;-1:-1:-1;4861:4:87;11341:2257:92;-1:-1:-1;;;;;11341:2257:92;;;;;;4861:13:87;;4857:63;;-1:-1:-1;;;;;;11341:2257:92;;;4861:4:87;11341:2257:92;4958:14:87;-1:-1:-1;;4958:14:87;4861:4;-1:-1:-1;;;;;;;;;;;11341:2257:92;;4464:108:23;11341:2257:92;;;;4514:47:23;;;;;;966:10:28;11341:2257:92;4514:47:23;;11341:2257:92;;;;;4514:47:23;11341:2257:92;;;;;;-1:-1:-1;;11341:2257:92;;;;;;-1:-1:-1;11341:2257:92;2193:13:91;11341:2257:92;;;2193:34:91;11341:2257:92;-1:-1:-1;11341:2257:92;2193:34:91;:::i;:::-;11341:2257:92;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11341:2257:92;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;11341:2257:92;;;;-1:-1:-1;;;;;11341:2257:92;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;11341:2257:92;;;;;;;4301:16:26;11341:2257:92;;4726:16:26;;:34;;;;11341:2257:92;4805:1:26;4790:16;:50;;;;11341:2257:92;4855:13:26;:30;;;;11341:2257:92;4851:91:26;;;-1:-1:-1;;;;;;;;;;;11341:2257:92;;-1:-1:-1;;11341:2257:92;;;;;718:4:80;;4951:18:26;4979:67;;718:4:80;:::i;:::-;5066:101:26;;11341:2257:92;5066:101:26;-1:-1:-1;;;;;;;;;;;11341:2257:92;;-1:-1:-1;;;;11341:2257:92;;;;;-1:-1:-1;11341:2257:92;;5142:14:26;;11341:2257:92;;5142:14:26;11341:2257:92;4979:67:26;-1:-1:-1;;;;;;;;;;;11341:2257:92;;-1:-1:-1;;;;11341:2257:92;-1:-1:-1;;;11341:2257:92;;;718:4:80;:::i;4851:91:26:-;11341:2257:92;;-1:-1:-1;;;4908:23:26;;11341:2257:92;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;11341:2257:92;;;;;;-1:-1:-1;;11341:2257:92;;;;;;11523:36;-1:-1:-1;;;;;11341:2257:92;;;;;;;;;;;;-1:-1:-1;;11341:2257:92;;;;;;;1253:6:87;11341:2257:92;;;;;;;;;-1:-1:-1;;11341:2257:92;;;;;;;;-1:-1:-1;;;;;11341:2257:92;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11341:2257:92;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;11341:2257:92;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;11341:2257:92;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;11341:2257:92;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;11341:2257:92;;;;;;-1:-1:-1;;11341:2257:92;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;11341:2257:92;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;11341:2257:92;;;;;;:::i;:::-;;;-1:-1:-1;;;;;11341:2257:92;;;;;;;1955:60:91;11341:2257:92;;;;;;:::i;:::-;;;;-1:-1:-1;11341:2257:92;1955:13:91;11341:2257:92;;;-1:-1:-1;11341:2257:92;1955:60:91;:::i;11341:2257:92:-;;;;;;-1:-1:-1;;11341:2257:92;;;;;;;1356:26:87;11341:2257:92;;;;;;;;;-1:-1:-1;;11341:2257:92;;;;;;11472:45;-1:-1:-1;;;;;11341:2257:92;;;;;;;;;;;;-1:-1:-1;;11341:2257:92;;;;;;;885:35:91;11341:2257:92;;;;;;;;;-1:-1:-1;;11341:2257:92;;;;;;;;-1:-1:-1;;;;;11341:2257:92;;;;;;;;;;;;;;-1:-1:-1;;11341:2257:92;;;;;;989:42:91;-1:-1:-1;;;;;11341:2257:92;;;;;;;;;;;;-1:-1:-1;;11341:2257:92;;;;;;3901:31:23;11341:2257:92;;;;;:::i;:::-;;;-1:-1:-1;11341:2257:92;-1:-1:-1;;;;;;;;;;;11341:2257:92;;;-1:-1:-1;11341:2257:92;;;;;;;;;;;;;;;;;3901:31:23;11341:2257:92;;;;;;;;;;;;;;;;-1:-1:-1;;11341:2257:92;;;;;;11565:45;-1:-1:-1;;;;;11341:2257:92;;;;;;;;;;;;-1:-1:-1;;11341:2257:92;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;11341:2257:92;;;;-1:-1:-1;11341:2257:92;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:86;;;;477:31;416:25;;:::i;:::-;11341:2257:92;;;;;;;;;;477:31:86;;11341:2257:92;;;;;;;;;;;:::i;:::-;477:31:86;11341:2257:92;;477:31:86;;;;;;:::i;:::-;518:79;;;11341:2257:92;518:79:86;;11341:2257:92;;;;;;-1:-1:-1;;11341:2257:92;;;;;;;;;;;;;;;;;-1:-1:-1;;11341:2257:92;;;;;;;-1:-1:-1;;;;;404:28:80;11341:2257:92;;;;;;;;;;-1:-1:-1;;11341:2257:92;;;;;;1439:41:87;-1:-1:-1;;;;;11341:2257:92;;;;;;;;;;;;-1:-1:-1;;11341:2257:92;;;;;;-1:-1:-1;11341:2257:92;2009:67:87;11341:2257:92;;;;-1:-1:-1;11341:2257:92;;;;;;;;;;;;;;-1:-1:-1;;11341:2257:92;;;;5767:26:23;11341:2257:92;;;;;;;:::i;:::-;;-1:-1:-1;11341:2257:92;-1:-1:-1;;;;;;;;;;;11341:2257:92;;3202:4:23;4919:24;11341:2257:92;-1:-1:-1;11341:2257:92;4919:24:23;11341:2257:92;3202:4:23;:::i;:::-;5767:26;:::i;11341:2257:92:-;;;;;;-1:-1:-1;;11341:2257:92;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;11341:2257:92;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;;;;11341:2257:92;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;11341:2257:92;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;11341:2257:92;;;;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;-1:-1:-1;11341:2257:92;;;5246:21:87;;:13;;-1:-1:-1;;;;;11341:2257:92;5246:13:87;11341:2257:92;;-1:-1:-1;;;;;11341:2257:92;;;5246:21:87;11341:2257:92;;-1:-1:-1;;;5246:23:87;;11341:2257:92;;;;;5246:23:87;;;;;;;-1:-1:-1;5246:23:87;;;11341:2257:92;-1:-1:-1;;;;;;11341:2257:92;;;5232:10:87;:37;5228:87;;5341:4;11341:2257:92;-1:-1:-1;;;;;11341:2257:92;;;;5355:469:87;;11341:2257:92;-1:-1:-1;;11341:2257:92;;;;;;;;;;;;;;;;5839:55:87;;11341:2257:92;;;;5839:55:87;;;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;11341:2257:92;3860:283:30;5355:469:87;11341:2257:92;;;;5435:94:87;;;;11341:2257:92;5435:94:87;;;;;;;;;;;;11341:2257:92;5435:94:87;;;:::i;:::-;;11341:2257:92;;5435:94:87;;;;;;:::i;:::-;11341:2257:92;5548:9:87;:51;5544:118;;-1:-1:-1;5839:55:87;5676:138;;;;5839:55;5676:138;;;1150:7;5676:138;;5355:469;;;5544:118;11341:2257:92;;-1:-1:-1;;;5626:21:87;;11341:2257:92;;5626:21:87;5228:87;11341:2257:92;;-1:-1:-1;;;5292:12:87;;11341:2257:92;;5292:12:87;5246:23;;;;;11341:2257:92;5246:23:87;11341:2257:92;5246:23:87;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;11341:2257:92;;;;;;-1:-1:-1;;11341:2257:92;;;;;;;;-1:-1:-1;;;;;11341:2257:92;;;;;;;;;;;;;;-1:-1:-1;;11341:2257:92;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;11341:2257:92;;;;;;;1150:7:87;11341:2257:92;;;;;;;;;-1:-1:-1;;11341:2257:92;;;;;;;2700:1:87;11341:2257:92;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;11341:2257:92;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;11341:2257:92;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;12761:835::-;11341:2257;;-1:-1:-1;;;12978:99:92;;-1:-1:-1;;;;;11341:2257:92;;;12978:99;;;11341:2257;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11341:2257:92;;;12997:20;11341:2257;;12978:99;;;;;;;;;;;12761:835;-1:-1:-1;11341:2257:92;;-1:-1:-1;;;13171:32:92;;;11341:2257;12978:99;11341:2257;;;;13171:32;;;;;;;13131:84;13171:32;12978:99;13171:32;;;;;;;12761:835;-1:-1:-1;11341:2257:92;;-1:-1:-1;;;13131:84:92;;-1:-1:-1;;;;;11341:2257:92;;;12978:99;13131:84;;11341:2257;;;;;;;;;;;;;-1:-1:-1;11341:2257:92;;;;;;;;;13131:84;;13142:11;;11341:2257;13131:84;;;;;;;12978:99;13131:84;;;12761:835;13259:50;;;;;:::i;:::-;11341:2257;;;13324:21;;;:52;;;12761:835;13324:85;;;;12761:835;13320:270;;12761:835;;;:::o;13320:270::-;13432:147;11341:2257;;;;13432:147;11341:2257;;;;:::i;:::-;;;;13171:32;13460:105;;11341:2257;;13460:105;;11341:2257;;;13432:147;;;13171:32;13432:147;;;:::i;13324:85::-;11341:2257;;;13380:29;;13324:85;;:52;11341:2257;;;13349:27;;13324:52;;13131:84;13259:50;13131:84;;;;;;12978:99;13131:84;;;;;;:::i;:::-;;;;;:::i;:::-;;;;13171:32;;;;;;;;;;;;;;:::i;:::-;;;;12978:99;;;;;;;;;;;;;;:::i;:::-;;;;;1827:195:91;;1955:60;1827:195;;-1:-1:-1;11341:2257:92;1955:13:91;11341:2257:92;;;-1:-1:-1;11341:2257:92;1955:60:91;:::i;11341:2257:92:-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;11341:2257:92;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;12249:506::-;;;-1:-1:-1;12383:12:92;11341:2257;;;;;12529:96;;;;;;;;;;;;;11341:2257;;;;;;;12529:96;;;;;:::i;:::-;11341:2257;;716:88:93;;11341:2257:92;716:88:93;;;;;;;;;783:4;12529:96:92;716:88:93;;11341:2257:92;;;;;;;;;;;:::i;:::-;716:88:93;11341:2257:92;716:88:93;11341:2257:92;;716:88:93;;;;;;;;:::i;:::-;698:107;;;;;857:45;698:107;;:::i;:::-;11341:2257:92;;;;857:45:93;;;;;;:::i;:::-;916:8;;912:175;;11341:2257:92;;;12437:240;11341:2257;;12437:240;;;;;;:::i;:::-;12688:61;;;;12249:506;;;:::o;12688:61::-;12721:17;11341:2257;;;;12721:17;11341:2257;;12721:17;;;;;11341:2257;;;;;;;;;;;;12721:17;;;;;;;;;:::i;912:175:93:-;11341:2257:92;;;;944:22:93;;;940:36;;990:87;;11341:2257:92;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;11341:2257:92;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;11341:2257:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2764:920:87:-;;2978:48;2764:920;;;;2978:48;;;;:::i;:::-;3036:36;;;11341:2257:92;;:::i;:::-;;;;3086:20:87;3082:107;;2764:920;3216:11;;;;:193;;;;;2764:920;3216:394;;;;2764:920;3199:455;;;;;;2764:920;:::o;3199:455::-;3635:8;-1:-1:-1;3635:8:87;:::o;3216:394::-;3553:39;;;;;3430:180;3553:39;;;11341:2257:92;;;;;;;;;;3430:180:87;;467:2:99;11341:2257:92;3430:180:87;;;;;:::i;:::-;;11341:2257:92;3444:31:87;-1:-1:-1;;;;;11341:2257:92;3430:180:87;;;;;;;-1:-1:-1;3430:180:87;;;3216:394;3429:181;;3216:394;;;;;;3430:180;;;;3553:39;3430:180;3553:39;3430:180;;;;;;;:::i;:::-;;;;3216:193;-1:-1:-1;11341:2257:92;;;-1:-1:-1;;;;;;11341:2257:92;3248:161:87;3354:37;;;11341:2257:92;3248:161:87;11341:2257:92;;;;;;;;;;3248:161:87;;;;;;;:::i;:::-;;11341:2257:92;3262:29:87;-1:-1:-1;;;;;11341:2257:92;3248:161:87;;;;;;;-1:-1:-1;3248:161:87;;;3216:193;3247:162;;3216:193;;;3248:161;;;;;;;;;;;;;;:::i;:::-;;;;3082:107;3139:39;;;;;;;;;;;;;:::i;:::-;3082:107;;;;;11341:2257:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;8889:1:97;11341:2257:92;;;;;;;:::o;:::-;;:::i;3740:389:87:-;3918:5;11341:2257:92;;;-1:-1:-1;;;3853:71:87;;;-1:-1:-1;;;;;11341:2257:92;;;3853:71:87;;;11341:2257:92;;;;;;;;3740:389:87;;11341:2257:92;3853:71:87;;11341:2257:92;;3853:71:87;11341:2257:92;;;3867:29:87;11341:2257:92;;3853:71:87;;;;;;;3918:5;3853:71;;;3740:389;3852:72;;11341:2257:92;;;3852:181:87;;3740:389;3835:242;;;;;;4094:28;;;:::i;3835:242::-;4058:8;;3918:5;4058:8;:::o;3852:181::-;11341:2257:92;;3945:88:87;;;-1:-1:-1;;;;;11341:2257:92;;3853:71:87;3945:88;;11341:2257:92;467:2:99;11341:2257:92;;;;;;;;-1:-1:-1;11341:2257:92;;;;;;;;3959:31:87;11341:2257:92;3945:88:87;;;;;;;3918:5;3945:88;;;3852:181;3944:89;;;3852:181;;;;;3945:88;;;;;;-1:-1:-1;3945:88:87;;;;;;:::i;:::-;;;;;3853:71;;;;;;;;;;;;;;:::i;:::-;;;;4148:103:23;966:10:28;-1:-1:-1;11341:2257:92;;;;;;;;;885:35:91;;11341:2257:92;;3901:31:23;11341:2257:92;;4468:23:23;4464:108;;4148:103;:::o;:::-;-1:-1:-1;11341:2257:92;;;-1:-1:-1;;;;;;;;;;;11341:2257:92;;;;;;;;966:10:28;11341:2257:92;;;;;;;;;3901:31:23;11341:2257:92;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11341:2257:92;;-1:-1:-1;11341:2257:92;;;-1:-1:-1;11341:2257:92;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;;11341:2257:92;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11341:2257:92;;;;;;;;:::o;6246:584:97:-;;;;;6360:12;;;11341:2257:92;;;6360:24:97;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;11341:2257:92;;;;;;6578:12:97;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:97;;;-1:-1:-1;;;;;11341:2257:92;;;;;;;6644:21:97;;;:29;:21;;:::i;:29::-;6798:25;6246:584;:::o;6600:188::-;6753:24;;11341:2257:92;;8310:38:71;;-1:-1:-1;;;;;11341:2257:92;;;;;8310:38:71;:::i;:::-;6753:24:97;;;:::i;6604:::-;11341:2257:92;;;;;;6614:14:97;;-1:-1:-1;6604:24:97;;;6356:75;-1:-1:-1;;;11341:2257:92;;;;;;6360:12:97;11341:2257:92;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:97;;;11341:2257:92;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;8406:869:97:-;;;11341:2257:92;;8620:15:97;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;11341:2257:92;9219:31:97;11341:2257:92;9130:48:97;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;9130:48;11341:2257:92;:::i;:::-;;9176:1:97;11341:2257:92;9232:17:97;11341:2257:92;;;;;;;;9232:17:97;;11341:2257:92;-1:-1:-1;;;;;11341:2257:92;;;;9219:12:97;;:31;:::i;:::-;11341:2257:92;;;;;;;;;9259:7:97;;:::i;:::-;11341:2257:92;;;;9252:15:97;9176:1;;9188:80;;8406:869::o;9010:62::-;8578:11;;-1:-1:-1;8578:11:97;;-1:-1:-1;8578:11:97;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;11341:2257:92;;;;;;;8939:60:97;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;11341:2257:92;;;;;;8759:49:97;11341:2257:92;;;;8753:55:97;11341:2257:92;;;8753:55:97;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;3470:384:30;-1:-1:-1;;;;;;;;;;;1991:1:30;11341:2257:92;;3670:20:30;3666:88;;1991:1;11341:2257:92;;3470:384:30:o;3666:88::-;11341:2257:92;;-1:-1:-1;;;3713:30:30;;;;;3701:308:91;;11341:2257:92;-1:-1:-1;11341:2257:92;3832:13:91;11341:2257:92;;;-1:-1:-1;11341:2257:92;11124:30:97;;;;:::i;:::-;11173;;;-1:-1:-1;11173:30:97;;;;11182:17;;-1:-1:-1;;;;;11341:2257:92;;11182:12:97;;:17;:::i;:::-;11341:2257:92;;;3832:13:91;11341:2257:92;;11173:30:97;3890::91;;;11173::97;3886:117:91;;;;3701:308;;:::o;3886:117::-;3936:56;11341:2257:92;-1:-1:-1;11341:2257:92;3832:13:91;11341:2257:92;;;-1:-1:-1;11341:2257:92;819:34:73;837:15;819:34;:::i;3936:56:91:-;3701:308;;:::o;3890:30::-;3900:20;;-1:-1:-1;3890:30:91;;;;11173::97;;;-1:-1:-1;11173:30:97;;7270:387:23;-1:-1:-1;;;;;11341:2257:92;;-1:-1:-1;11341:2257:92;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;11341:2257:92;;;;-1:-1:-1;11341:2257:92;;;;;;;;;;;-1:-1:-1;;;;;11341:2257:92;;;;;;;;;;-1:-1:-1;;11341:2257:92;7509:4:23;11341:2257:92;;;966:10:28;;-1:-1:-1;;;;;11341:2257:92;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7270:387::-;-1:-1:-1;;;;;11341:2257:92;;-1:-1:-1;11341:2257:92;;;;;;;;;1356:26:87;;-1:-1:-1;;;;;;;;;;;2887:71:23;11341:2257:92;;3901:31:23;11341:2257:92;;;;-1:-1:-1;11341:2257:92;;;;;;;;;;;-1:-1:-1;;;;;11341:2257:92;;;;;;;;;;-1:-1:-1;;11341:2257:92;7509:4:23;11341:2257:92;;;966:10:28;;-1:-1:-1;;;;;11341:2257:92;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;11341:2257:92;;-1:-1:-1;11341:2257:92;;;;;;;;;885:35:91;;-1:-1:-1;;;;;;;;;;;2887:71:23;11341:2257:92;;3901:31:23;11341:2257:92;7270:387:23;-1:-1:-1;11341:2257:92;;;-1:-1:-1;;;;;;;;;;;11341:2257:92;;;;;;;;-1:-1:-1;;;;;11341:2257:92;;;;;;;;;;;;3901:31:23;11341:2257:92;7892:388:23;-1:-1:-1;11341:2257:92;;;-1:-1:-1;;;;;;;;;;;11341:2257:92;;;;;;;;-1:-1:-1;;;;;11341:2257:92;;;;;;;;;;;;;;;;-1:-1:-1;11341:2257:92;;;;;;;;;;;-1:-1:-1;;;;;11341:2257:92;;;;;;;;;;-1:-1:-1;;11341:2257:92;;;966:10:28;;-1:-1:-1;;;;;11341:2257:92;;8155:40:23;-1:-1:-1;;8155:40:23;11341:2257:92;8209:11:23;:::o;10580:184:97:-;11341:2257:92;;10446:8:71;;;:63;-1:-1:-1;10446:63:71;-1:-1:-1;;;;;11341:2257:92;;10726:7:97;11341:2257:92;;10736:12:97;:17;:12;;:17;:::i;10446:63:71:-;11341:2257:92;;;;;;;;;;13267:109:97;-1:-1:-1;13267:109:97;;-1:-1:-1;13267:109:97;;;11341:2257:92;;;10446:63:71;;11341:2257:92;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;11341:2257:92;;;;;;;;:::i;5907:716:87:-;6030:34;5907:716;6030:34;;;;:::i;:::-;11341:2257:92;;-1:-1:-1;;;6080:41:87;;-1:-1:-1;;;;;11341:2257:92;;;6080:41:87;;;11341:2257:92;;;;;6080:41:87;11341:2257:92;;;6090:13:87;11341:2257:92;;6080:41:87;;;;;;;-1:-1:-1;6080:41:87;;;5907:716;6079:42;;6075:90;;6266:27;11341:2257:92;2684:111:30;6210:14:87;11341:2257:92;2684:111:30;;;:::i;:::-;11341:2257:92;;;;;;-1:-1:-1;;;;;11341:2257:92;;-1:-1:-1;11341:2257:92;;;-1:-1:-1;11341:2257:92;;6210:14:87;6266:27;:::i;:::-;6080:41;6311:15;;11341:2257:92;;;;-1:-1:-1;;;;;;11341:2257:92;-1:-1:-1;;;;;11341:2257:92;;;;;;;;;;;-1:-1:-1;;;;;11341:2257:92;;;;6337:143:87;;5907:716;-1:-1:-1;6493:28:87;11341:2257:92;-1:-1:-1;;;;;11341:2257:92;;;;;;;6489:128:87;;5907:716;:::o;6489:128::-;6551:55;;;:::i;:::-;;5907:716::o;6337:143::-;6404:65;;;:::i;:::-;;6337:143;;;6075:90;11341:2257:92;;-1:-1:-1;;;6144:10:87;;6080:41;;6144:10;6080:41;;;;;;;;;;;;;;:::i;:::-;;;;11341:2257:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;7558:604:97:-;;11341:2257:92;;7686:17:97;7682:83;;11341:2257:92;7789:27:97;11341:2257:92;7789:27:97;11341:2257:92;;7789:27:97;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;11341:2257:92;;;;;;;;;;;;;;;;7888:22:97;;;7884:77;;7975:21;-1:-1:-1;7975:84:97;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;11341:2257:92;8075:24:97;:::o;7975:84::-;11341:2257:92;;;8009:16:97;11341:2257:92;;8009:16:97;:::i;:::-;11341:2257:92;;;8001:24:97;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;11341:2257:92;;;;;8029:29:97;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;11341:2257:92;7926:24:97;:::o;7682:83::-;7726:28;;;;:::i;11341:2257:92:-;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;11341:2257:92;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;11341:2257:92;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;2737:699:91:-;;;;;11341:2257:92;;:::i;:::-;;;;2978:16:91;2974:92;;2737:699;-1:-1:-1;;3080:8:91;11341:2257:92;-1:-1:-1;;;;;11341:2257:92;;;;;3080:21:91;3076:85;;-1:-1:-1;11341:2257:92;3218:67:91;;11341:2257:92;;3257:27:91;;3218;;:13;;-1:-1:-1;;;;;11341:2257:92;3218:13:91;11341:2257:92;3218:27:91;3257;;;;11341:2257:92;;;;;;;;;;;3218:67:91;;;3080:8;3218:67;;;:::i;:::-;;;;;;;;;;3192:192;3218:67;-1:-1:-1;3218:67:91;;;2737:699;3341:28;3303:67;3341:28;;11341:2257:92;3341:28:91;;;3303:67;;:::i;:::-;3192:192;3463:5:68;;;;3066;;11341:2257:92;3060:42:68;3371:111;;3192:192:91;3398:21;;2737:699;:::o;3218:67::-;3303;3218;;;;3257:27;3218:67;3257:27;3218:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;3076:85;-1:-1:-1;;3128:21:91;;-1:-1:-1;;3117:33:91:o;2974:92::-;3024:31;;;;;;;;;;;;;:::i;:::-;2974:92;;;;;3442:253;3552:8;11341:2257:92;-1:-1:-1;;;;;11341:2257:92;;;;;;;3552:21:91;3548:60;;3634:27;3552:8;11341:2257:92;-1:-1:-1;11341:2257:92;;;;;;;;;;;3634:27:91;;;;;;;;;-1:-1:-1;3634:27:91;;;3442:253;2193:25;;:34;:25;11341:2257:92;;2193:13:91;11341:2257:92;;;;;;;2193:25:91;:34;:::i;3634:27::-;2193:34;3634:27;;;;2193:25;3634:27;;;;;;;;;;;:::i;:::-;;;;;;14296:213:69;11341:2257:92;14374:24:69;;;;14370:103;;11341:2257:92;14296:213:69;:::o;14370:103::-;11341:2257:92;;;;14421:41:69;;;;;;14452:2;14421:41;;;11341:2257:92;;;;;14421:41:69;10695:389:71;11341:2257:92;;10871:8:71;;;10895:20;;10833:17;10895:20;10833:17;10895:20;10833:17;10895:20;:::o;10867:211::-;11341:2257:92;;;;;;;;;;10833:17:71;13267:109:97;;10833:17:71;13267:109:97;;;11341:2257:92;11014:1:71;11341:2257:92;;;;;;;11030:37:71;:::o;18080:5181:68:-;18246:1;18241:6;;;18237:53;;18246:1;19217:14;-1:-1:-1;;;19278:16:68;;;19274:92;;18080:5181;22827:18;22717;22607;22498;22387;22278;23216:28;19383:15;19898:6;19383:15;-1:-1:-1;;;23237:6:68;19383:15;;;19379:90;;18080:5181;19493:7;19486:15;;;19482:90;;18080:5181;19596:7;19589:15;;;19585:89;;18080:5181;19698:6;19691:14;;;19687:87;;18080:5181;19798:6;19791:14;;;19787:87;;18080:5181;19891:14;;19887:61;;18080:5181;20374:1;11341:2257:92;18246:1:68;11341:2257:92;22284:6:68;;;;:::i;:::-;11341:2257:92;;;;;22278:18:68;22393:6;;;;:::i;22387:18::-;22504:6;;;;:::i;22498:18::-;22613:6;;;;:::i;22607:18::-;22723:6;;;;:::i;22717:18::-;22833:6;;;;:::i;22827:18::-;23237:6;;;:::i;:::-;23232:11;;;11341:2257:92;23216:28:68;11341:2257:92;;18080:5181:68;:::o;19887:61::-;18246:1;11341:2257:92;19887:61:68;;19787:87;11341:2257:92;;;;;19787:87:68;;;19687;11341:2257:92;;;;;19687:87:68;;;19585:89;11341:2257:92;;;;;19585:89:68;;;19482:90;11341:2257:92;;;;;19482:90:68;;;19379;11341:2257:92;;;;;19379:90:68;;;19274:92;-1:-1:-1;;;;11341:2257:92;-1:-1:-1;11341:2257:92;;;;19274:92:68;;12497:447:97;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;3721:5:68;;;;;;11341:2257:92;;3731:5:68;;;11341:2257:92;;;;;;;;;13267:109:97;-1:-1:-1;13267:109:97;11341:2257:92;13267:109:97;;;-1:-1:-1;13267:109:97;;11341:2257:92;;;;;-1:-1:-1;12771:136:97;11341:2257:92;;;12830:10:97;;12771:136;;12687:230;;;;12771:136;11341:2257:92;;;;;;;;;;;12771:136:97;;;6893:76:26;;;:::i;:::-;;;:::i;:::-;1949:1:30;-1:-1:-1;;;;;;;;;;;11341:2257:92;6893:76:26:o;11341:2257:92:-;;;;;;;:::i;:::-;-1:-1:-1;11341:2257:92;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;11341:2257:92;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11341:2257:92;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;4015:918:91:-;11341:2257:92;;:::i;:::-;;4163:30:91;11341:2257:92;;4163:30:91;;;;;;;;;;;:::i;:::-;4208:17;;11341:2257:92;-1:-1:-1;;;;;11341:2257:92;;4208:17:91;11341:2257:92;;4208:54:91;;:103;;4015:918;4204:161;;4418:15;;;;11341:2257:92;;;;-1:-1:-1;;;4380:54:91;;-1:-1:-1;;;;;11341:2257:92;;;4380:54:91;;;;11341:2257:92;;;;4380:54:91;4418:15;;;;11341:2257:92;;;;;;;;4390:17:91;11341:2257:92;4380:54:91;;;;;;;4208:17;4380:54;;;4015:918;4379:55;;4375:106;;4496:9;;4511:33;;;4208:17;4553:3;4511:33;;11341:2257:92;;4507:44:91;;;;;4576:36;;;:50;:36;;:::i;:::-;11341:2257:92;-1:-1:-1;;;;;11341:2257:92;;;4576:50:91;;4572:119;;4709:73;4710:72;4745:36;;:33;;;:36;:::i;:::-;4710:72;:::i;:::-;4709:73;;11341:2257:92;4709:73:91;4705:140;;11341:2257:92;;4496:9:91;;4705:140;11341:2257:92;;-1:-1:-1;;;4809:21:91;;11341:2257:92;;4809:21:91;4572:119;11341:2257:92;;-1:-1:-1;;;4653:23:91;;11341:2257:92;;4653:23:91;4507:44;-1:-1:-1;;11341:2257:92;;4380:54:91;11341:2257:92;;-1:-1:-1;;;;;;11341:2257:92;-1:-1:-1;;;;;11341:2257:92;;;;;;;;;;-1:-1:-1;4865:26:91;;-1:-1:-1;;11341:2257:92;4865:26:91;4909:17;4015:918;:::o;4375:106::-;4418:15;11341:2257:92;-1:-1:-1;;;4457:13:91;;4380:54;;4457:13;4380:54;;;;;;;;;;;;;;:::i;:::-;;;;4204:161;11341:2257:92;;-1:-1:-1;;;4334:20:91;;;;;4208:103;4266:33;;;;;11341:2257:92;4266:45:91;4208:103;;6999:207:97;;11341:2257:92;;9737:15:71;-1:-1:-1;9762:18:71;9795:7;9801:1;9795:7;;9791:234;;6999:207:97;10049:53:71;;;;;:::i;:::-;10120:8;;;:63;-1:-1:-1;10120:63:71;;-1:-1:-1;;;;;11341:2257:92;;7168:7:97;11341:2257:92;;;7178:12:97;;:17;:12;;:17;:::i;10120:63:71:-;10135:41;10168:7;10135:48;10168:7;;:::i;:::-;10135:41;13267:109:97;;;;;;13089:293;;10135:41:71;11341:2257:92;;;;;10135:48:71;10120:63;;;9791:234;9838:14;;;;;:::i;:::-;11341:2257:92;;;;;;;10049:53:71;13267:109:97;;-1:-1:-1;13267:109:97;11341:2257:92;13267:109:97;;;-1:-1:-1;13267:109:97;;11341:2257:92;;;;;9870:48:71;9866:149;11341:2257:92;;;9938:10:71;9866:149;9791:234;;9866:149;9993:7;;;;;;:::i;:::-;9866:149;9791:234;;11341:2257:92;;;;;;;:::i;:::-;-1:-1:-1;11341:2257:92;;;;;;;:::o;11486:272:97:-;;11341:2257:92;11452:22:71;11718:31:97;11486:272;11341:2257:92;;:::i;:::-;;;;:::i;:::-;;11452:22:71;;:::i;:::-;11341:2257:92;;:::i;:::-;;11718:12:97;11341:2257:92;;;;;11731:17:97;11341:2257:92;;;;;11731:17:97;;11341:2257:92;;11718:12:97;;:31;:::i;:::-;11341:2257:92;;;;;;;;;:::i;:::-;;;;;;11731:17:97;11672:79;;11341:2257:92;11486:272:97;:::o;11341:2257:92:-;;;-1:-1:-1;;;11341:2257:92;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;11341:2257:92;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11657:922:71;11341:2257:92;;11657:922:71;;;11864:7;;;;11936;11916:28;11936:7;;:::i;:::-;11916:28;13267:109:97;;;;;;13089:293;;11916:28:71;11341:2257:92;;;;;;;;;;;;12103:13:71;;;12099:89;;12251:14;;;;;12285:19;;;;11341:2257:92;;;;;;;;;;;;;;;;;12285:19:71;11341:2257:92;;12423:25:71;;:::o;12247:163::-;11341:2257:92;;;12343:52:71;11341:2257:92;12353:41:71;11341:2257:92;;:::i;:::-;;;;;;;;12353:41:71;-1:-1:-1;;;;;11341:2257:92;;12353:41:71;;;11341:2257:92;12343:52:71;:::i;:::-;12247:163;;12099:89;11341:2257:92;;-1:-1:-1;;;12143:30:71;;;;;11860:713;11341:2257:92;;12479:52:71;11341:2257:92;12489:41:71;11341:2257:92;;:::i;12489:41:71:-;-1:-1:-1;;;;;11341:2257:92;;12489:41:71;;;11341:2257:92;12343:52:71;:::i;12479:::-;11870:1;12545:17;;:::o;7084:141:26:-;11341:2257:92;-1:-1:-1;;;;;;;;;;;11341:2257:92;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;11341:2257:92;;-1:-1:-1;;;7191:17:26;;;;","linkReferences":{},"immutableReferences":{"59800":[{"start":1956,"length":32}],"59803":[{"start":3948,"length":32}],"60754":[{"start":1429,"length":32},{"start":4005,"length":32}],"60757":[{"start":959,"length":32},{"start":8857,"length":32}],"60760":[{"start":1027,"length":32},{"start":6514,"length":32},{"start":6817,"length":32}],"60763":[{"start":1299,"length":32},{"start":6361,"length":32},{"start":6943,"length":32}],"62679":[{"start":3534,"length":32},{"start":11007,"length":32}],"63947":[{"start":3369,"length":32},{"start":5274,"length":32}],"63949":[{"start":2830,"length":32},{"start":5435,"length":32}],"63951":[{"start":3696,"length":32}],"64360":[{"start":1164,"length":32}]}},"methodIdentifiers":{"BASE_DELEGATOR_HINTS()":"79d89614","DEFAULT_ADMIN_ROLE()":"a217fddf","FACTORY()":"2dd31000","HOOK_GAS_LIMIT()":"ff54740f","HOOK_RESERVE()":"557cab44","HOOK_SET_ROLE()":"6679191e","NETWORK_LIMIT_SET_ROLE()":"7d24bb27","NETWORK_REGISTRY()":"c0cd7c3e","OPERATOR_NETWORK_OPT_IN_SERVICE()":"1a80e500","OPERATOR_REGISTRY()":"83ce0322","OPERATOR_VAULT_OPT_IN_SERVICE()":"128e5d82","OPT_IN_SERVICE_HINTS()":"9b656b22","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VAULT_HINTS()":"45e78fcb","VERSION()":"ffa1ad74","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hook()":"7f5a7c7b","initialize(bytes)":"439fab91","maxNetworkLimit(bytes32)":"d15b740e","networkLimit(bytes32)":"3eb22c0f","networkLimitAt(bytes32,uint48,bytes)":"5d32a1c9","networkLimitHint(address,bytes32,uint48)":"da749d2b","networkLimitHintInternal(bytes32,uint48)":"197aa7ea","onSlash(bytes32,address,uint256,uint48,bytes)":"e49561ee","operator()":"570ca735","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setHook(address)":"3dfd3873","setMaxNetworkLimit(uint96,uint256)":"23f752d5","setNetworkLimit(bytes32,uint256)":"02145348","stake(bytes32,address)":"fd4d447c","stakeAt(bytes32,address,uint48,bytes)":"e02f6937","stakeHints(address,bytes32,address,uint48)":"25dc9708","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseDelegatorHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultHints\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"optInServiceHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateRoleHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExceedsMaxNetworkLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientHookGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoleHolders\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressRoleHolder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"SetHook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetMaxNetworkLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SetNetworkLimit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HOOK_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_NETWORK_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_VAULT_OPT_IN_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPT_IN_SERVICE_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hook\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"maxNetworkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"}],\"name\":\"networkLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"networkLimitAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"networkLimitHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook_\",\"type\":\"address\"}],\"name\":\"setHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMaxNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setNetworkLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"stakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"stakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(bytes32,address,uint256,uint48)\":{\"params\":{\"amount\":\"amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetHook(address)\":{\"params\":{\"hook\":\"address of the hook\"}},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new maximum subnetwork's limit (how much stake the subnetwork is ready to get)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"SetNetworkLimit(bytes32,uint256)\":{\"params\":{\"amount\":\"new subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}}},\"kind\":\"dev\",\"methods\":{\"VERSION()\":{\"details\":\"Must return 1 for this one.\",\"returns\":{\"_0\":\"version of the delegator\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"networkLimit(bytes32)\":{\"params\":{\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"limit of the subnetwork\"}},\"networkLimitAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the subnetwork limit at\"},\"returns\":{\"_0\":\"limit of the subnetwork at the given timestamp\"}},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only the vault's slasher can call this function.\",\"params\":{\"amount\":\"amount of the collateral slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"data\":\"some additional data\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setHook(address)\":{\"details\":\"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.\",\"params\":{\"hook\":\"address of the hook\"}},\"setMaxNetworkLimit(uint96,uint256)\":{\"details\":\"Only a network can call this function.\",\"params\":{\"amount\":\"new maximum subnetwork's limit\"}},\"setNetworkLimit(bytes32,uint256)\":{\"details\":\"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"amount\":\"new limit of the subnetwork\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"stake(bytes32,address)\":{\"details\":\"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.\",\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"slashable stake until the end of the next epoch\"}},\"stakeAt(bytes32,address,uint48,bytes)\":{\"details\":\"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.\",\"params\":{\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to capture the stake at\"},\"returns\":{\"_0\":\"slashable stake at the given timestamp until the end of the consequent epoch\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"events\":{\"OnSlash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetHook(address)\":{\"notice\":\"Emitted when a hook is set.\"},\"SetMaxNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's maximum limit is set.\"},\"SetNetworkLimit(bytes32,uint256)\":{\"notice\":\"Emitted when a subnetwork's limit is set.\"}},\"kind\":\"user\",\"methods\":{\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"HOOK_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the hook.\"},\"HOOK_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the hook's execution.\"},\"HOOK_SET_ROLE()\":{\"notice\":\"Get a hook setter's role.\"},\"NETWORK_LIMIT_SET_ROLE()\":{\"notice\":\"Get a subnetwork limit setter's role.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"OPERATOR_NETWORK_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-network opt-in service's address.\"},\"OPERATOR_REGISTRY()\":{\"notice\":\"Get the operator registry's address.\"},\"OPERATOR_VAULT_OPT_IN_SERVICE()\":{\"notice\":\"Get the operator-vault opt-in service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"VERSION()\":{\"notice\":\"Get a version of the delegator (different versions mean different interfaces).\"},\"hook()\":{\"notice\":\"Get the hook's address.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"maxNetworkLimit(bytes32)\":{\"notice\":\"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake).\"},\"networkLimit(bytes32)\":{\"notice\":\"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"networkLimitAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork).\"},\"onSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Called when a slash happens.\"},\"operator()\":{\"notice\":\"Get an operator managing the vault's funds.\"},\"setHook(address)\":{\"notice\":\"Set a new hook.\"},\"setMaxNetworkLimit(uint96,uint256)\":{\"notice\":\"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork\"},\"setNetworkLimit(bytes32,uint256)\":{\"notice\":\"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork).\"},\"stake(bytes32,address)\":{\"notice\":\"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork).\"},\"stakeAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/DelegatorHints.sol\":\"OperatorSpecificDelegatorHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf\",\"dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x4aaaf1c0737dd16e81f0d2b9833c549747a5ede6873bf1444bc72aa572d03e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eada27d7668eebaea16c3b890aa1b38ffc53965292e26c96f7c44834623f4710\",\"dweb:/ipfs/QmVSWuLtxyCqNbLyY89ptxkvsk4CLLKDQYigEne5Qj8k1L\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a\",\"dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c\",\"dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e\",\"dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0xbdc3bb48ccedb818cd75a6d74a16df55a822e9f6d3cc54c59f576f10aab67b5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2284f25f2478f419d7781573b17a89d0e7c5589a865d55e2d6ed5163aee23aa8\",\"dweb:/ipfs/QmNsr2625APBQiNKpYnX5VcSnYgfUHR9Uzzp9pRXjoDqK7\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44\",\"dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x303ad40a3de8fa808cc30a6fbd5998633f6a89b982e6db1fa981e0566ab445e7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fa8fb92995ead02798e013190b87b84b44cc68668262f045c9b0b4783940e2bf\",\"dweb:/ipfs/QmV1uKGVLKwWisc714R8fCt71gXUQJpaKvdc6LQ8WtvMpL\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0xd71e9102e99a25ee8b5435779f011a24558f56074aa2b16c18b623b57754ae97\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://29db5552e55dab51bea1ae40ba00ca674cb50fcb10997999a72a94527b6eb591\",\"dweb:/ipfs/QmQrYyTPx73ubNxMhYWJCkprCVFVtuTFcKaabYiKTe71tY\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x7ee6dbf060c45d6eba95315f4ac0b3b467dd9c4999b84c31d6f66d4d8b53a116\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://301948b8ea522db292aa2722ba42def3911dae95f0b376f7023c3fef470f8676\",\"dweb:/ipfs/QmSDbP2HdzhDAzstr8Zz5isEAcSkma8ABc5UwPsoazaumZ\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseDelegatorHints","type":"address"},{"internalType":"address","name":"vaultHints","type":"address"},{"internalType":"address","name":"optInServiceHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DuplicateRoleHolder"},{"inputs":[],"type":"error","name":"ExceedsMaxNetworkLimit"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientHookGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"MissingRoleHolders"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotOperator"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"ZeroAddressRoleHolder"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"hook","type":"address","indexed":true}],"type":"event","name":"SetHook","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetMaxNetworkLimit","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"SetNetworkLimit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HOOK_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_NETWORK_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_VAULT_OPT_IN_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OPT_IN_SERVICE_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"VERSION","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hook","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"maxNetworkLimit","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"}],"stateMutability":"view","type":"function","name":"networkLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"networkLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"networkLimitHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"hook_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setHook"},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setNetworkLimit"},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"stakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"stakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"VERSION()":{"details":"Must return 1 for this one.","returns":{"_0":"version of the delegator"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(bytes)":{"params":{"data":"some data to use"}},"networkLimit(bytes32)":{"params":{"subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"limit of the subnetwork"}},"networkLimitAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the subnetwork limit at"},"returns":{"_0":"limit of the subnetwork at the given timestamp"}},"onSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only the vault's slasher can call this function.","params":{"amount":"amount of the collateral slashed","captureTimestamp":"time point when the stake was captured","data":"some additional data","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setHook(address)":{"details":"Only a HOOK_SET_ROLE holder can call this function. The hook can have arbitrary logic under certain functions, however, it doesn't affect the stake guarantees.","params":{"hook":"address of the hook"}},"setMaxNetworkLimit(uint96,uint256)":{"details":"Only a network can call this function.","params":{"amount":"new maximum subnetwork's limit"}},"setNetworkLimit(bytes32,uint256)":{"details":"Only a NETWORK_LIMIT_SET_ROLE holder can call this function.","params":{"amount":"new limit of the subnetwork","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"}},"stake(bytes32,address)":{"details":"Warning: this function is not safe to use for stake capturing, as it can change by the end of the block.","params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"slashable stake until the end of the next epoch"}},"stakeAt(bytes32,address,uint48,bytes)":{"details":"Warning: it is not safe to use timestamp >= current one for the stake capturing, as it can change later.","params":{"hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to capture the stake at"},"returns":{"_0":"slashable stake at the given timestamp until the end of the consequent epoch"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"FACTORY()":{"notice":"Get the factory's address."},"HOOK_GAS_LIMIT()":{"notice":"Get a gas limit for the hook."},"HOOK_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the hook's execution."},"HOOK_SET_ROLE()":{"notice":"Get a hook setter's role."},"NETWORK_LIMIT_SET_ROLE()":{"notice":"Get a subnetwork limit setter's role."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"OPERATOR_NETWORK_OPT_IN_SERVICE()":{"notice":"Get the operator-network opt-in service's address."},"OPERATOR_REGISTRY()":{"notice":"Get the operator registry's address."},"OPERATOR_VAULT_OPT_IN_SERVICE()":{"notice":"Get the operator-vault opt-in service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"VERSION()":{"notice":"Get a version of the delegator (different versions mean different interfaces)."},"hook()":{"notice":"Get the hook's address."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"maxNetworkLimit(bytes32)":{"notice":"Get a particular subnetwork's maximum limit (meaning the subnetwork is not ready to get more as a stake)."},"networkLimit(bytes32)":{"notice":"Get a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"networkLimitAt(bytes32,uint48,bytes)":{"notice":"Get a subnetwork's limit at a given timestamp using a hint (how much stake the vault curator is ready to give to the subnetwork)."},"onSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Called when a slash happens."},"operator()":{"notice":"Get an operator managing the vault's funds."},"setHook(address)":{"notice":"Set a new hook."},"setMaxNetworkLimit(uint96,uint256)":{"notice":"Set a maximum limit for a subnetwork (how much stake the subnetwork is ready to get). identifier identifier of the subnetwork"},"setNetworkLimit(bytes32,uint256)":{"notice":"Set a subnetwork's limit (how much stake the vault curator is ready to give to the subnetwork)."},"stake(bytes32,address)":{"notice":"Get a stake that a given subnetwork will be able to slash for a certain operator until the end of the next epoch (if no cross-slashing and no slashings by the subnetwork)."},"stakeAt(bytes32,address,uint48,bytes)":{"notice":"Get a stake that a given subnetwork could be able to slash for a certain operator at a given timestamp until the end of the consequent epoch using hints (if no cross-slashing and no slashings by the subnetwork)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/DelegatorHints.sol":"OperatorSpecificDelegatorHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866","urls":["bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf","dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab","urls":["bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89","dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606","urls":["bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1","dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x4aaaf1c0737dd16e81f0d2b9833c549747a5ede6873bf1444bc72aa572d03e98","urls":["bzz-raw://eada27d7668eebaea16c3b890aa1b38ffc53965292e26c96f7c44834623f4710","dweb:/ipfs/QmVSWuLtxyCqNbLyY89ptxkvsk4CLLKDQYigEne5Qj8k1L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol":{"keccak256":"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549","urls":["bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a","dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed","urls":["bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0","dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d","urls":["bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c","dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575","urls":["bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e","dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0xbdc3bb48ccedb818cd75a6d74a16df55a822e9f6d3cc54c59f576f10aab67b5f","urls":["bzz-raw://2284f25f2478f419d7781573b17a89d0e7c5589a865d55e2d6ed5163aee23aa8","dweb:/ipfs/QmNsr2625APBQiNKpYnX5VcSnYgfUHR9Uzzp9pRXjoDqK7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f","urls":["bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44","dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x303ad40a3de8fa808cc30a6fbd5998633f6a89b982e6db1fa981e0566ab445e7","urls":["bzz-raw://fa8fb92995ead02798e013190b87b84b44cc68668262f045c9b0b4783940e2bf","dweb:/ipfs/QmV1uKGVLKwWisc714R8fCt71gXUQJpaKvdc6LQ8WtvMpL"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0xd71e9102e99a25ee8b5435779f011a24558f56074aa2b16c18b623b57754ae97","urls":["bzz-raw://29db5552e55dab51bea1ae40ba00ca674cb50fcb10997999a72a94527b6eb591","dweb:/ipfs/QmQrYyTPx73ubNxMhYWJCkprCVFVtuTFcKaabYiKTe71tY"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x7ee6dbf060c45d6eba95315f4ac0b3b467dd9c4999b84c31d6f66d4d8b53a116","urls":["bzz-raw://301948b8ea522db292aa2722ba42def3911dae95f0b376f7023c3fef470f8676","dweb:/ipfs/QmSDbP2HdzhDAzstr8Zz5isEAcSkma8ABc5UwPsoazaumZ"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":92} \ No newline at end of file diff --git a/out/SlasherHints.sol/BaseSlasherHints.json b/out/SlasherHints.sol/BaseSlasherHints.json index ddb670fc..c9b58745 100644 --- a/out/SlasherHints.sol/BaseSlasherHints.json +++ b/out/SlasherHints.sol/BaseSlasherHints.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"baseDelegatorHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"BURNER_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BURNER_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VETO_SLASHER_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashHint","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isBurnerHook","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestSlashedCaptureTimestamp","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"slashableStake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slashableStakeHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientBurnerGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NoBurner","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetworkMiddleware","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x610180346101e757601f61728b38819003918201601f19168301926001600160401b03929091838511838610176101825781602092849260409788528339810103126101e75751906001600160a01b039081831683036101e757306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460ff81871c166101d65780838080931603610196575b5050505f60a0525f60c0525f60e052610100935f855261012093845280516120108082019082821085831117610182576020918391611b7983393081520301905ff09182156101785783610140931683528151906137028083019183831090831117610182576020918391613b8983393081520301905ff09283156101785761016093168352519261198d94856101ec8639608051856105f5015260a051856102cb015260c05185610904015260e0518581816101690152610e7f015251846102870152518381816106960152610c2a015251826105570152518161059b0152f35b50513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03191617905583518181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8181610096565b855163f92ee8a960e01b8152600490fd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c8063103f2907146101545780631a2be2c41461014f578063267de1f31461014a5780632964f8dc146101455780632c9d45b3146101405780632dd310001461013b57806334d098ea14610136578063439fab91146101315780634a7196551461012c5780634ea2e926146101275780634eb5a242146101225780636565b7db1461011d578063770280461461011857806379d89614146101135780639f86fd851461010e578063aa8e648914610109578063aab3595f14610104578063bb24fe8a146100ff578063d5c24e1a146100fa5763fbfa77cf146100f5575f80fd5b610945565b610928565b6108e5565b6108c0565b610882565b6106c5565b610681565b6105ca565b610586565b610542565b610525565b6104f0565b61034b565b6102fa565b6102b6565b610272565b610256565b610201565b6101ad565b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b6001600160a01b0381160361019857565b346101985760403660031901126101985760206101f96101f46024356101d28161019c565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b610da5565b604051908152f35b3461019857604036600319011261019857602065ffffffffffff61024c60243561022a8161019c565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b34610198575f366003190112610198576020604051614e208152f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f36600319011261019857602060ff5f5460a01c166040519015158152f35b9181601f84011215610198578235916001600160401b038311610198576020838186019501011161019857565b34610198576020366003190112610198576001600160401b036004358181116101985761037c90369060040161031e565b5f80516020611938833981519152549260ff8460401c161593168015908161047b575b6001149081610471575b159081610468575b50610456575f80516020611938833981519152805467ffffffffffffffff191660011790556103e4918361043257610e47565b6103ea57005b5f80516020611938833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611938833981519152805460ff60401b1916600160401b179055610e47565b60405163f92ee8a960e01b8152600490fd5b9050155f6103b1565b303b1591506103a9565b84915061039f565b65ffffffffffff81160361019857565b6080906003190112610198576004356104ab8161019c565b90602435906044356104bc8161019c565b906064356104c981610483565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346101985761052161050d61050436610493565b929190916109ab565b6040519182916020835260208301906104cc565b0390f35b346101985761052161050d61053936610493565b92919091610b76565b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198576060366003190112610198576024356105e78161019c565b6044356105f381610483565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361066f5761064d610652926004355f52600260205260405f209060018060a01b03165f5260205260405f2090565b611045565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198576040366003190112610198576004356106e28161019c565b6024356001600160401b038111610198575f916107048392369060040161031e565b90816040519283928337810184815203915af4610751610722610d21565b916107436040519384921515602084015260408084015260608301906104cc565b03601f1981018352826107a8565b805190602001fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761078857604052565b610759565b60a081019081106001600160401b0382111761078857604052565b90601f801991011681019081106001600160401b0382111761078857604052565b604051906107d68261076d565b565b6001600160401b03811161078857601f01601f191660200190565b81601f820112156101985780359061080a826107d8565b9261081860405194856107a8565b8284526020838301011161019857815f926020809301838601378301015290565b90608060031983011261019857600435916024356108568161019c565b9160443561086381610483565b91606435906001600160401b038211610198576104c9916004016107f3565b346101985760206101f96108bb61089836610839565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b611173565b346101985760206108dc6108d336610839565b92919091611342565b50604051908152f35b34610198575f3660031901126101985760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610198575f366003190112610198576020604051620249f08152f35b34610198575f366003190112610198575f546040516001600160a01b039091168152602090f35b5190811515820361019857565b519063ffffffff8216820361019857565b9190826040910312610198576104c960206109a48461096c565b9301610979565b5f809195949593929365ffffffffffff60609760405195602097633b81402360e11b89890152602488015260018060a01b03166044870152166064850152606484526109f68461078d565b6040519384610a2387820192639f86fd8560e01b84523060248401526040604484015260648301906104cc565b0394610a37601f19968781018352826107a8565b51915afa50610a55610a47610d21565b838082518301019101610fb0565b9015610aa857808380610a6d9351830101910161098a565b9290610a7857505050565b6104c992939450610a9c604051948592830191909163ffffffff6020820193169052565b039081018352826107a8565b809150519182156101985701fd5b9081602091031261019857516104c98161019c565b6040513d5f823e3d90fd5b81601f8201121561019857805190610aed826107d8565b92610afb60405194856107a8565b8284526020838301011161019857815f9260208093018386015e8301015290565b906020828203126101985781516001600160401b038111610198576104c99201610ad6565b906104c991602081526020610b61835160408385015260608401906104cc565b920151906040601f19828503019101526104cc565b60405163fbfa77cf60e01b815260609594919391926020926001600160a01b03929091908481600481878b165afa908115610cd257849186915f91610d04575b50600460405180948193630ce9b79360e41b8352165afa8015610cd25786948385925f948591610cd7575b506040516304bb92e160e31b81526001600160a01b039182166004820152602481019290925292909216604483015265ffffffffffff97909716606482015295869060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa948515610cd2575f95610caa575b50610c669394956109ab565b825115801590610ca0575b610c7a57505050565b6104c992939450610c896107c9565b938452818401526107436040519384928301610b41565b5080511515610c71565b610c66949550610ccb903d805f833e610cc381836107a8565b810190610b1c565b9493610c5a565b610acb565b610cf79150893d8b11610cfd575b610cef81836107a8565b810190610ab6565b5f610be1565b503d610ce5565b610d1b9150823d8411610cfd57610cef81836107a8565b5f610bb6565b3d15610d4b573d90610d32826107d8565b91610d4060405193846107a8565b82523d5f602084013e565b606090565b5f9081526002602090815260408083206001600160a01b039094168352929052206104c9929190611173565b8054821015610d91575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b805480610dda57505f5b6001600160d01b03811615610dd4576001610dca9201610d7c565b90549060031b1c90565b50505f90565b5f19908082810111610df857825f5260205f2001015460301c610daf565b610fe4565b919091604081840312610198578035610e158161019c565b9260208201356001600160401b038111610198576104c992016107f3565b90816020910312610198576104c99061096c565b610e5391810190610dfd565b506040516302910f8b60e31b81526001600160a01b0391821660048201819052919060209081816024817f000000000000000000000000000000000000000000000000000000000000000087165afa908115610cd2575f91610f83575b5015610f7157610ebe61159c565b5f80546001600160a01b0319166001600160a01b038516179055600481610ee36115d2565b94604051928380926313c085b760e11b82525afa918215610cd2575f92610f54575b5050161580610f4a575b610f3857516107d69015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b5080511515610f0f565b610f6a9250803d10610cfd57610cef81836107a8565b5f80610f05565b6040516362df054560e01b8152600490fd5b610fa39150823d8411610fa9575b610f9b81836107a8565b810190610e33565b5f610eb0565b503d610f91565b91909160408184031261019857610fc68161096c565b9260208201516001600160401b038111610198576104c99201610ad6565b634e487b7160e01b5f52601160045260245ffd5b5f19810191908211610df857565b91908203918211610df857565b9060018201809211610df857565b9060405161102e8161076d565b915465ffffffffffff8116835260301c6020830152565b91908254905f8291600584116110e3575b61106193508561173d565b9081156110d7576110d06110c76110c1610dca61109361108e61108388610ff8565b895f5260205f200190565b611021565b9660016110ba60206110ab8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101610d7c565b93610ff8565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926110ee81611612565b8103908111610df85761106193865f526111226111178360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff85161015611138575091611056565b92915061114490611013565b90611056565b90816020910312610198576104c990610979565b90600163ffffffff80931601918211610df857565b91805115611241578060208061118e9351830101910161114a565b91611199838261186f565b926111aa845165ffffffffffff1690565b9065ffffffffffff808516921682811461123557821191826111e0575b50506111d7576104c9925061179f565b50506020015190565b9091506111ed8354610ff8565b63ffffffff831614918215611206575b50505f806111c7565b61122d91925061122161121b6111179261115e565b8561186f565b5165ffffffffffff1690565b115f806111fd565b50505050506020015190565b506104c99161179f565b604051906112588261076d565b60606020838281520152565b906020828203126101985781516001600160401b0392838211610198570190604082820312610198576040519261129a8461076d565b825181811161019857826112af918501610ad6565b84526020830151908111610198576112c79201610ad6565b602082015290565b9081602091031261019857516104c981610483565b65ffffffffffff9182169082160391908211610df857565b90816020910312610198575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526104c9929101906104cc565b9261134b61124b565b90805180611582575b505061135f42611905565b5f5490949061138490611378906001600160a01b031681565b6001600160a01b031690565b93604051956327f843b560e11b875260209687816004818a5afa8015610cd2576113b992611117925f92611553575b506112e4565b65ffffffffffff821690811090811561153c575b811561150b575b506114ff578560049560405196878092630ce9b79360e41b82525afa948515610cd2576114269587915f916114e2575b50845190604051808099819463e02f693760e01b8352878b8a6004860161130b565b03916001600160a01b03165afa938415610cd25761149e955f956114a1575b509261148d85936114939361148d96869a6114846101f48361146f875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610d50565b90611006565b818082109118021890565b91565b61149392955061148d9491936114cf61148d928a3d8c116114db575b6114c781836107a8565b8101906112fc565b96935093919450611445565b503d6114bd565b6114f99150823d8411610cfd57610cef81836107a8565b5f611404565b5050505050505f905f90565b90506115356111176115298761146f875f52600160205260405f2090565b5465ffffffffffff1690565b115f6113d4565b905061154a61111742611905565b811015906113cd565b6115749192508a3d8c1161157b575b61156c81836107a8565b8101906112cf565b905f6113b3565b503d611562565b6115959250602080918301019101611264565b5f80611354565b6115a46118d7565b6115ac6118d7565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b60405190602082018281106001600160401b03821117610788576040525f8252565b81156115fe570490565b634e487b7160e01b5f52601260045260245ffd5b60018111156104c957600181600160801b81101561172b575b6116d36116c96116bf6116b56116ab6116a16116df97600488600160401b6116da9a101561171e575b640100000000811015611711575b62010000811015611704575b6101008110156116f8575b60108110156116ec575b10156116e4575b60030260011c61169a818b6115f4565b0160011c90565b61169a818a6115f4565b61169a81896115f4565b61169a81886115f4565b61169a81876115f4565b61169a81866115f4565b80936115f4565b821190565b900390565b60011b61168a565b811c9160021b91611683565b60081c91811b91611679565b60101c9160081b9161166e565b60201c9160101b91611662565b60401c9160201b91611654565b50600160401b9050608082901c61162b565b91905b83821061174d5750505090565b909192808316906001818518811c8301809311610df857855f5265ffffffffffff808460205f20015416908516105f1461178c575050925b9190611740565b909493508101809111610df85791611785565b908154905f829160058411611809575b6117ba93508461173d565b806117e257505f905b6001600160d01b03821615610dd4576104c9916001610dca9201610d7c565b6117fc6117f161180392610ff8565b835f5260205f200190565b5460301c90565b906117c3565b919261181481611612565b8103908111610df8576117ba93855f5265ffffffffffff808360205f20015416908516105f146118455750916117af565b92915061185190611013565b906117af565b604051906118648261076d565b5f6020838281520152565b906118986118926118b992611882611857565b5061188b611857565b5084610d7c565b50611021565b91600165ffffffffffff845116936020828060d01b03910151169101610d7c565b905490604051926118c98461076d565b835260031b1c602082015290565b60ff5f805160206119388339815191525460401c16156118f357565b604051631afcd79f60e31b8152600490fd5b65ffffffffffff90818111611918571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fdfef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212201d26a2883a443bc510e63e9a6e283bd471aa3bdd4e14bd92d2e4d814a7e2509a64736f6c634300081900336101403461015d576001600160401b0390601f61201038819003918201601f1916830191848311848410176101615780849260209460405283398101031261015d5751906001600160a01b038216820361015d57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c1661014b578080831603610106575b835f60a0525f60c0525f60e052610100905f825261012090815260405190611e9a9283610176843960805183505060a051836104f2015260c0518381816109490152611373015260e05183818161031d01526116a301525182818161021c01526104ae0152518181816106920152610d390152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8080610091565b60405163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c8063021a815614610124578063103f29071461011f5780631a2be2c41461011a578063238ab85f14610115578063267de1f3146101105780632964f8dc1461010b5780632c9d45b3146101065780632dd310001461010157806334d098ea146100fc578063439fab91146100f7578063457821b7146100f25780639f86fd85146100ed578063aa8e6489146100e8578063aab3595f146100e3578063bb24fe8a146100de578063d5c24e1a146100d95763fbfa77cf146100d4575f80fd5b61098a565b61096d565b61092a565b610905565b6108c7565b6106c1565b61067d565b610545565b610521565b6104dd565b610499565b61047d565b610428565b6103c4565b61034c565b610308565b61017b565b6001600160a01b0381160361013a57565b5f80fd5b65ffffffffffff81160361013a57565b9181601f8401121561013a578235916001600160401b03831161013a576020838186019501011161013a57565b3461013a5760a036600319011261013a5760043560243561019b81610129565b6064356101a78161013e565b6084356001600160401b03811161013a576101c690369060040161014e565b917f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0060028154146102ec5760029055604051635daf681960e11b8152606086901c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa9182156102e7575f926102b6575b50339116036102a4576102a0946102679460443591610a63565b61029060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6040519081529081906020820190565b0390f35b60405163227bf64d60e01b8152600490fd5b6102d991925060203d6020116102e0575b6102d181836107dd565b810190610de5565b905f61024d565b503d6102c7565b610a27565b604051633ee5aeb560e01b8152600490fd5b5f91031261013a57565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a57604036600319011261013a57602061039861039360243561037181610129565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6115c2565b604051908152f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461013a5760c036600319011261013a576102a06104146004356103e781610129565b6103f2602435610129565b6064356103fe81610129565b60a4359161040b8361013e565b60443590610ced565b6040519182916020835260208301906103a0565b3461013a57604036600319011261013a57602065ffffffffffff61047360243561045181610129565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b3461013a575f36600319011261013a576020604051614e208152f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a57602060ff5f5460a01c166040519015158152f35b3461013a57602036600319011261013a576001600160401b0360043581811161013a5761057690369060040161014e565b5f80516020611e45833981519152549260ff8460401c1615931680159081610675575b600114908161066b575b159081610662575b50610650575f80516020611e45833981519152805467ffffffffffffffff191660011790556105de918361062c5761166c565b6105e457005b5f80516020611e45833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611e45833981519152805460ff60401b1916600160401b17905561166c565b60405163f92ee8a960e01b8152600490fd5b9050155f6105ab565b303b1591506105a3565b849150610599565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a5760408060031936011261013a576004356106df81610129565b602435906001600160401b03821161013a575f809161070561076994369060040161014e565b908187519283928337810184815203915af43d156107715761075b3d61072a8161081a565b90610737865192836107dd565b81523d5f602083013e5b8451948593151560208501528084015260608301906103a0565b03601f1981018352826107dd565b805190602001fd5b61075b6060610741565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176107aa57604052565b61077b565b604081019081106001600160401b038211176107aa57604052565b6001600160401b0381116107aa57604052565b90601f801991011681019081106001600160401b038211176107aa57604052565b6040519061080b826107af565b565b6040519061080b8261078f565b6001600160401b0381116107aa57601f01601f191660200190565b81601f8201121561013a5780359061084c8261081a565b9261085a60405194856107dd565b8284526020838301011161013a57815f926020809301838601378301015290565b90608060031983011261013a576004359160243561089881610129565b916044356108a58161013e565b91606435906001600160401b03821161013a576108c491600401610835565b90565b3461013a5760206103986109006108dd3661087b565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b611806565b3461013a5760206109216109183661087b565b92919091610edf565b50604051908152f35b3461013a575f36600319011261013a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461013a575f36600319011261013a576020604051620249f08152f35b3461013a575f36600319011261013a575f546040516001600160a01b039091168152602090f35b604051906109be8261078f565b60608252565b9060208282031261013a5781356001600160401b039283821161013a57019060208282031261013a57604051926109fa8461078f565b823590811161013a57610a0d9201610835565b815290565b9081602091031261013a57516108c48161013e565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9182169082160391908211610a5e57565b610a32565b92939594919095610a726109b1565b9280610c53575b5050610a84426118de565b5f54600490602090610aac90610aa0906001600160a01b031681565b6001600160a01b031690565b6040516327f843b560e11b815292839182905afa80156102e757610ae692610adb925f92610c22575b50610a46565b65ffffffffffff1690565b65ffffffffffff8516908110908115610c0c575b50610bfa57610b0f610b1e9251858886610edf565b92909180831890831102821890565b958615610be857610ba361075b610b9a610be3947fe0cbbe1f1e6fd806ca87036fafcebaf7ab5247474a3b20e1c37bb50122c3a88496610b5f8a878b611115565b610b6a8c878b6111a3565b610b726107fe565b9182526020820152604051928391602083019190916020806040830194805184520151910152565b8689848861130f565b610bad8588611418565b610bb98588838761149d565b6040805188815265ffffffffffff90961660208701526001600160a01b0390911694918291820190565b0390a3565b60405163167f871760e31b8152600490fd5b604051631357ac9160e11b8152600490fd5b9050610c1a610adb426118de565b11155f610afa565b610c4591925060203d602011610c4c575b610c3d81836107dd565b810190610a12565b905f610ad5565b503d610c33565b610c619293508101906109c4565b905f80610a79565b81601f8201121561013a57805190610c808261081a565b92610c8e60405194856107dd565b8284526020838301011161013a57815f9260208093018386015e8301015290565b9060208282031261013a5781516001600160401b03811161013a576108c49201610c69565b60406108c49260208352519160208082015201906103a0565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252918216604482015265ffffffffffff909216606483015260609291905f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156102e7575f91610d97575b508051610d735750565b61075b9192506108c490610d8561080d565b90815260405192839160208301610cd4565b610db391503d805f833e610dab81836107dd565b810190610caf565b5f610d69565b5f9081526002602090815260408083206001600160a01b039094168352929052206108c4929190611806565b9081602091031261013a57516108c481610129565b60405190610e07826107af565b60606020838281520152565b9060208282031261013a5781516001600160401b039283821161013a57019060408282031261013a5760405192610e49846107af565b825181811161013a5782610e5e918501610c69565b8452602083015190811161013a57610e769201610c69565b602082015290565b9081602091031261013a575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526108c4929101906103a0565b5f19810191908211610a5e57565b91908203918211610a5e57565b92610ee8610dfa565b908051806110fb575b5050610efc426118de565b5f54909490610f1590610aa0906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa80156102e757610f4992610adb925f926110e35750610a46565b65ffffffffffff82169081109081156110cc575b811561109b575b5061108f578560049560405196878092630ce9b79360e41b82525afa9485156102e757610fb69587915f91611072575b50845190604051808099819463e02f693760e01b8352878b8a60048601610e8d565b03916001600160a01b03165afa9384156102e75761102e955f95611031575b509261101d85936110239361101d96869a61101461039383610fff875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610db9565b90610ed2565b818082109118021890565b91565b61102392955061101d94919361105f61101d928a3d8c1161106b575b61105781836107dd565b810190610e7e565b96935093919450610fd5565b503d61104d565b6110899150823d84116102e0576102d181836107dd565b5f610f94565b5050505050505f905f90565b90506110c5610adb6110b987610fff875f52600160205260405f2090565b5465ffffffffffff1690565b115f610f64565b90506110da610adb426118de565b81101590610f5d565b610c459192508a3d8c11610c4c57610c3d81836107dd565b61110e9250602080918301019101610e13565b5f80610ef1565b919091805f52600160205265ffffffffffff806111458560405f209060018060a01b03165f5260205260405f2090565b54169083161161115457505050565b61080b9261117c915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9060018201809211610a5e57565b9190825f5260026020526111fb6103936111d08360405f209060018060a01b03165f5260205260405f2090565b926111da426118de565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211610a5e57600181019081541561129f575b61121b81611b1c565b50949083549561122a846115c2565b508161128a575b50156112695750505f198301928311610a5e5761080b9261125191611599565b90919082549060031b91821b915f19901b1916179055565b61080b94611283926001600160d01b039091169190611bdd565b505061193d565b65ffffffffffff83811691161490505f611231565b6112a882611910565b611212565b606060206108c4938184526001600160401b038151168285015201519160408082015201906103a0565b919360a0936108c4969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906103a0565b9293906004602061132c610aa0610aa05f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa9081156102e75761075b916113aa915f916113f9575b506001600160a01b0316936113696107fe565b6001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152906020820152604051928391602083016112ad565b823b1561013a575f946113d586926040519889978896879563724ab0f760e11b8752600487016112d7565b03925af180156102e7576113e65750565b806113f361080b926107ca565b806102fe565b611412915060203d6020116102e0576102d181836107dd565b5f611356565b5f8054604051631c9e38c760e21b8152600481019390935265ffffffffffff9390931660248301529091602091839160449183916001600160a01b03165af180156102e7576114645750565b61147c9060203d60201161106b5761105781836107dd565b50565b8115611489570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c166114b5575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa9182156102e7575f92611572575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff909116608483015261153f8260a481015b03601f1981018452836107dd565b6202a15c5a10611560575f928380935192620249f0f1505f808080806114ae565b604051632153f33560e21b8152600490fd5b61153f92506115926115319160203d6020116102e0576102d181836107dd565b92506114e6565b80548210156115ae575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b8054806115f757505f5b6001600160d01b038116156115f15760016115e79201611599565b90549060031b1c90565b50505f90565b5f19908082810111610a5e57825f5260205f2001015460301c6115cc565b91909160408184031261013a57803561162d81610129565b9260208201356001600160401b03811161013a576108c49201610835565b5190811515820361013a57565b9081602091031261013a576108c49061164b565b61167891810190611615565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156102e7575f916117a8575b501561179657816117086004926116e9611960565b5f80546001600160a01b0319166001600160a01b038916179055611996565b94604051928380926313c085b760e11b82525afa9182156102e7575f92611779575b505016158061176f575b61175d575161080b9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b5080511515611734565b61178f9250803d106102e0576102d181836107dd565b5f8061172a565b6040516362df054560e01b8152600490fd5b6117c89150833d85116117ce575b6117c081836107dd565b810190611658565b5f6116d4565b503d6117b6565b9081602091031261013a575163ffffffff8116810361013a5790565b90600163ffffffff80931601918211610a5e57565b918051156118d45780602080611821935183010191016117d5565b9161182c8382611aae565b9261183d845165ffffffffffff1690565b9065ffffffffffff80851692168281146118c85782119182611873575b505061186a576108c492506119de565b50506020015190565b9091506118808354610ec4565b63ffffffff831614918215611899575b50505f8061185a565b6118c09192506118b46118ae610adb926117f1565b85611aae565b5165ffffffffffff1690565b115f80611890565b50505050506020015190565b506108c4916119de565b65ffffffffffff908181116118f1571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b8054600160401b8110156107aa5761192d91600182018155611599565b8154905f199060031b1b19169055565b90815491600160401b8310156107aa578261125191600161080b95018155611599565b611968611b55565b611970611b55565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f6040516119a38161078f565b5260208180518101031261013a576020906040516119c08161078f565b6119d86040519384936119d28561078f565b0161164b565b82525290565b908154905f829160058411611a48575b6119f9935084611de5565b80611a2157505f905b6001600160d01b038216156115f1576108c49160016115e79201611599565b611a3b611a30611a4292610ec4565b835f5260205f200190565b5460301c90565b90611a02565b9192611a5381611cba565b8103908111610a5e576119f993855f5265ffffffffffff808360205f20015416908516105f14611a845750916119ee565b929150611a9090611195565b906119ee565b60405190611aa3826107af565b5f6020838281520152565b9060206001611ad2611afe93611ac2611a96565b50611acb611a96565b5085611599565b509360405194611ae1866107af565b549465ffffffffffff86169586825260301c938491015201611599565b90549060405192611b0e846107af565b835260031b1c602082015290565b805480611b2d5750505f905f905f90565b5f19918183810111610a5e575f5260205f2001015460019165ffffffffffff82169160301c90565b60ff5f80516020611e458339815191525460401c1615611b7157565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156107aa57611ba091600182018155611599565b611bca57815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293928015611c9057611bf4611bff91610ec4565b825f5260205f200190565b9182549265ffffffffffff91828516928116808411611c7e57879303611c455750611c3e92509065ffffffffffff82549181199060301b169116179055565b60301c9190565b915050611c7991611c65611c576107fe565b65ffffffffffff9093168352565b6001600160d01b0386166020830152611b83565b611c3e565b604051632520601d60e01b8152600490fd5b5090611cb591611ca1611c576107fe565b6001600160d01b0385166020830152611b83565b5f9190565b60018111156108c457600181600160801b811015611dd3575b611d7b611d71611d67611d5d611d53611d49611d8797600488600160401b611d829a1015611dc6575b640100000000811015611db9575b62010000811015611dac575b610100811015611da0575b6010811015611d94575b1015611d8c575b60030260011c611d42818b61147f565b0160011c90565b611d42818a61147f565b611d42818961147f565b611d42818861147f565b611d42818761147f565b611d42818661147f565b809361147f565b821190565b900390565b60011b611d32565b811c9160021b91611d2b565b60081c91811b91611d21565b60101c9160081b91611d16565b60201c9160101b91611d0a565b60401c9160201b91611cfc565b50600160401b9050608082901c611cd3565b91905b838210611df55750505090565b9091928083169080841860011c8201809211610a5e57845f5265ffffffffffff808360205f20015416908416105f14611e325750925b9190611de8565b939250611e3e90611195565b91611e2b56fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220491c9e61f3cbaa2cb7b976430dd294da0ba4b4d592923d88df03120ff8c5bc2564736f6c634300081900336101603461017c576001600160401b0390601f61370238819003918201601f1916830191848311848410176101805780849260209460405283398101031261017c5751906001600160a01b038216820361017c57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c1661016a578080831603610125575b835f60a0525f60c0525f60e052610100905f8252610120905f82526101409081526040519161356d9384610195853960805184610b68015260a0518461047b015260c05184818161158e0152612c56015260e0518481816102e801526122c2015251838181610437015261244c015251828181610c7a01526115e40152518181816108060152818161191c0152611d110152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8080610091565b60405163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80622a087514610213578063103f29071461020e5780631a2be2c4146102095780631dd5f60014610204578063267de1f3146101ff5780632964f8dc146101fa5780632c9d45b3146101f55780632dd31000146101f057806331ce4dfe146101eb57806334d098ea146101e6578063439fab91146101e1578063457821b7146101dc5780635264679b146101d7578063545ce389146101d257806369f78920146101cd5780638f42f9ab146101c85780638f82f931146101c35780639168f9d2146101be5780639a896551146101b95780639f86fd85146101b4578063a4ef9b4f146101af578063aa8e6489146101aa578063aab3595f146101a5578063b94c386e146101a0578063bb24fe8a1461019b578063bc6eac5b14610196578063c0cd7c3e14610191578063cd05b8a11461018c578063d5c24e1a14610187578063e054e08b14610182578063f9268d181461017d5763fbfa77cf14610178575f80fd5b61181b565b6116ad565b611688565b61166b565b611613565b6115cf565b6115b2565b61156f565b61121d565b6111c5565b611187565b611124565b611090565b611005565b610bda565b610b49565b610b2c565b610ae7565b61084f565b610835565b6107f1565b6106b9565b610668565b6105ff565b610466565b610422565b610406565b6103b1565b610397565b610317565b6102d3565b610261565b6001600160a01b0381160361022957565b5f80fd5b65ffffffffffff81160361022957565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102295760c0366003190112610229576102c56102b160043561028481610218565b61028f602435610218565b60643561029b81610218565b60a435916102a88361022d565b604435906118d1565b60405191829160208352602083019061023d565b0390f35b5f91031261022957565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461022957604036600319011261022957602061036361035e60243561033c81610218565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6120da565b604051908152f35b60609060031901126102295760043561038381610218565b90602435906044356103948161022d565b90565b34610229576102c56102b16103ab3661036b565b916119a8565b3461022957604036600319011261022957602065ffffffffffff6103fc6024356103da81610218565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b34610229575f366003190112610229576020604051614e208152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176104d957604052565b6104aa565b604081019081106001600160401b038211176104d957604052565b606081019081106001600160401b038211176104d957604052565b6001600160401b0381116104d957604052565b608081019081106001600160401b038211176104d957604052565b90601f801991011681019081106001600160401b038211176104d957604052565b6040519060c082018281106001600160401b038211176104d957604052565b6040519061058f826104f9565b565b6040519061058f826104de565b6001600160401b0381116104d957601f01601f191660200190565b81601f82011215610229578035906105d08261059e565b926105de6040519485610542565b8284526020838301011161022957815f926020809301838601378301015290565b346102295760603660031901126102295760243561061c8161022d565b604435906001600160401b0382116102295761065f61064160209336906004016105b9565b6004355f90815260068552604090206001600160a01b039390612152565b16604051908152f35b34610229575f36600319011261022957602060ff5f5460a01c166040519015158152f35b9181601f84011215610229578235916001600160401b038311610229576020838186019501011161022957565b34610229576020366003190112610229576001600160401b03600435818111610229576106ea90369060040161068c565b5f80516020613518833981519152549260ff8460401c16159316801590816107e9575b60011490816107df575b1590816107d6575b506107c4575f80516020613518833981519152805467ffffffffffffffff1916600117905561075291836107a05761228b565b61075857005b5f80516020613518833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020613518833981519152805460ff60401b1916600160401b17905561228b565b60405163f92ee8a960e01b8152600490fd5b9050155f61071f565b303b159150610717565b84915061070d565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576102c56102b16108493661036b565b91611a2c565b346102295760a0366003190112610229576024356004803561087083610218565b604435926064356108808161022d565b6084356001600160401b0381116102295761089e903690860161068c565b94906108a86123f5565b6108b185612424565b6108b9611abe565b9580610ad1575b50506108cb426125f5565b906108e66108df825465ffffffffffff1690565b8093611b1f565b5f5490969061090b906108ff906001600160a01b031681565b6001600160a01b031690565b968260206040998a51928380926327f843b560e11b82525afa8015610acc5761094a9261093f925f92610a9b575b50611a14565b65ffffffffffff1690565b65ffffffffffff8516908110908115610a85575b50610a765761097090518486886127d0565b5096878082109118028088189714610a68576102c5610a41878988887f3cb7f4ff6cecf74cee0eb9ae3ebf8933fa60a53014cce52f96da72a78dba8464896109c08a6109bb426125f5565b611b1f565b92600354978894610a116109d2610563565b8881526001600160a01b0385166020820152808b018a905265ffffffffffff8616606082015265ffffffffffff831660808201525f60a0820152611b61565b885197885265ffffffffffff938416602089015290921660408701526001600160a01b0316949081906060820190565b0390a4610a5a60015f805160206134f883398151915255565b519081529081906020820190565b855163167f871760e31b8152fd5b508551631357ac9160e11b8152fd5b9050610a9361093f426125f5565b11155f61095e565b610abe91925060203d602011610ac5575b610ab68183610542565b810190611b39565b905f610939565b503d610aac565b6118ad565b610adf929650810190611ad1565b935f806108c0565b34610229576080366003190112610229576102c56102b1600435610b0a81610218565b604435610b1681610218565b60643591610b238361022d565b60243590611c97565b34610229575f366003190112610229576020600354604051908152f35b3461022957604036600319011261022957602435610b668161022d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610bc85763ffffffff610bb36040926004355f526006602052835f206124df565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102295760603660031901126102295760048035906bffffffffffffffffffffffff8216820361022957602435610c1181610218565b6044356001600160401b03811161022957610c2f903690840161068c565b90610c386123f5565b610c40611abe565b5081610fa0575b5050604080516302910f8b60e31b8152338185019081526001600160a01b0395929491602091829082908190830103818a7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610acc575f91610f73575b5015610f64575f54610ce5906001600160a01b0316936bffffffffffffffffffffffff166bffffffffffffffffffffffff193360601b161790565b95610d00610cfb885f52600660205260405f2090565b613223565b50949015610efa57610d1461093f426125f5565b65ffffffffffff9586161115610ec457610d3e610d39895f52600660205260405f2090565b6125b6565b505b610d636108ff6108ff6108ff610d5e8c5f52600660205260405f2090565b612e74565b91808716928303610dcf575b505050505050610db4907f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b7570925b516001600160a01b0390911681529081906020820190565b0390a2610dcd60015f805160206134f883398151915255565b005b610de68998959796985f52600660205260405f2090565b911692845163186a323160e21b815281818981885afa908115610acc575f91610ea7575b5081600554958751998a80926327f843b560e11b82525afa908115610acc5789610e6f610e81977f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b75709c610e7695610db49d610e7b985f92610e8a575b50501690611de6565b9116611e07565b6125f5565b9061341a565b82958495610d6f565b610ea09250803d10610ac557610ab68183610542565b5f80610e66565b610ebe9150823d8411610ac557610ab68183610542565b5f610e0a565b610ee26108ff6108ff6108ff610d5e8c5f52600660205260405f2090565b82871603610d4057865163a741a04560e01b81528490fd5b5093949385169250508115610f56575091610db491610f4f7f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b757094610f46875f52600660205260405f2090565b610e7b426125f5565b5050610d9c565b825163a741a04560e01b8152fd5b5083516323d53b9760e21b8152fd5b610f939150823d8411610f99575b610f8b8183610542565b810190611dd2565b5f610caa565b503d610f81565b610fac91810190611ad1565b505f80610c47565b634e487b7160e01b5f52603260045260245ffd5b6003548110156110005760035f5260021b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01905f90565b610fb4565b34610229576020366003190112610229576004356003548110156102295761102c90610fc8565b50805460018201546002830154600390930154604080519384526001600160a01b0390921660208401529082019290925265ffffffffffff808316606080840191909152603084901c90911660808301529190911c60ff16151560a082015260c090f35b34610229576040366003190112610229576004356110ad81610218565b6024356001600160401b038111610229575f916110cf8392369060040161068c565b90816040519283928337810184815203915af461111c6110ed611e14565b9161110e60405193849215156020840152604080840152606083019061023d565b03601f198101835282610542565b805190602001fd5b34610229576102c56102b16111383661036b565b91611e75565b906080600319830112610229576004359160243561115b81610218565b916044356111688161022d565b91606435906001600160401b03821161022957610394916004016105b9565b346102295760206103636111c061119d3661113e565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b61265b565b346102295760206111e16111d83661113e565b929190916127d0565b50604051908152f35b9060406003198301126102295760043591602435906001600160401b038211610229576112199160040161068c565b9091565b346102295761122b366111ea565b91906112356123f5565b61123d611f9a565b9280611559575b50506003548110156115475761125981610fc8565b509081549061126782612424565b6003830180549365ffffffffffff9384861660018060a01b0361128c895183856119bf565b1615158061151c575b80611503575b6114f1576112b1816112ac426125f5565b611a14565b5f546112c7906108ff906001600160a01b031681565b96600460206040998a51928380926327f843b560e11b82525afa8015610acc5782915f916114d2575b50169116116114c157600183018054909861131b93929188906001600160a01b0316910151926127d0565b90611330816002850154818082109118021890565b9687156114b05760601c60ff1661149f579261145861144b89946114236114108b9687876102c59f61141e8f9d8f9e61145e9f61137a86600160601b60ff60601b19825416179055565b8a54855461139c91906001600160a01b0316885465ffffffffffff1691612a06565b8a5485546113b59189916001600160a01b031690612a86565b8a5494546113d3906001600160a01b0316965465ffffffffffff1690565b976113dc610582565b9384526020840152818301525196879160208301919091604080606083019480518452602081015160208501520151910152565b03601f198101875286610542565b612bf2565b61143c611436855465ffffffffffff1690565b86612cfb565b5494546001600160a01b031690565b915465ffffffffffff1690565b92612d78565b81518381527f5cc28df3b54da9d06f805d87616ebf969c81310f2aa8369cb14ca50f815d411190602090a2610a5a60015f805160206134f883398151915255565b8551633428e90760e01b8152600490fd5b865163167f871760e31b8152600490fd5b8551639ea153eb60e01b8152600490fd5b6114eb915060203d602011610ac557610ab68183610542565b5f6112f0565b60405163b62b15c760e01b8152600490fd5b5061151061093f426125f5565b868860301c161161129b565b506115406108ff61153461152f426125f5565b6119f8565b60208b015190856119bf565b1515611295565b604051637822972360e11b8152600490fd5b611567929350810190611fb9565b905f80611244565b34610229575f3660031901126102295760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610229575f366003190112610229576020600554604051908152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576040366003190112610229576024356001600160401b0381116102295761165961164860209236906004016105b9565b611651426125f5565b6004356119bf565b6040516001600160a01b039091168152f35b34610229575f366003190112610229576020604051620249f08152f35b34610229575f36600319011261022957602065ffffffffffff60045416604051908152f35b34610229576116bb366111ea565b906116c46123f5565b6116cc612041565b9180611807575b5050600354821015611547576116e882610fc8565b506003815491019182549165ffffffffffff9160018060a01b036117108251858716856119bf565b169182159182156117de575b50506117cc5733036117ba5761173461093f426125f5565b908260301c1611156117a95760601c60ff1661179757805460ff60601b1916600160601b17905533907f7d3d269c851b72257a5194a401d151902e9be4347d555996dcff3ff86a077e925f80a3610dcd60015f805160206134f883398151915255565b604051633428e90760e01b8152600490fd5b60405162c457e560e81b8152600490fd5b604051635d154fe160e11b8152600490fd5b60405163dd1ebd9d60e01b8152600490fd5b6117ff9250906108ff9160206117f661152f426125f5565b910151916119bf565b155f8061171c565b611814925081019061205a565b5f806116d3565b34610229575f366003190112610229575f546040516001600160a01b039091168152602090f35b81601f82011215610229578051906118598261059e565b926118676040519485610542565b8284526020838301011161022957815f9260208093018386015e8301015290565b906020828203126102295781516001600160401b038111610229576103949201611842565b6040513d5f823e3d90fd5b604061039492602083525191602080820152019061023d565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252909116604482015265ffffffffffff9091166064820152606091905f81806084810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610acc575f91611986575b50805161195e5750565b61110e9192506103949060405190611975826104be565b8152604051928391602083016118b8565b6119a291503d805f833e61199a8183610542565b810190611888565b5f611954565b92916119b691606094611e75565b805161195e5750565b5f9081526006602052604090206001600160a01b03926119e0929091612152565b1690565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9081165f190191908211611a0f57565b6119e4565b65ffffffffffff9182169082160391908211611a0f57565b611a4d90939293611a406060958483611e75565b9261113861152f426125f5565b815115801590611ab4575b611a60575050565b611aa19293509061110e6103949260405192611a7b846104de565b83526020830190815260405194859360208086015251604080860152608085019061023d565b9051838203603f1901606085015261023d565b5080511515611a58565b60405190611acb826104be565b60608252565b906020828203126102295781356001600160401b03928382116102295701906020828203126102295760405192611b07846104be565b823590811161022957611b1a92016105b9565b815290565b91909165ffffffffffff80809416911601918211611a0f57565b9081602091031261022957516103948161022d565b634e487b7160e01b5f525f60045260245ffd5b600354600160401b8110156104d957806001611b809201600355610fc8565b919091611c43578051825560208101516001830180546001600160a01b0319166001600160a01b039290921691909117905561058f91611c299060a090600390604085015160028201550192611bf665ffffffffffff606083015116859065ffffffffffff1665ffffffffffff19825416179055565b60808101516bffffffffffff00000000000085549160301b16906bffffffffffff00000000000019161784550151151590565b815460ff60601b191690151560601b60ff60601b16179055565b611b4e565b906103949160208152611c67825160606020840152608083019061023d565b9060606040611c87602086015194601f199586868303018487015261023d565b940151928285030191015261023d565b919093925f606095611caa838287611e75565b94611d0d611cc4611cbd61152f426125f5565b8484611e75565b604051632751749360e11b81526001600160a01b039384166004820152602481019490945291909516604483015265ffffffffffff909316606482015292839081906084820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa918215610acc575f92611da9575b50825115801590611d9f575b8015611d95575b611d6557505050565b61110e939450906103949291611d79610582565b9283526020830152604082015260405192839160208301611c48565b5081511515611d5c565b5080511515611d55565b611dbe9192503d805f833e61199a8183610542565b905f611d49565b5190811515820361022957565b908160209103126102295761039490611dc5565b81810292918115918404141715611a0f57565b9060018201809211611a0f57565b91908201809211611a0f57565b3d15611e3e573d90611e258261059e565b91611e336040519384610542565b82523d5f602084013e565b606090565b519063ffffffff8216820361022957565b9190826040910312610229576103946020611e6e84611dc5565b9301611e43565b92915f8060609565ffffffffffff60405194602096638f82f93160e01b88880152602487015216604485015260448452611eae84610527565b6040519384611edb87820192639f86fd8560e01b845230602484015260406044840152606483019061023d565b0394611eef601f1996878101835282610542565b51915afa50611f0d611eff611e14565b838082518301019101612627565b9015611f6057808380611f2593518301019101611e54565b9290611f3057505050565b61039492939450611f54604051948592830191909163ffffffff6020820193169052565b03908101835282610542565b809150519182156102295701fd5b5f9081526002602090815260408083206001600160a01b0390941683529290522061039492919061265b565b60405190611fa7826104f9565b60606040838281528260208201520152565b906020828203126102295781356001600160401b03928382116102295701906060828203126102295760405192611fef846104f9565b823581811161022957826120049185016105b9565b84526020830135818111610229578261201e9185016105b9565b602085015260408301359081116102295761203992016105b9565b604082015290565b6040519061204e826104de565b60606020838281520152565b906020828203126102295781356001600160401b03928382116102295701906040828203126102295760405192612090846104de565b823581811161022957826120a59185016105b9565b84526020830135908111610229576120bd92016105b9565b602082015290565b8054821015611000575f5260205f2001905f90565b6120e381612e74565b6001600160d01b038116156121085760016120fe92016120c5565b90549060031b1c90565b50505f90565b908160209103126102295761039490611e43565b5f19810191908211611a0f57565b91908203918211611a0f57565b90600163ffffffff80931601918211611a0f57565b91805115612236578060208061216d9351830101910161210e565b916121788382612eb4565b92612189845165ffffffffffff1690565b9065ffffffffffff808516921682811461221d57821191826121c8575b50506121b6576103949250613319565b5050602001516001600160d01b031690565b9091506121d58354612122565b63ffffffff8316149182156121ee575b50505f806121a6565b61221591925061220961220361093f9261213d565b85612eb4565b5165ffffffffffff1690565b115f806121e5565b50505050602091909101516001600160d01b0316905090565b5061039491613319565b91909160408184031261022957803561225881610218565b9260208201356001600160401b0381116102295761039492016105b9565b90816020910312610229575161039481610218565b61229791810190612240565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610acc575f916123d8575b50156123c65781612328600492612308612f08565b5f80546001600160a01b0319166001600160a01b03891617905586612f95565b94604051928380926313c085b760e11b82525afa918215610acc575f92612399575b505016158061238f575b61237d575161058f9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b5080511515612354565b6123b89250803d106123bf575b6123b08183610542565b810190612276565b5f8061234a565b503d6123a6565b6040516362df054560e01b8152600490fd5b6123ef9150833d8511610f9957610f8b8183610542565b5f6122f3565b5f805160206134f883398151915260028154146124125760029055565b604051633ee5aeb560e01b8152600490fd5b604051635daf681960e11b815260609190911c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa918215610acc575f9261249a575b503391160361248857565b60405163227bf64d60e01b8152600490fd5b6124b491925060203d6020116123bf576123b08183610542565b905f61247d565b906040516124c8816104de565b915465ffffffffffff8116835260301c6020830152565b908154905f829160058411612568575b6124fa9350846131c1565b90811561255c5761251b9061250e83612122565b905f5260205f20016124bb565b9161255561254c6125466020612537875165ffffffffffff1690565b9601516001600160d01b031690565b93612122565b63ffffffff1690565b6001939291565b50505f905f905f905f90565b919261257381613096565b8103908111611a0f576124fa93855f5265ffffffffffff808360205f20015416908516105f146125a45750916124ef565b9291506125b090611df9565b906124ef565b906125c082612e74565b91805480156125e1575f1901906125d782826120c5565b611c43575f905555565b634e487b7160e01b5f52603160045260245ffd5b65ffffffffffff90818111612608571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9190916040818403126102295761263d81611dc5565b9260208201516001600160401b038111610229576103949201611842565b9180511561271d57806020806126769351830101910161210e565b916126818382613267565b92612692845165ffffffffffff1690565b9065ffffffffffff808516921682811461271157821191826126c8575b50506126bf57610394925061325c565b50506020015190565b9091506126d58354612122565b63ffffffff8316149182156126ee575b50505f806126af565b61270991925061220961270361093f9261213d565b85613267565b115f806126e5565b50505050506020015190565b506103949161325c565b906020828203126102295781516001600160401b0392838211610229570190604082820312610229576040519261275d846104de565b82518181116102295782612772918501611842565b84526020830151908111610229576120bd9201611842565b90816020910312610229575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526103949291019061023d565b926127d9612041565b908051806129ec575b50506127ed426125f5565b5f54909490612806906108ff906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa8015610acc5761283a9261093f925f926129d45750611a14565b65ffffffffffff82169081109081156129bd575b811561298c575b50612980578560049560405196878092630ce9b79360e41b82525afa948515610acc576128a79587915f91612963575b50845190604051808099819463e02f693760e01b8352878b8a60048601612799565b03916001600160a01b03165afa938415610acc5761291f955f95612922575b509261290e85936129149361290e96869a61290561035e836128f0875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192611f6e565b90612130565b818082109118021890565b91565b61291492955061290e94919361295061290e928a3d8c1161295c575b6129488183610542565b81019061278a565b969350939194506128c6565b503d61293e565b61297a9150823d84116123bf576123b08183610542565b5f612885565b5050505050505f905f90565b90506129b661093f6129aa876128f0875f52600160205260405f2090565b5465ffffffffffff1690565b115f612855565b90506129cb61093f426125f5565b8110159061284e565b610abe9192508a3d8c11610ac557610ab68183610542565b6129ff9250602080918301019101612727565b5f806127e2565b919091805f52600160205265ffffffffffff80612a368560405f209060018060a01b03165f5260205260405f2090565b541690831611612a4557505050565b61058f92612a6d915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9190825f526002602052612ade61035e612ab38360405f209060018060a01b03165f5260205260405f2090565b92612abd426125f5565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211611a0f576001810190815415612b82575b612afe81613223565b509490835495612b0d846120da565b5081612b6d575b5015612b4c5750505f198301928311611a0f5761058f92612b34916120c5565b90919082549060031b91821b915f19901b1916179055565b61058f94612b66926001600160d01b03909116919061341a565b50506132f6565b65ffffffffffff83811691161490505f612b14565b612b8b826132c9565b612af5565b60606020610394938184526001600160401b0381511682850152015191604080820152019061023d565b919360a093610394969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061023d565b92939060046020612c0f6108ff6108ff5f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa908115610acc5761110e91612c8d915f91612cdc575b506001600160a01b031693612c4c610591565b6001600160401b037f000000000000000000000000000000000000000000000000000000000000000016815290602082015260405192839160208301612b90565b823b15610229575f94612cb886926040519889978896879563724ab0f760e11b875260048701612bba565b03925af18015610acc57612cc95750565b80612cd661058f92610514565b806102c9565b612cf5915060203d6020116123bf576123b08183610542565b5f612c39565b65ffffffffffff9160446020925f60018060a01b038154166040519687958694631c9e38c760e21b865260048601521660248401525af18015610acc57612d3f5750565b612d579060203d60201161295c576129488183610542565b50565b8115612d64570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c16612d90575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa918215610acc575f92612e4d575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff9091166084830152612e1a8260a481015b03601f198101845283610542565b6202a15c5a10612e3b575f928380935192620249f0f1505f80808080612d89565b604051632153f33560e21b8152600490fd5b612e1a9250612e6d612e0c9160203d6020116123bf576123b08183610542565b9250612dc1565b805480612e815750505f90565b5f19918183810111611a0f575f5260205f2001015460301c90565b60405190612ea9826104de565b5f6020838281520152565b612ed991612ed391612ec4612e9c565b50612ecd612e9c565b506120c5565b506124bb565b65ffffffffffff81511690602060018060d01b039101511660405191612efe836104de565b8252602082015290565b612f106133a5565b612f186133a5565b60015f805160206134f883398151915255565b60405190612f38826104be565b5f8252565b809103906060821261022957602060405192612f58846104f9565b12610229576040908151612f6b816104be565b612f7482611dc5565b815283526020810151612f868161022d565b60208401520151604082015290565b90600490612fa1612f2b565b508051612fb8602092838080948301019101612f3d565b6040516327f843b560e11b815290949093849182906001600160a01b03165afa918215610acc575f92613077575b50820190612ffa825165ffffffffffff1690565b65ffffffffffff91821691161015613065576040820160038151106130535761304961302f61304f935165ffffffffffff1690565b65ffffffffffff1665ffffffffffff196004541617600455565b51600555565b5190565b6040516354f778f360e01b8152600490fd5b6040516367d5e3df60e11b8152600490fd5b8161308f9293503d8411610ac557610ab68183610542565b905f612fe6565b600181111561039457600181600160801b8110156131af575b61315761314d61314361313961312f61312561316397600488600160401b61315e9a10156131a2575b640100000000811015613195575b62010000811015613188575b61010081101561317c575b6010811015613170575b1015613168575b60030260011c61311e818b612d5a565b0160011c90565b61311e818a612d5a565b61311e8189612d5a565b61311e8188612d5a565b61311e8187612d5a565b61311e8186612d5a565b8093612d5a565b821190565b900390565b60011b61310e565b811c9160021b91613107565b60081c91811b916130fd565b60101c9160081b916130f2565b60201c9160101b916130e6565b60401c9160201b916130d8565b50600160401b9050608082901c6130af565b91905b8382106131d15750505090565b909192808316906001818518811c8301809311611a0f57855f5265ffffffffffff808460205f20015416908516105f14613210575050925b91906131c4565b909493508101809111611a0f5791613209565b8054806132345750505f905f905f90565b5f19918183810111611a0f575f5260205f2001015460019165ffffffffffff82169160301c90565b906120e39082613319565b9061328a612ed36132ab9261327a612e9c565b50613283612e9c565b50846120c5565b91600165ffffffffffff845116936020828060d01b039101511691016120c5565b905490604051926132bb846104de565b835260031b1c602082015290565b8054600160401b8110156104d9576132e6916001820181556120c5565b8154905f199060031b1b19169055565b90815491600160401b8310156104d95782612b3491600161058f950181556120c5565b908154905f829160058411613357575b6133349350846131c1565b8061333f5750505f90565b61334890612122565b905f5260205f20015460301c90565b919261336281613096565b8103908111611a0f5761333493855f5265ffffffffffff808360205f20015416908516105f14613393575091613329565b92915061339f90611df9565b90613329565b60ff5f805160206135188339815191525460401c16156133c157565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156104d9576133f0916001820181556120c5565b611c4357815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b805492939280156134cd5761343161343c91612122565b825f5260205f200190565b9182549265ffffffffffff918285169281168084116134bb57879303613482575061347b92509065ffffffffffff82549181199060301b169116179055565b60301c9190565b9150506134b6916134a2613494610591565b65ffffffffffff9093168352565b6001600160d01b03861660208301526133d3565b61347b565b604051632520601d60e01b8152600490fd5b50906134f2916134de613494610591565b6001600160d01b03851660208301526133d3565b5f919056fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220a4b36fd2a7f9579b907150ab23cabb9a2ca5c1144cf8a5bb870332bf621d88b664736f6c63430008190033","sourceMap":"624:2139:97:-:0;;;;;;;;;;;;;-1:-1:-1;;624:2139:97;;;;-1:-1:-1;;;;;624:2139:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;624:2139:97;;;;;;;;348:4:95;332:21;;8837:64:26;624:2139:97;;;;;;;7896:76:26;;624:2139:97;;;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:82;;;-1:-1:-1;525:17:82;;-1:-1:-1;552:12:82;;-1:-1:-1;2353:28:105;;2391:53;;-1:-1:-1;2391:53:105;;987:41:97;;;;624:2139;;1062:31;;;;;;;;;;;;;;624:2139;1062:31;;;;;;348:4:95;624:2139:97;;1062:31;;;-1:-1:-1;1062:31:97;;;;;;1038:56;;624:2139;;1038:56;;624:2139;;1133:35;;;;;;;;;;;;;;;624:2139;1133:35;;;;;;348:4:95;624:2139:97;;1133:35;;;-1:-1:-1;1133:35:97;;;;;;1104:65;624:2139;;1104:65;;624:2139;;;;;;;;332:21:95;624:2139:97;;;;;525:17:82;624:2139:97;;;;;552:12:82;624:2139:97;;;;;2353:28:105;624:2139:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1133:35;624:2139;;;-1:-1:-1;624:2139:97;;;;;1133:35;624:2139;;;-1:-1:-1;624:2139:97;;;;;-1:-1:-1;624:2139:97;7981:146:26;-1:-1:-1;;;;;;624:2139:97;;;;;;;;;8087:29:26;;624:2139:97;;8087:29:26;7981:146;;;;;7896:76;624:2139:97;;-1:-1:-1;;;7938:23:26;;;;;624:2139:97;-1:-1:-1;624:2139:97;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063103f2907146101545780631a2be2c41461014f578063267de1f31461014a5780632964f8dc146101455780632c9d45b3146101405780632dd310001461013b57806334d098ea14610136578063439fab91146101315780634a7196551461012c5780634ea2e926146101275780634eb5a242146101225780636565b7db1461011d578063770280461461011857806379d89614146101135780639f86fd851461010e578063aa8e648914610109578063aab3595f14610104578063bb24fe8a146100ff578063d5c24e1a146100fa5763fbfa77cf146100f5575f80fd5b610945565b610928565b6108e5565b6108c0565b610882565b6106c5565b610681565b6105ca565b610586565b610542565b610525565b6104f0565b61034b565b6102fa565b6102b6565b610272565b610256565b610201565b6101ad565b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b6001600160a01b0381160361019857565b346101985760403660031901126101985760206101f96101f46024356101d28161019c565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b610da5565b604051908152f35b3461019857604036600319011261019857602065ffffffffffff61024c60243561022a8161019c565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b34610198575f366003190112610198576020604051614e208152f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f36600319011261019857602060ff5f5460a01c166040519015158152f35b9181601f84011215610198578235916001600160401b038311610198576020838186019501011161019857565b34610198576020366003190112610198576001600160401b036004358181116101985761037c90369060040161031e565b5f80516020611938833981519152549260ff8460401c161593168015908161047b575b6001149081610471575b159081610468575b50610456575f80516020611938833981519152805467ffffffffffffffff191660011790556103e4918361043257610e47565b6103ea57005b5f80516020611938833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611938833981519152805460ff60401b1916600160401b179055610e47565b60405163f92ee8a960e01b8152600490fd5b9050155f6103b1565b303b1591506103a9565b84915061039f565b65ffffffffffff81160361019857565b6080906003190112610198576004356104ab8161019c565b90602435906044356104bc8161019c565b906064356104c981610483565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346101985761052161050d61050436610493565b929190916109ab565b6040519182916020835260208301906104cc565b0390f35b346101985761052161050d61053936610493565b92919091610b76565b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198576060366003190112610198576024356105e78161019c565b6044356105f381610483565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361066f5761064d610652926004355f52600260205260405f209060018060a01b03165f5260205260405f2090565b611045565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198576040366003190112610198576004356106e28161019c565b6024356001600160401b038111610198575f916107048392369060040161031e565b90816040519283928337810184815203915af4610751610722610d21565b916107436040519384921515602084015260408084015260608301906104cc565b03601f1981018352826107a8565b805190602001fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761078857604052565b610759565b60a081019081106001600160401b0382111761078857604052565b90601f801991011681019081106001600160401b0382111761078857604052565b604051906107d68261076d565b565b6001600160401b03811161078857601f01601f191660200190565b81601f820112156101985780359061080a826107d8565b9261081860405194856107a8565b8284526020838301011161019857815f926020809301838601378301015290565b90608060031983011261019857600435916024356108568161019c565b9160443561086381610483565b91606435906001600160401b038211610198576104c9916004016107f3565b346101985760206101f96108bb61089836610839565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b611173565b346101985760206108dc6108d336610839565b92919091611342565b50604051908152f35b34610198575f3660031901126101985760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610198575f366003190112610198576020604051620249f08152f35b34610198575f366003190112610198575f546040516001600160a01b039091168152602090f35b5190811515820361019857565b519063ffffffff8216820361019857565b9190826040910312610198576104c960206109a48461096c565b9301610979565b5f809195949593929365ffffffffffff60609760405195602097633b81402360e11b89890152602488015260018060a01b03166044870152166064850152606484526109f68461078d565b6040519384610a2387820192639f86fd8560e01b84523060248401526040604484015260648301906104cc565b0394610a37601f19968781018352826107a8565b51915afa50610a55610a47610d21565b838082518301019101610fb0565b9015610aa857808380610a6d9351830101910161098a565b9290610a7857505050565b6104c992939450610a9c604051948592830191909163ffffffff6020820193169052565b039081018352826107a8565b809150519182156101985701fd5b9081602091031261019857516104c98161019c565b6040513d5f823e3d90fd5b81601f8201121561019857805190610aed826107d8565b92610afb60405194856107a8565b8284526020838301011161019857815f9260208093018386015e8301015290565b906020828203126101985781516001600160401b038111610198576104c99201610ad6565b906104c991602081526020610b61835160408385015260608401906104cc565b920151906040601f19828503019101526104cc565b60405163fbfa77cf60e01b815260609594919391926020926001600160a01b03929091908481600481878b165afa908115610cd257849186915f91610d04575b50600460405180948193630ce9b79360e41b8352165afa8015610cd25786948385925f948591610cd7575b506040516304bb92e160e31b81526001600160a01b039182166004820152602481019290925292909216604483015265ffffffffffff97909716606482015295869060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa948515610cd2575f95610caa575b50610c669394956109ab565b825115801590610ca0575b610c7a57505050565b6104c992939450610c896107c9565b938452818401526107436040519384928301610b41565b5080511515610c71565b610c66949550610ccb903d805f833e610cc381836107a8565b810190610b1c565b9493610c5a565b610acb565b610cf79150893d8b11610cfd575b610cef81836107a8565b810190610ab6565b5f610be1565b503d610ce5565b610d1b9150823d8411610cfd57610cef81836107a8565b5f610bb6565b3d15610d4b573d90610d32826107d8565b91610d4060405193846107a8565b82523d5f602084013e565b606090565b5f9081526002602090815260408083206001600160a01b039094168352929052206104c9929190611173565b8054821015610d91575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b805480610dda57505f5b6001600160d01b03811615610dd4576001610dca9201610d7c565b90549060031b1c90565b50505f90565b5f19908082810111610df857825f5260205f2001015460301c610daf565b610fe4565b919091604081840312610198578035610e158161019c565b9260208201356001600160401b038111610198576104c992016107f3565b90816020910312610198576104c99061096c565b610e5391810190610dfd565b506040516302910f8b60e31b81526001600160a01b0391821660048201819052919060209081816024817f000000000000000000000000000000000000000000000000000000000000000087165afa908115610cd2575f91610f83575b5015610f7157610ebe61159c565b5f80546001600160a01b0319166001600160a01b038516179055600481610ee36115d2565b94604051928380926313c085b760e11b82525afa918215610cd2575f92610f54575b5050161580610f4a575b610f3857516107d69015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b5080511515610f0f565b610f6a9250803d10610cfd57610cef81836107a8565b5f80610f05565b6040516362df054560e01b8152600490fd5b610fa39150823d8411610fa9575b610f9b81836107a8565b810190610e33565b5f610eb0565b503d610f91565b91909160408184031261019857610fc68161096c565b9260208201516001600160401b038111610198576104c99201610ad6565b634e487b7160e01b5f52601160045260245ffd5b5f19810191908211610df857565b91908203918211610df857565b9060018201809211610df857565b9060405161102e8161076d565b915465ffffffffffff8116835260301c6020830152565b91908254905f8291600584116110e3575b61106193508561173d565b9081156110d7576110d06110c76110c1610dca61109361108e61108388610ff8565b895f5260205f200190565b611021565b9660016110ba60206110ab8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101610d7c565b93610ff8565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926110ee81611612565b8103908111610df85761106193865f526111226111178360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff85161015611138575091611056565b92915061114490611013565b90611056565b90816020910312610198576104c990610979565b90600163ffffffff80931601918211610df857565b91805115611241578060208061118e9351830101910161114a565b91611199838261186f565b926111aa845165ffffffffffff1690565b9065ffffffffffff808516921682811461123557821191826111e0575b50506111d7576104c9925061179f565b50506020015190565b9091506111ed8354610ff8565b63ffffffff831614918215611206575b50505f806111c7565b61122d91925061122161121b6111179261115e565b8561186f565b5165ffffffffffff1690565b115f806111fd565b50505050506020015190565b506104c99161179f565b604051906112588261076d565b60606020838281520152565b906020828203126101985781516001600160401b0392838211610198570190604082820312610198576040519261129a8461076d565b825181811161019857826112af918501610ad6565b84526020830151908111610198576112c79201610ad6565b602082015290565b9081602091031261019857516104c981610483565b65ffffffffffff9182169082160391908211610df857565b90816020910312610198575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526104c9929101906104cc565b9261134b61124b565b90805180611582575b505061135f42611905565b5f5490949061138490611378906001600160a01b031681565b6001600160a01b031690565b93604051956327f843b560e11b875260209687816004818a5afa8015610cd2576113b992611117925f92611553575b506112e4565b65ffffffffffff821690811090811561153c575b811561150b575b506114ff578560049560405196878092630ce9b79360e41b82525afa948515610cd2576114269587915f916114e2575b50845190604051808099819463e02f693760e01b8352878b8a6004860161130b565b03916001600160a01b03165afa938415610cd25761149e955f956114a1575b509261148d85936114939361148d96869a6114846101f48361146f875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610d50565b90611006565b818082109118021890565b91565b61149392955061148d9491936114cf61148d928a3d8c116114db575b6114c781836107a8565b8101906112fc565b96935093919450611445565b503d6114bd565b6114f99150823d8411610cfd57610cef81836107a8565b5f611404565b5050505050505f905f90565b90506115356111176115298761146f875f52600160205260405f2090565b5465ffffffffffff1690565b115f6113d4565b905061154a61111742611905565b811015906113cd565b6115749192508a3d8c1161157b575b61156c81836107a8565b8101906112cf565b905f6113b3565b503d611562565b6115959250602080918301019101611264565b5f80611354565b6115a46118d7565b6115ac6118d7565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b60405190602082018281106001600160401b03821117610788576040525f8252565b81156115fe570490565b634e487b7160e01b5f52601260045260245ffd5b60018111156104c957600181600160801b81101561172b575b6116d36116c96116bf6116b56116ab6116a16116df97600488600160401b6116da9a101561171e575b640100000000811015611711575b62010000811015611704575b6101008110156116f8575b60108110156116ec575b10156116e4575b60030260011c61169a818b6115f4565b0160011c90565b61169a818a6115f4565b61169a81896115f4565b61169a81886115f4565b61169a81876115f4565b61169a81866115f4565b80936115f4565b821190565b900390565b60011b61168a565b811c9160021b91611683565b60081c91811b91611679565b60101c9160081b9161166e565b60201c9160101b91611662565b60401c9160201b91611654565b50600160401b9050608082901c61162b565b91905b83821061174d5750505090565b909192808316906001818518811c8301809311610df857855f5265ffffffffffff808460205f20015416908516105f1461178c575050925b9190611740565b909493508101809111610df85791611785565b908154905f829160058411611809575b6117ba93508461173d565b806117e257505f905b6001600160d01b03821615610dd4576104c9916001610dca9201610d7c565b6117fc6117f161180392610ff8565b835f5260205f200190565b5460301c90565b906117c3565b919261181481611612565b8103908111610df8576117ba93855f5265ffffffffffff808360205f20015416908516105f146118455750916117af565b92915061185190611013565b906117af565b604051906118648261076d565b5f6020838281520152565b906118986118926118b992611882611857565b5061188b611857565b5084610d7c565b50611021565b91600165ffffffffffff845116936020828060d01b03910151169101610d7c565b905490604051926118c98461076d565b835260031b1c602082015290565b60ff5f805160206119388339815191525460401c16156118f357565b604051631afcd79f60e31b8152600490fd5b65ffffffffffff90818111611918571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fdfef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212201d26a2883a443bc510e63e9a6e283bd471aa3bdd4e14bd92d2e4d814a7e2509a64736f6c63430008190033","sourceMap":"624:2139:97:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;624:2139:97;;;;;;1435:38:105;-1:-1:-1;;;;;624:2139:97;;;;;;;;;;;-1:-1:-1;;;;;624:2139:97;;;;;:::o;:::-;;;;;;-1:-1:-1;;624:2139:97;;;;;2936:47:105;:38;624:2139:97;;;;;:::i;:::-;;;-1:-1:-1;624:2139:97;2936:16:105;624:2139:97;;;-1:-1:-1;624:2139:97;;;;;;;;;;;;;;;;;2936:38:105;:47;:::i;:::-;624:2139:97;;;;;;;;;;;;-1:-1:-1;;624:2139:97;;;;;;1788:109:105;624:2139:97;;;;;:::i;:::-;;;-1:-1:-1;624:2139:97;1788:109:105;624:2139:97;;;-1:-1:-1;624:2139:97;;;;;;;;;;;;;;;;;1788:109:105;624:2139:97;;;;;;;;;;;;;;-1:-1:-1;;624:2139:97;;;;;;;1374:6:105;624:2139:97;;;;;;;;;-1:-1:-1;;624:2139:97;;;;;;1528:51:105;-1:-1:-1;;;;;624:2139:97;;;;;;;;;;;;-1:-1:-1;;624:2139:97;;;;;;322:32:82;-1:-1:-1;;;;;624:2139:97;;;;;;;;;;;;-1:-1:-1;;624:2139:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;624:2139:97;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;624:2139:97;;;;-1:-1:-1;;;;;624:2139:97;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;624:2139:97;;;;;;;4301:16:26;624:2139:97;;4726:16:26;;:34;;;;624:2139:97;4805:1:26;4790:16;:50;;;;624:2139:97;4855:13:26;:30;;;;624:2139:97;4851:91:26;;;-1:-1:-1;;;;;;;;;;;624:2139:97;;-1:-1:-1;;624:2139:97;;;;;718:4:82;;4951:18:26;4979:67;;718:4:82;:::i;:::-;5066:101:26;;624:2139:97;5066:101:26;-1:-1:-1;;;;;;;;;;;624:2139:97;;-1:-1:-1;;;;624:2139:97;;;;;-1:-1:-1;624:2139:97;;5142:14:26;;624:2139:97;;5142:14:26;624:2139:97;4979:67:26;-1:-1:-1;;;;;;;;;;;624:2139:97;;-1:-1:-1;;;;624:2139:97;-1:-1:-1;;;624:2139:97;;;718:4:82;:::i;4851:91:26:-;624:2139:97;;-1:-1:-1;;;4908:23:26;;624:2139:97;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;624:2139:97;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;624:2139:97;;;;;;;;-1:-1:-1;;624:2139:97;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;624:2139:97;;;;;;778:38;-1:-1:-1;;;;;624:2139:97;;;;;;;;;;;;-1:-1:-1;;624:2139:97;;;;;;822:43;-1:-1:-1;;;;;624:2139:97;;;;;;;;;;;;-1:-1:-1;;624:2139:97;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;449:5:95;-1:-1:-1;;;;;624:2139:97;435:10:95;:19;431:71;;1400:38:97;:77;624:2139;;;-1:-1:-1;624:2139:97;1400:16;624:2139;;;-1:-1:-1;624:2139:97;;;;;;;;;;;;;;;;;1400:38;:77;:::i;:::-;624:2139;;;;;;;;;;;;;;;;;;;-1:-1:-1;;624:2139:97;431:71:95;624:2139:97;;-1:-1:-1;;;477:14:95;;624:2139:97;;477:14:95;624:2139:97;;;;;;-1:-1:-1;;624:2139:97;;;;;;727:45;-1:-1:-1;;;;;624:2139:97;;;;;;;;;;;;-1:-1:-1;;624:2139:97;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;624:2139:97;;;;-1:-1:-1;624:2139:97;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:88;;;;477:31;416:25;;:::i;:::-;624:2139:97;;;;;;;;;;477:31:88;;624:2139:97;;;;;;;;;;;:::i;:::-;477:31:88;624:2139:97;;477:31:88;;;;;;:::i;:::-;518:79;;;624:2139:97;518:79:88;;624:2139:97;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;624:2139:97;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;624:2139:97;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;624:2139:97;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;624:2139:97;;;;;;-1:-1:-1;;624:2139:97;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;624:2139:97;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;624:2139:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;624:2139:97;;;;;;;;;:::i;:::-;;;;;2692:73:105;:38;624:2139:97;;;:::i;:::-;;;;;-1:-1:-1;624:2139:97;2692:16:105;624:2139:97;;;-1:-1:-1;624:2139:97;;;;;;;;;;;;;;;;;2692:38:105;:73;:::i;624:2139:97:-;;;;;3248:62:105;624:2139:97;;;:::i;:::-;3248:62:105;;;;;:::i;:::-;624:2139:97;;;;;;;;;;;;;-1:-1:-1;;624:2139:97;;;;;;;-1:-1:-1;;;;;404:28:82;624:2139:97;;;;;;;;;;-1:-1:-1;;624:2139:97;;;;;;;1271:7:105;624:2139:97;;;;;;;;;-1:-1:-1;;624:2139:97;;;;;;;;-1:-1:-1;;;;;624:2139:97;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;1490:514::-;-1:-1:-1;1490:514:97;;;;;;;;624:2139;;;;;1779:95;;;;;;;;;;;;;624:2139;;;;;;;;;;;;;;;;;1779:95;;;;;:::i;:::-;624:2139;;716:88:95;;624:2139:97;716:88:95;;;;;;;;;783:4;1779:95:97;716:88:95;;624:2139:97;;;;;;;;;;;:::i;:::-;716:88:95;624:2139:97;716:88:95;624:2139:97;;716:88:95;;;;;;;;:::i;:::-;698:107;;;;;857:45;698:107;;:::i;:::-;624:2139:97;;;;857:45:95;;;;;;:::i;:::-;916:8;;912:175;;624:2139:97;;;1705:221;624:2139;;1705:221;;;;;;:::i;:::-;1937:61;;;;1490:514;;;:::o;1937:61::-;1970:17;624:2139;;;;1970:17;624:2139;;1970:17;;;;;624:2139;;;;;;;;;;;;1970:17;;;;;;;;;:::i;912:175:95:-;624:2139:97;;;;944:22:95;;;940:36;;990:87;;624:2139:97;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;624:2139:97;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;624:2139:97;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;2010:751::-;624:2139;;-1:-1:-1;;;2301:28:97;;624:2139;;2010:751;;;;;2301:28;;-1:-1:-1;;;;;624:2139:97;2010:751;;;2301:28;624:2139;2301:28;624:2139;;;;2301:28;;;;;;;;;;;;;;;2010:751;624:2139;2301:28;624:2139;;;;;;;;;2295:47;;624:2139;2295:47;;;;;;;;;;;2301:28;2295:47;;;;;2010:751;-1:-1:-1;624:2139:97;;-1:-1:-1;;;2230:162:97;;-1:-1:-1;;;;;624:2139:97;;;2301:28;2230:162;;624:2139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2249:20;624:2139;2230:162;;;;;;;2301:28;2230:162;;;2010:751;2442:68;;;;;;:::i;:::-;624:2139;;2525:21;;;:59;;;2010:751;2521:234;;2010:751;;;:::o;2521:234::-;2607:137;624:2139;;;;;;:::i;:::-;;;;2635:95;;;624:2139;2607:137;624:2139;;2607:137;;;;;;:::i;2525:59::-;624:2139;;;2550:34;;2525:59;;2230:162;2442:68;2230:162;;;;;;;2301:28;2230:162;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;2295:47::-;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;2301:28;;;;;;;;;;;;;;:::i;:::-;;;;624:2139;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;624:2139:97;;;;:::o;:::-;;;:::o;2505:267:105:-;-1:-1:-1;624:2139:97;;;2692:16:105;624:2139:97;;;;;;;;-1:-1:-1;;;;;624:2139:97;;;;;;;;;2692:73:105;;2505:267;;2692:73;:::i;624:2139:97:-;;;;;;;;-1:-1:-1;624:2139:97;;-1:-1:-1;624:2139:97;;;-1:-1:-1;624:2139:97;:::o;:::-;;;;;;;;;;;;10580:184:99;624:2139:97;;10446:8:73;;;:63;-1:-1:-1;10446:63:73;-1:-1:-1;;;;;624:2139:97;;10726:7:99;624:2139:97;;10736:12:99;:17;:12;;:17;:::i;:::-;624:2139:97;;;;;;10580:184:99;:::o;10726:31::-;;;-1:-1:-1;10580:184:99;:::o;10446:63:73:-;624:2139:97;;;;;;;;;;13267:109:99;-1:-1:-1;13267:109:99;;-1:-1:-1;13267:109:99;;;624:2139:97;;;10446:63:73;;624:2139:97;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;624:2139:97;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;6491:564:105:-;6614:34;6491:564;6614:34;;;;:::i;:::-;-1:-1:-1;624:2139:97;;-1:-1:-1;;;6664:41:105;;-1:-1:-1;;;;;624:2139:97;;;6664:41:105;;;624:2139:97;;;;;6664:41:105;;;624:2139:97;;;6674:13:105;624:2139:97;;6664:41:105;;;;;;;-1:-1:-1;6664:41:105;;;6491:564;6663:42;;6659:90;;2684:111:30;;:::i;:::-;-1:-1:-1;624:2139:97;;-1:-1:-1;;;;;;624:2139:97;-1:-1:-1;;;;;624:2139:97;;;;;6664:41:105;624:2139:97;;;:::i;:::-;;;;;;;;;;;6892:23:105;;;;;;;;;-1:-1:-1;6892:23:105;;;6491:564;624:2139:97;;;6892:37:105;:64;;;6491:564;6888:112;;624:2139:97;7010:38:105;;624:2139:97;;-1:-1:-1;624:2139:97;;-1:-1:-1;;;;624:2139:97;;;;;;-1:-1:-1;;;624:2139:97;;;;;;;;6888:112:105;624:2139:97;;-1:-1:-1;;;6979:10:105;;6664:41;;6979:10;6892:64;-1:-1:-1;624:2139:97;;;;6892:64:105;;:23;;;;;;-1:-1:-1;6892:23:105;;;;;;:::i;:::-;;;;;6659:90;624:2139:97;;-1:-1:-1;;;6728:10:105;;6664:41;;6728:10;6664:41;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;624:2139:97;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;624:2139:97;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;624:2139:97;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;8889:1:99;624:2139:97;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;8406:869:99:-;;;624:2139:97;;8620:15:99;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;624:2139:97;9219:31:99;624:2139:97;9130:48:99;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;9130:48;624:2139:97;:::i;:::-;;9176:1:99;624:2139:97;9232:17:99;624:2139:97;;;;;;;;9232:17:99;;624:2139:97;-1:-1:-1;;;;;624:2139:97;;;;9219:12:99;;:31;:::i;624:2139:97:-;9259:7:99;;:::i;:::-;624:2139:97;;;;9252:15:99;9176:1;;9188:80;;8406:869::o;9010:62::-;8578:11;;-1:-1:-1;8578:11:99;;-1:-1:-1;8578:11:99;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;624:2139:97;;;;;;;8939:60:99;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;624:2139:97;;;;;;8759:49:99;624:2139:97;;;;8753:55:99;624:2139:97;;;8753:55:99;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;624:2139:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;7558:604:99:-;;624:2139:97;;7686:17:99;7682:83;;624:2139:97;7789:27:99;624:2139:97;7789:27:99;624:2139:97;;7789:27:99;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;624:2139:97;;;;;;;;;;;;;;;;7888:22:99;;;7884:77;;7975:21;-1:-1:-1;7975:84:99;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;624:2139:97;8075:24:99;:::o;7975:84::-;624:2139:97;;;8009:16:99;624:2139:97;;8009:16:99;:::i;:::-;624:2139:97;;;8001:24:99;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;624:2139:97;;;;;8029:29:99;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;624:2139:97;7926:24:99;:::o;7682:83::-;7726:28;;;;:::i;624:2139:97:-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;624:2139:97;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;624:2139:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3323:1122:105:-;;624:2139:97;;:::i;:::-;;;;3608:16:105;3604:109;;3323:1122;837:15:75;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;624:2139:97;;;;3778:27:105;;:13;;-1:-1:-1;;;;;624:2139:97;3778:13:105;624:2139:97;;-1:-1:-1;;;;;624:2139:97;;;3778:27:105;624:2139:97;;;;;;;3778:29:105;;;;;;;;;;;;;;;3740:67;3778:29;3759:48;3778:29;-1:-1:-1;3778:29:105;;;3323:1122;3759:48;;:::i;3740:67::-;624:2139:97;;;3740:67:105;;;:107;;;;;3323:1122;3740:197;;;;3323:1122;3723:263;;;624:2139:97;3778:29:105;624:2139:97;;;;;;;;;;4025:25:105;;;;;;;;;4010:143;4025:25;;;-1:-1:-1;4025:25:105;;;3323:1122;4113:30;;;624:2139:97;;;;;;;;;;;4010:143:105;;;;;3778:29;4010:143;;;:::i;:::-;;;-1:-1:-1;;;;;624:2139:97;4010:143:105;;;;;;;4181:257;4010:143;-1:-1:-1;4010:143:105;;;3323:1122;3996:157;;4293:102;3996:157;;4233:162;3996:157;4207:231;3996:157;;2936:28;:47;:38;:28;;;624:2139:97;;2936:16:105;624:2139:97;;;;;;;2936:28:105;624:2139:97;;;;;;;;;;;;;;;;2936:47:105;4351:43;;;4293:102;;:::i;:::-;4233:162;;:::i;:::-;3463:5:70;;;;3066;;624:2139:97;3060:42:70;3371:111;;4181:257:105;3323:1122;:::o;4010:143::-;4233:162;4010:143;;;4207:231;4010:143;;;;4293:102;4010:143;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;4025:25;;;;;;;;;;;;;;:::i;:::-;;;;3723:263;3962:13;;;;;;-1:-1:-1;3962:13:105;-1:-1:-1;3962:13:105;:::o;3740:197::-;3886:41;;3867:70;3886:51;;:41;;;624:2139:97;;3886:29:105;624:2139:97;;;;;;;3886:51:105;624:2139:97;;;;;3867:70:105;-1:-1:-1;3740:197:105;;;:107;837:15:75;;3811:36:105;819:34:75;837:15;819:34;:::i;3811:36:105:-;;;;3740:107;;;3778:29;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;3604:109;3662:40;;;;;;;;;;;;:::i;:::-;3604:109;;;;6893:76:26;;;:::i;:::-;;;:::i;:::-;1949:1:30;2499:73;1949:1;6893:76:26:o;624:2139:97:-;;;;;;;;;;-1:-1:-1;;;;;624:2139:97;;;;;;;-1:-1:-1;624:2139:97;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;18080:5181:70;18246:1;18241:6;;;18237:53;;18246:1;19217:14;-1:-1:-1;;;19278:16:70;;;19274:92;;18080:5181;22827:18;22717;22607;22498;22387;22278;23216:28;19383:15;19898:6;19383:15;-1:-1:-1;;;23237:6:70;19383:15;;;19379:90;;18080:5181;19493:7;19486:15;;;19482:90;;18080:5181;19596:7;19589:15;;;19585:89;;18080:5181;19698:6;19691:14;;;19687:87;;18080:5181;19798:6;19791:14;;;19787:87;;18080:5181;19891:14;;19887:61;;18080:5181;20374:1;624:2139:97;18246:1:70;624:2139:97;22284:6:70;;;;:::i;:::-;624:2139:97;;;;;22278:18:70;22393:6;;;;:::i;22387:18::-;22504:6;;;;:::i;22498:18::-;22613:6;;;;:::i;22607:18::-;22723:6;;;;:::i;22717:18::-;22833:6;;;;:::i;22827:18::-;23237:6;;;:::i;:::-;23232:11;;;624:2139:97;23216:28:70;624:2139:97;;18080:5181:70;:::o;19887:61::-;18246:1;624:2139:97;19887:61:70;;19787:87;624:2139:97;;;;;19787:87:70;;;19687;624:2139:97;;;;;19687:87:70;;;19585:89;624:2139:97;;;;;19585:89:70;;;19482:90;624:2139:97;;;;;19482:90:70;;;19379;624:2139:97;;;;;19379:90:70;;;19274:92;-1:-1:-1;;;;624:2139:97;-1:-1:-1;624:2139:97;;;;19274:92:70;;12497:447:99;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;3721:5:70;;;;;;624:2139:97;;3731:5:70;;;624:2139:97;;;;;;;;;13267:109:99;-1:-1:-1;13267:109:99;624:2139:97;13267:109:99;;;-1:-1:-1;13267:109:99;;624:2139:97;;;;;-1:-1:-1;12771:136:99;624:2139:97;;;12830:10:99;;12771:136;;12687:230;;;;12771:136;624:2139:97;;;;;;;;;;;12771:136:99;;;6999:207;;624:2139:97;;9737:15:73;-1:-1:-1;9762:18:73;9795:7;9801:1;9795:7;;9791:234;;6999:207:99;10049:53:73;;;;;:::i;:::-;10120:8;;;:63;-1:-1:-1;10120:63:73;;-1:-1:-1;;;;;624:2139:97;;7168:7:99;624:2139:97;;;7178:12:99;;:17;:12;;:17;:::i;10120:63:73:-;10135:41;10168:7;10135:48;10168:7;;:::i;:::-;10135:41;13267:109:99;;;;;;13089:293;;10135:41:73;624:2139:97;;;;;10135:48:73;10120:63;;;9791:234;9838:14;;;;;:::i;:::-;624:2139:97;;;;;;;10049:53:73;13267:109:99;;-1:-1:-1;13267:109:99;624:2139:97;13267:109:99;;;-1:-1:-1;13267:109:99;;624:2139:97;;;;;9870:48:73;9866:149;624:2139:97;;;9938:10:73;9866:149;9791:234;;9866:149;9993:7;;;;;;:::i;:::-;9866:149;9791:234;;624:2139:97;;;;;;;:::i;:::-;-1:-1:-1;624:2139:97;;;;;;;:::o;11486:272:99:-;;624:2139:97;11452:22:73;11718:31:99;11486:272;624:2139:97;;:::i;:::-;;;;:::i;:::-;;11452:22:73;;:::i;:::-;624:2139:97;;:::i;:::-;;11718:12:99;624:2139:97;;;;;11731:17:99;624:2139:97;;;;;11731:17:99;;624:2139:97;;11718:12:99;;:31;:::i;:::-;624:2139:97;;;;;;;;;:::i;:::-;;;;;;11731:17:99;11672:79;;624:2139:97;11486:272:99;:::o;7084:141:26:-;624:2139:97;-1:-1:-1;;;;;;;;;;;624:2139:97;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;624:2139:97;;-1:-1:-1;;;7191:17:26;;;;;14296:213:71;624:2139:97;14374:24:71;;;;14370:103;;624:2139:97;14296:213:71;:::o;14370:103::-;624:2139:97;;;;14421:41:71;;;;;;14452:2;14421:41;;;624:2139:97;;;;;14421:41:71","linkReferences":{},"immutableReferences":{"60120":[{"start":715,"length":32}],"60123":[{"start":2308,"length":32}],"64680":[{"start":1525,"length":32}],"65023":[{"start":1686,"length":32},{"start":3114,"length":32}],"65025":[{"start":1367,"length":32}],"65027":[{"start":1435,"length":32}],"67904":[{"start":361,"length":32},{"start":3711,"length":32}],"67907":[{"start":647,"length":32}]}},"methodIdentifiers":{"BASE_DELEGATOR_HINTS()":"79d89614","BURNER_GAS_LIMIT()":"d5c24e1a","BURNER_RESERVE()":"2964f8dc","FACTORY()":"2dd31000","NETWORK_MIDDLEWARE_SERVICE()":"2c9d45b3","SLASHER_HINTS()":"4eb5a242","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VETO_SLASHER_HINTS()":"6565b7db","cumulativeSlash(bytes32,address)":"1a2be2c4","cumulativeSlashAt(bytes32,address,uint48,bytes)":"aa8e6489","cumulativeSlashHint(address,bytes32,address,uint48)":"4a719655","cumulativeSlashHintInternal(bytes32,address,uint48)":"77028046","initialize(bytes)":"439fab91","isBurnerHook()":"34d098ea","latestSlashedCaptureTimestamp(bytes32,address)":"267de1f3","slashableStake(bytes32,address,uint48,bytes)":"aab3595f","slashableStakeHints(address,bytes32,address,uint48)":"4ea2e926","staticDelegateCall(address,bytes)":"9f86fd85","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseDelegatorHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBurnerGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetworkMiddleware\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_MIDDLEWARE_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VETO_SLASHER_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"cumulativeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"cumulativeSlashAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"cumulativeSlashHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"cumulativeSlashHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isBurnerHook\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"latestSlashedCaptureTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"value\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slashableStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"slashableStakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"cumulativeSlash(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"cumulative slash amount\"}},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the cumulative slash amount until (inclusively)\"},\"returns\":{\"_0\":\"cumulative slash amount until the given timestamp (inclusively)\"}},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"slashableStake(bytes32,address,uint48,bytes)\":{\"params\":{\"captureTimestamp\":\"time point to get the stake amount at\",\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"amount\":\"slashable amount of the stake\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"BURNER_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the burner.\"},\"BURNER_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the burner's execution.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"NETWORK_MIDDLEWARE_SERVICE()\":{\"notice\":\"Get the network middleware service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"cumulativeSlash(bytes32,address)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork.\"},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"isBurnerHook()\":{\"notice\":\"Get if the burner is needed to be called on a slashing.\"},\"latestSlashedCaptureTimestamp(bytes32,address)\":{\"notice\":\"Get the latest capture timestamp that was slashed on a subnetwork.\"},\"slashableStake(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a slashable amount of a stake got at a given capture timestamp using hints.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/SlasherHints.sol\":\"BaseSlasherHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf\",\"dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x4aaaf1c0737dd16e81f0d2b9833c549747a5ede6873bf1444bc72aa572d03e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eada27d7668eebaea16c3b890aa1b38ffc53965292e26c96f7c44834623f4710\",\"dweb:/ipfs/QmVSWuLtxyCqNbLyY89ptxkvsk4CLLKDQYigEne5Qj8k1L\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a\",\"dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c\",\"dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e\",\"dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0xbdc3bb48ccedb818cd75a6d74a16df55a822e9f6d3cc54c59f576f10aab67b5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2284f25f2478f419d7781573b17a89d0e7c5589a865d55e2d6ed5163aee23aa8\",\"dweb:/ipfs/QmNsr2625APBQiNKpYnX5VcSnYgfUHR9Uzzp9pRXjoDqK7\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44\",\"dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0xd71e9102e99a25ee8b5435779f011a24558f56074aa2b16c18b623b57754ae97\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://29db5552e55dab51bea1ae40ba00ca674cb50fcb10997999a72a94527b6eb591\",\"dweb:/ipfs/QmQrYyTPx73ubNxMhYWJCkprCVFVtuTFcKaabYiKTe71tY\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/SlasherHints.sol\":{\"keccak256\":\"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595\",\"dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/slasher/BaseSlasher.sol\":{\"keccak256\":\"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06\",\"dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF\"]},\"src/contracts/slasher/Slasher.sol\":{\"keccak256\":\"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61\",\"dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3\"]},\"src/contracts/slasher/VetoSlasher.sol\":{\"keccak256\":\"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429\",\"dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/slasher/IBurner.sol\":{\"keccak256\":\"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447\",\"dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW\"]},\"src/interfaces/slasher/ISlasher.sol\":{\"keccak256\":\"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1\",\"dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ\"]},\"src/interfaces/slasher/IVetoSlasher.sol\":{\"keccak256\":\"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508\",\"dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseDelegatorHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientBurnerGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NoBurner"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetworkMiddleware"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VETO_SLASHER_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"cumulativeSlash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"cumulativeSlashAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"cumulativeSlashHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"cumulativeSlashHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isBurnerHook","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"latestSlashedCaptureTimestamp","outputs":[{"internalType":"uint48","name":"value","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"slashableStake","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"slashableStakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"cumulativeSlash(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"cumulative slash amount"}},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the cumulative slash amount until (inclusively)"},"returns":{"_0":"cumulative slash amount until the given timestamp (inclusively)"}},"initialize(bytes)":{"params":{"data":"some data to use"}},"slashableStake(bytes32,address,uint48,bytes)":{"params":{"captureTimestamp":"time point to get the stake amount at","hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"amount":"slashable amount of the stake"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}}},"version":1},"userdoc":{"kind":"user","methods":{"BURNER_GAS_LIMIT()":{"notice":"Get a gas limit for the burner."},"BURNER_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the burner's execution."},"FACTORY()":{"notice":"Get the factory's address."},"NETWORK_MIDDLEWARE_SERVICE()":{"notice":"Get the network middleware service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"cumulativeSlash(bytes32,address)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork."},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"isBurnerHook()":{"notice":"Get if the burner is needed to be called on a slashing."},"latestSlashedCaptureTimestamp(bytes32,address)":{"notice":"Get the latest capture timestamp that was slashed on a subnetwork."},"slashableStake(bytes32,address,uint48,bytes)":{"notice":"Get a slashable amount of a stake got at a given capture timestamp using hints."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/SlasherHints.sol":"BaseSlasherHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866","urls":["bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf","dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab","urls":["bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89","dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606","urls":["bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1","dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x4aaaf1c0737dd16e81f0d2b9833c549747a5ede6873bf1444bc72aa572d03e98","urls":["bzz-raw://eada27d7668eebaea16c3b890aa1b38ffc53965292e26c96f7c44834623f4710","dweb:/ipfs/QmVSWuLtxyCqNbLyY89ptxkvsk4CLLKDQYigEne5Qj8k1L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol":{"keccak256":"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549","urls":["bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a","dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed","urls":["bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0","dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d","urls":["bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c","dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575","urls":["bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e","dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0xbdc3bb48ccedb818cd75a6d74a16df55a822e9f6d3cc54c59f576f10aab67b5f","urls":["bzz-raw://2284f25f2478f419d7781573b17a89d0e7c5589a865d55e2d6ed5163aee23aa8","dweb:/ipfs/QmNsr2625APBQiNKpYnX5VcSnYgfUHR9Uzzp9pRXjoDqK7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f","urls":["bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44","dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0xd71e9102e99a25ee8b5435779f011a24558f56074aa2b16c18b623b57754ae97","urls":["bzz-raw://29db5552e55dab51bea1ae40ba00ca674cb50fcb10997999a72a94527b6eb591","dweb:/ipfs/QmQrYyTPx73ubNxMhYWJCkprCVFVtuTFcKaabYiKTe71tY"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/SlasherHints.sol":{"keccak256":"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f","urls":["bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595","dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/slasher/BaseSlasher.sol":{"keccak256":"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6","urls":["bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06","dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF"],"license":"BUSL-1.1"},"src/contracts/slasher/Slasher.sol":{"keccak256":"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f","urls":["bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61","dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3"],"license":"BUSL-1.1"},"src/contracts/slasher/VetoSlasher.sol":{"keccak256":"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897","urls":["bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429","dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/slasher/IBurner.sol":{"keccak256":"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b","urls":["bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447","dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW"],"license":"MIT"},"src/interfaces/slasher/ISlasher.sol":{"keccak256":"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625","urls":["bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1","dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ"],"license":"MIT"},"src/interfaces/slasher/IVetoSlasher.sol":{"keccak256":"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9","urls":["bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508","dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":97} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"baseDelegatorHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_DELEGATOR_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"BURNER_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BURNER_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VETO_SLASHER_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashHint","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isBurnerHook","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestSlashedCaptureTimestamp","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"slashableStake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slashableStakeHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientBurnerGas","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NoBurner","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetworkMiddleware","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x610180346101e757601f61728b38819003918201601f19168301926001600160401b03929091838511838610176101825781602092849260409788528339810103126101e75751906001600160a01b039081831683036101e757306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460ff81871c166101d65780838080931603610196575b5050505f60a0525f60c0525f60e052610100935f855261012093845280516120108082019082821085831117610182576020918391611b7983393081520301905ff09182156101785783610140931683528151906137028083019183831090831117610182576020918391613b8983393081520301905ff09283156101785761016093168352519261198d94856101ec8639608051856105f5015260a051856102cb015260c05185610904015260e0518581816101690152610e7f015251846102870152518381816106960152610c2a015251826105570152518161059b0152f35b50513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03191617905583518181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8181610096565b855163f92ee8a960e01b8152600490fd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c8063103f2907146101545780631a2be2c41461014f578063267de1f31461014a5780632964f8dc146101455780632c9d45b3146101405780632dd310001461013b57806334d098ea14610136578063439fab91146101315780634a7196551461012c5780634ea2e926146101275780634eb5a242146101225780636565b7db1461011d578063770280461461011857806379d89614146101135780639f86fd851461010e578063aa8e648914610109578063aab3595f14610104578063bb24fe8a146100ff578063d5c24e1a146100fa5763fbfa77cf146100f5575f80fd5b610945565b610928565b6108e5565b6108c0565b610882565b6106c5565b610681565b6105ca565b610586565b610542565b610525565b6104f0565b61034b565b6102fa565b6102b6565b610272565b610256565b610201565b6101ad565b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b6001600160a01b0381160361019857565b346101985760403660031901126101985760206101f96101f46024356101d28161019c565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b610da5565b604051908152f35b3461019857604036600319011261019857602065ffffffffffff61024c60243561022a8161019c565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b34610198575f366003190112610198576020604051614e208152f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f36600319011261019857602060ff5f5460a01c166040519015158152f35b9181601f84011215610198578235916001600160401b038311610198576020838186019501011161019857565b34610198576020366003190112610198576001600160401b036004358181116101985761037c90369060040161031e565b5f80516020611938833981519152549260ff8460401c161593168015908161047b575b6001149081610471575b159081610468575b50610456575f80516020611938833981519152805467ffffffffffffffff191660011790556103e4918361043257610e47565b6103ea57005b5f80516020611938833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611938833981519152805460ff60401b1916600160401b179055610e47565b60405163f92ee8a960e01b8152600490fd5b9050155f6103b1565b303b1591506103a9565b84915061039f565b65ffffffffffff81160361019857565b6080906003190112610198576004356104ab8161019c565b90602435906044356104bc8161019c565b906064356104c981610483565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346101985761052161050d61050436610493565b929190916109ab565b6040519182916020835260208301906104cc565b0390f35b346101985761052161050d61053936610493565b92919091610b76565b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198576060366003190112610198576024356105e78161019c565b6044356105f381610483565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361066f5761064d610652926004355f52600260205260405f209060018060a01b03165f5260205260405f2090565b611045565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198576040366003190112610198576004356106e28161019c565b6024356001600160401b038111610198575f916107048392369060040161031e565b90816040519283928337810184815203915af4610751610722610d21565b916107436040519384921515602084015260408084015260608301906104cc565b03601f1981018352826107a8565b805190602001fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761078857604052565b610759565b60a081019081106001600160401b0382111761078857604052565b90601f801991011681019081106001600160401b0382111761078857604052565b604051906107d68261076d565b565b6001600160401b03811161078857601f01601f191660200190565b81601f820112156101985780359061080a826107d8565b9261081860405194856107a8565b8284526020838301011161019857815f926020809301838601378301015290565b90608060031983011261019857600435916024356108568161019c565b9160443561086381610483565b91606435906001600160401b038211610198576104c9916004016107f3565b346101985760206101f96108bb61089836610839565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b611173565b346101985760206108dc6108d336610839565b92919091611342565b50604051908152f35b34610198575f3660031901126101985760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610198575f366003190112610198576020604051620249f08152f35b34610198575f366003190112610198575f546040516001600160a01b039091168152602090f35b5190811515820361019857565b519063ffffffff8216820361019857565b9190826040910312610198576104c960206109a48461096c565b9301610979565b5f809195949593929365ffffffffffff60609760405195602097633b81402360e11b89890152602488015260018060a01b03166044870152166064850152606484526109f68461078d565b6040519384610a2387820192639f86fd8560e01b84523060248401526040604484015260648301906104cc565b0394610a37601f19968781018352826107a8565b51915afa50610a55610a47610d21565b838082518301019101610fb0565b9015610aa857808380610a6d9351830101910161098a565b9290610a7857505050565b6104c992939450610a9c604051948592830191909163ffffffff6020820193169052565b039081018352826107a8565b809150519182156101985701fd5b9081602091031261019857516104c98161019c565b6040513d5f823e3d90fd5b81601f8201121561019857805190610aed826107d8565b92610afb60405194856107a8565b8284526020838301011161019857815f9260208093018386015e8301015290565b906020828203126101985781516001600160401b038111610198576104c99201610ad6565b906104c991602081526020610b61835160408385015260608401906104cc565b920151906040601f19828503019101526104cc565b60405163fbfa77cf60e01b815260609594919391926020926001600160a01b03929091908481600481878b165afa908115610cd257849186915f91610d04575b50600460405180948193630ce9b79360e41b8352165afa8015610cd25786948385925f948591610cd7575b506040516304bb92e160e31b81526001600160a01b039182166004820152602481019290925292909216604483015265ffffffffffff97909716606482015295869060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa948515610cd2575f95610caa575b50610c669394956109ab565b825115801590610ca0575b610c7a57505050565b6104c992939450610c896107c9565b938452818401526107436040519384928301610b41565b5080511515610c71565b610c66949550610ccb903d805f833e610cc381836107a8565b810190610b1c565b9493610c5a565b610acb565b610cf79150893d8b11610cfd575b610cef81836107a8565b810190610ab6565b5f610be1565b503d610ce5565b610d1b9150823d8411610cfd57610cef81836107a8565b5f610bb6565b3d15610d4b573d90610d32826107d8565b91610d4060405193846107a8565b82523d5f602084013e565b606090565b5f9081526002602090815260408083206001600160a01b039094168352929052206104c9929190611173565b8054821015610d91575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b805480610dda57505f5b6001600160d01b03811615610dd4576001610dca9201610d7c565b90549060031b1c90565b50505f90565b5f19908082810111610df857825f5260205f2001015460301c610daf565b610fe4565b919091604081840312610198578035610e158161019c565b9260208201356001600160401b038111610198576104c992016107f3565b90816020910312610198576104c99061096c565b610e5391810190610dfd565b506040516302910f8b60e31b81526001600160a01b0391821660048201819052919060209081816024817f000000000000000000000000000000000000000000000000000000000000000087165afa908115610cd2575f91610f83575b5015610f7157610ebe61159c565b5f80546001600160a01b0319166001600160a01b038516179055600481610ee36115d2565b94604051928380926313c085b760e11b82525afa918215610cd2575f92610f54575b5050161580610f4a575b610f3857516107d69015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b5080511515610f0f565b610f6a9250803d10610cfd57610cef81836107a8565b5f80610f05565b6040516362df054560e01b8152600490fd5b610fa39150823d8411610fa9575b610f9b81836107a8565b810190610e33565b5f610eb0565b503d610f91565b91909160408184031261019857610fc68161096c565b9260208201516001600160401b038111610198576104c99201610ad6565b634e487b7160e01b5f52601160045260245ffd5b5f19810191908211610df857565b91908203918211610df857565b9060018201809211610df857565b9060405161102e8161076d565b915465ffffffffffff8116835260301c6020830152565b91908254905f8291600584116110e3575b61106193508561173d565b9081156110d7576110d06110c76110c1610dca61109361108e61108388610ff8565b895f5260205f200190565b611021565b9660016110ba60206110ab8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101610d7c565b93610ff8565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926110ee81611612565b8103908111610df85761106193865f526111226111178360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff85161015611138575091611056565b92915061114490611013565b90611056565b90816020910312610198576104c990610979565b90600163ffffffff80931601918211610df857565b91805115611241578060208061118e9351830101910161114a565b91611199838261186f565b926111aa845165ffffffffffff1690565b9065ffffffffffff808516921682811461123557821191826111e0575b50506111d7576104c9925061179f565b50506020015190565b9091506111ed8354610ff8565b63ffffffff831614918215611206575b50505f806111c7565b61122d91925061122161121b6111179261115e565b8561186f565b5165ffffffffffff1690565b115f806111fd565b50505050506020015190565b506104c99161179f565b604051906112588261076d565b60606020838281520152565b906020828203126101985781516001600160401b0392838211610198570190604082820312610198576040519261129a8461076d565b825181811161019857826112af918501610ad6565b84526020830151908111610198576112c79201610ad6565b602082015290565b9081602091031261019857516104c981610483565b65ffffffffffff9182169082160391908211610df857565b90816020910312610198575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526104c9929101906104cc565b9261134b61124b565b90805180611582575b505061135f42611905565b5f5490949061138490611378906001600160a01b031681565b6001600160a01b031690565b93604051956327f843b560e11b875260209687816004818a5afa8015610cd2576113b992611117925f92611553575b506112e4565b65ffffffffffff821690811090811561153c575b811561150b575b506114ff578560049560405196878092630ce9b79360e41b82525afa948515610cd2576114269587915f916114e2575b50845190604051808099819463e02f693760e01b8352878b8a6004860161130b565b03916001600160a01b03165afa938415610cd25761149e955f956114a1575b509261148d85936114939361148d96869a6114846101f48361146f875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610d50565b90611006565b818082109118021890565b91565b61149392955061148d9491936114cf61148d928a3d8c116114db575b6114c781836107a8565b8101906112fc565b96935093919450611445565b503d6114bd565b6114f99150823d8411610cfd57610cef81836107a8565b5f611404565b5050505050505f905f90565b90506115356111176115298761146f875f52600160205260405f2090565b5465ffffffffffff1690565b115f6113d4565b905061154a61111742611905565b811015906113cd565b6115749192508a3d8c1161157b575b61156c81836107a8565b8101906112cf565b905f6113b3565b503d611562565b6115959250602080918301019101611264565b5f80611354565b6115a46118d7565b6115ac6118d7565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b60405190602082018281106001600160401b03821117610788576040525f8252565b81156115fe570490565b634e487b7160e01b5f52601260045260245ffd5b60018111156104c957600181600160801b81101561172b575b6116d36116c96116bf6116b56116ab6116a16116df97600488600160401b6116da9a101561171e575b640100000000811015611711575b62010000811015611704575b6101008110156116f8575b60108110156116ec575b10156116e4575b60030260011c61169a818b6115f4565b0160011c90565b61169a818a6115f4565b61169a81896115f4565b61169a81886115f4565b61169a81876115f4565b61169a81866115f4565b80936115f4565b821190565b900390565b60011b61168a565b811c9160021b91611683565b60081c91811b91611679565b60101c9160081b9161166e565b60201c9160101b91611662565b60401c9160201b91611654565b50600160401b9050608082901c61162b565b91905b83821061174d5750505090565b909192808316906001818518811c8301809311610df857855f5265ffffffffffff808460205f20015416908516105f1461178c575050925b9190611740565b909493508101809111610df85791611785565b908154905f829160058411611809575b6117ba93508461173d565b806117e257505f905b6001600160d01b03821615610dd4576104c9916001610dca9201610d7c565b6117fc6117f161180392610ff8565b835f5260205f200190565b5460301c90565b906117c3565b919261181481611612565b8103908111610df8576117ba93855f5265ffffffffffff808360205f20015416908516105f146118455750916117af565b92915061185190611013565b906117af565b604051906118648261076d565b5f6020838281520152565b906118986118926118b992611882611857565b5061188b611857565b5084610d7c565b50611021565b91600165ffffffffffff845116936020828060d01b03910151169101610d7c565b905490604051926118c98461076d565b835260031b1c602082015290565b60ff5f805160206119388339815191525460401c16156118f357565b604051631afcd79f60e31b8152600490fd5b65ffffffffffff90818111611918571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fdfef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220f277a4f1d79c926d3cf47f1d1c69c51a336ff12303565531614d4d54627d5eb964736f6c634300081900336101403461015d576001600160401b0390601f61201038819003918201601f1916830191848311848410176101615780849260209460405283398101031261015d5751906001600160a01b038216820361015d57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c1661014b578080831603610106575b835f60a0525f60c0525f60e052610100905f825261012090815260405190611e9a9283610176843960805183505060a051836104f2015260c0518381816109490152611373015260e05183818161031d01526116a301525182818161021c01526104ae0152518181816106920152610d390152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8080610091565b60405163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c8063021a815614610124578063103f29071461011f5780631a2be2c41461011a578063238ab85f14610115578063267de1f3146101105780632964f8dc1461010b5780632c9d45b3146101065780632dd310001461010157806334d098ea146100fc578063439fab91146100f7578063457821b7146100f25780639f86fd85146100ed578063aa8e6489146100e8578063aab3595f146100e3578063bb24fe8a146100de578063d5c24e1a146100d95763fbfa77cf146100d4575f80fd5b61098a565b61096d565b61092a565b610905565b6108c7565b6106c1565b61067d565b610545565b610521565b6104dd565b610499565b61047d565b610428565b6103c4565b61034c565b610308565b61017b565b6001600160a01b0381160361013a57565b5f80fd5b65ffffffffffff81160361013a57565b9181601f8401121561013a578235916001600160401b03831161013a576020838186019501011161013a57565b3461013a5760a036600319011261013a5760043560243561019b81610129565b6064356101a78161013e565b6084356001600160401b03811161013a576101c690369060040161014e565b917f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0060028154146102ec5760029055604051635daf681960e11b8152606086901c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa9182156102e7575f926102b6575b50339116036102a4576102a0946102679460443591610a63565b61029060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6040519081529081906020820190565b0390f35b60405163227bf64d60e01b8152600490fd5b6102d991925060203d6020116102e0575b6102d181836107dd565b810190610de5565b905f61024d565b503d6102c7565b610a27565b604051633ee5aeb560e01b8152600490fd5b5f91031261013a57565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a57604036600319011261013a57602061039861039360243561037181610129565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6115c2565b604051908152f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461013a5760c036600319011261013a576102a06104146004356103e781610129565b6103f2602435610129565b6064356103fe81610129565b60a4359161040b8361013e565b60443590610ced565b6040519182916020835260208301906103a0565b3461013a57604036600319011261013a57602065ffffffffffff61047360243561045181610129565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b3461013a575f36600319011261013a576020604051614e208152f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a57602060ff5f5460a01c166040519015158152f35b3461013a57602036600319011261013a576001600160401b0360043581811161013a5761057690369060040161014e565b5f80516020611e45833981519152549260ff8460401c1615931680159081610675575b600114908161066b575b159081610662575b50610650575f80516020611e45833981519152805467ffffffffffffffff191660011790556105de918361062c5761166c565b6105e457005b5f80516020611e45833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611e45833981519152805460ff60401b1916600160401b17905561166c565b60405163f92ee8a960e01b8152600490fd5b9050155f6105ab565b303b1591506105a3565b849150610599565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a5760408060031936011261013a576004356106df81610129565b602435906001600160401b03821161013a575f809161070561076994369060040161014e565b908187519283928337810184815203915af43d156107715761075b3d61072a8161081a565b90610737865192836107dd565b81523d5f602083013e5b8451948593151560208501528084015260608301906103a0565b03601f1981018352826107dd565b805190602001fd5b61075b6060610741565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176107aa57604052565b61077b565b604081019081106001600160401b038211176107aa57604052565b6001600160401b0381116107aa57604052565b90601f801991011681019081106001600160401b038211176107aa57604052565b6040519061080b826107af565b565b6040519061080b8261078f565b6001600160401b0381116107aa57601f01601f191660200190565b81601f8201121561013a5780359061084c8261081a565b9261085a60405194856107dd565b8284526020838301011161013a57815f926020809301838601378301015290565b90608060031983011261013a576004359160243561089881610129565b916044356108a58161013e565b91606435906001600160401b03821161013a576108c491600401610835565b90565b3461013a5760206103986109006108dd3661087b565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b611806565b3461013a5760206109216109183661087b565b92919091610edf565b50604051908152f35b3461013a575f36600319011261013a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461013a575f36600319011261013a576020604051620249f08152f35b3461013a575f36600319011261013a575f546040516001600160a01b039091168152602090f35b604051906109be8261078f565b60608252565b9060208282031261013a5781356001600160401b039283821161013a57019060208282031261013a57604051926109fa8461078f565b823590811161013a57610a0d9201610835565b815290565b9081602091031261013a57516108c48161013e565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9182169082160391908211610a5e57565b610a32565b92939594919095610a726109b1565b9280610c53575b5050610a84426118de565b5f54600490602090610aac90610aa0906001600160a01b031681565b6001600160a01b031690565b6040516327f843b560e11b815292839182905afa80156102e757610ae692610adb925f92610c22575b50610a46565b65ffffffffffff1690565b65ffffffffffff8516908110908115610c0c575b50610bfa57610b0f610b1e9251858886610edf565b92909180831890831102821890565b958615610be857610ba361075b610b9a610be3947fe0cbbe1f1e6fd806ca87036fafcebaf7ab5247474a3b20e1c37bb50122c3a88496610b5f8a878b611115565b610b6a8c878b6111a3565b610b726107fe565b9182526020820152604051928391602083019190916020806040830194805184520151910152565b8689848861130f565b610bad8588611418565b610bb98588838761149d565b6040805188815265ffffffffffff90961660208701526001600160a01b0390911694918291820190565b0390a3565b60405163167f871760e31b8152600490fd5b604051631357ac9160e11b8152600490fd5b9050610c1a610adb426118de565b11155f610afa565b610c4591925060203d602011610c4c575b610c3d81836107dd565b810190610a12565b905f610ad5565b503d610c33565b610c619293508101906109c4565b905f80610a79565b81601f8201121561013a57805190610c808261081a565b92610c8e60405194856107dd565b8284526020838301011161013a57815f9260208093018386015e8301015290565b9060208282031261013a5781516001600160401b03811161013a576108c49201610c69565b60406108c49260208352519160208082015201906103a0565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252918216604482015265ffffffffffff909216606483015260609291905f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156102e7575f91610d97575b508051610d735750565b61075b9192506108c490610d8561080d565b90815260405192839160208301610cd4565b610db391503d805f833e610dab81836107dd565b810190610caf565b5f610d69565b5f9081526002602090815260408083206001600160a01b039094168352929052206108c4929190611806565b9081602091031261013a57516108c481610129565b60405190610e07826107af565b60606020838281520152565b9060208282031261013a5781516001600160401b039283821161013a57019060408282031261013a5760405192610e49846107af565b825181811161013a5782610e5e918501610c69565b8452602083015190811161013a57610e769201610c69565b602082015290565b9081602091031261013a575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526108c4929101906103a0565b5f19810191908211610a5e57565b91908203918211610a5e57565b92610ee8610dfa565b908051806110fb575b5050610efc426118de565b5f54909490610f1590610aa0906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa80156102e757610f4992610adb925f926110e35750610a46565b65ffffffffffff82169081109081156110cc575b811561109b575b5061108f578560049560405196878092630ce9b79360e41b82525afa9485156102e757610fb69587915f91611072575b50845190604051808099819463e02f693760e01b8352878b8a60048601610e8d565b03916001600160a01b03165afa9384156102e75761102e955f95611031575b509261101d85936110239361101d96869a61101461039383610fff875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610db9565b90610ed2565b818082109118021890565b91565b61102392955061101d94919361105f61101d928a3d8c1161106b575b61105781836107dd565b810190610e7e565b96935093919450610fd5565b503d61104d565b6110899150823d84116102e0576102d181836107dd565b5f610f94565b5050505050505f905f90565b90506110c5610adb6110b987610fff875f52600160205260405f2090565b5465ffffffffffff1690565b115f610f64565b90506110da610adb426118de565b81101590610f5d565b610c459192508a3d8c11610c4c57610c3d81836107dd565b61110e9250602080918301019101610e13565b5f80610ef1565b919091805f52600160205265ffffffffffff806111458560405f209060018060a01b03165f5260205260405f2090565b54169083161161115457505050565b61080b9261117c915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9060018201809211610a5e57565b9190825f5260026020526111fb6103936111d08360405f209060018060a01b03165f5260205260405f2090565b926111da426118de565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211610a5e57600181019081541561129f575b61121b81611b1c565b50949083549561122a846115c2565b508161128a575b50156112695750505f198301928311610a5e5761080b9261125191611599565b90919082549060031b91821b915f19901b1916179055565b61080b94611283926001600160d01b039091169190611bdd565b505061193d565b65ffffffffffff83811691161490505f611231565b6112a882611910565b611212565b606060206108c4938184526001600160401b038151168285015201519160408082015201906103a0565b919360a0936108c4969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906103a0565b9293906004602061132c610aa0610aa05f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa9081156102e75761075b916113aa915f916113f9575b506001600160a01b0316936113696107fe565b6001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152906020820152604051928391602083016112ad565b823b1561013a575f946113d586926040519889978896879563724ab0f760e11b8752600487016112d7565b03925af180156102e7576113e65750565b806113f361080b926107ca565b806102fe565b611412915060203d6020116102e0576102d181836107dd565b5f611356565b5f8054604051631c9e38c760e21b8152600481019390935265ffffffffffff9390931660248301529091602091839160449183916001600160a01b03165af180156102e7576114645750565b61147c9060203d60201161106b5761105781836107dd565b50565b8115611489570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c166114b5575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa9182156102e7575f92611572575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff909116608483015261153f8260a481015b03601f1981018452836107dd565b6202a15c5a10611560575f928380935192620249f0f1505f808080806114ae565b604051632153f33560e21b8152600490fd5b61153f92506115926115319160203d6020116102e0576102d181836107dd565b92506114e6565b80548210156115ae575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b8054806115f757505f5b6001600160d01b038116156115f15760016115e79201611599565b90549060031b1c90565b50505f90565b5f19908082810111610a5e57825f5260205f2001015460301c6115cc565b91909160408184031261013a57803561162d81610129565b9260208201356001600160401b03811161013a576108c49201610835565b5190811515820361013a57565b9081602091031261013a576108c49061164b565b61167891810190611615565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156102e7575f916117a8575b501561179657816117086004926116e9611960565b5f80546001600160a01b0319166001600160a01b038916179055611996565b94604051928380926313c085b760e11b82525afa9182156102e7575f92611779575b505016158061176f575b61175d575161080b9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b5080511515611734565b61178f9250803d106102e0576102d181836107dd565b5f8061172a565b6040516362df054560e01b8152600490fd5b6117c89150833d85116117ce575b6117c081836107dd565b810190611658565b5f6116d4565b503d6117b6565b9081602091031261013a575163ffffffff8116810361013a5790565b90600163ffffffff80931601918211610a5e57565b918051156118d45780602080611821935183010191016117d5565b9161182c8382611aae565b9261183d845165ffffffffffff1690565b9065ffffffffffff80851692168281146118c85782119182611873575b505061186a576108c492506119de565b50506020015190565b9091506118808354610ec4565b63ffffffff831614918215611899575b50505f8061185a565b6118c09192506118b46118ae610adb926117f1565b85611aae565b5165ffffffffffff1690565b115f80611890565b50505050506020015190565b506108c4916119de565b65ffffffffffff908181116118f1571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b8054600160401b8110156107aa5761192d91600182018155611599565b8154905f199060031b1b19169055565b90815491600160401b8310156107aa578261125191600161080b95018155611599565b611968611b55565b611970611b55565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f6040516119a38161078f565b5260208180518101031261013a576020906040516119c08161078f565b6119d86040519384936119d28561078f565b0161164b565b82525290565b908154905f829160058411611a48575b6119f9935084611de5565b80611a2157505f905b6001600160d01b038216156115f1576108c49160016115e79201611599565b611a3b611a30611a4292610ec4565b835f5260205f200190565b5460301c90565b90611a02565b9192611a5381611cba565b8103908111610a5e576119f993855f5265ffffffffffff808360205f20015416908516105f14611a845750916119ee565b929150611a9090611195565b906119ee565b60405190611aa3826107af565b5f6020838281520152565b9060206001611ad2611afe93611ac2611a96565b50611acb611a96565b5085611599565b509360405194611ae1866107af565b549465ffffffffffff86169586825260301c938491015201611599565b90549060405192611b0e846107af565b835260031b1c602082015290565b805480611b2d5750505f905f905f90565b5f19918183810111610a5e575f5260205f2001015460019165ffffffffffff82169160301c90565b60ff5f80516020611e458339815191525460401c1615611b7157565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156107aa57611ba091600182018155611599565b611bca57815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293928015611c9057611bf4611bff91610ec4565b825f5260205f200190565b9182549265ffffffffffff91828516928116808411611c7e57879303611c455750611c3e92509065ffffffffffff82549181199060301b169116179055565b60301c9190565b915050611c7991611c65611c576107fe565b65ffffffffffff9093168352565b6001600160d01b0386166020830152611b83565b611c3e565b604051632520601d60e01b8152600490fd5b5090611cb591611ca1611c576107fe565b6001600160d01b0385166020830152611b83565b5f9190565b60018111156108c457600181600160801b811015611dd3575b611d7b611d71611d67611d5d611d53611d49611d8797600488600160401b611d829a1015611dc6575b640100000000811015611db9575b62010000811015611dac575b610100811015611da0575b6010811015611d94575b1015611d8c575b60030260011c611d42818b61147f565b0160011c90565b611d42818a61147f565b611d42818961147f565b611d42818861147f565b611d42818761147f565b611d42818661147f565b809361147f565b821190565b900390565b60011b611d32565b811c9160021b91611d2b565b60081c91811b91611d21565b60101c9160081b91611d16565b60201c9160101b91611d0a565b60401c9160201b91611cfc565b50600160401b9050608082901c611cd3565b91905b838210611df55750505090565b9091928083169080841860011c8201809211610a5e57845f5265ffffffffffff808360205f20015416908416105f14611e325750925b9190611de8565b939250611e3e90611195565b91611e2b56fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220f6c8c6e53e56abe4ba9bf3f192a97636699c1edad17d1630537b4ec239db2d6c64736f6c634300081900336101603461017c576001600160401b0390601f61370238819003918201601f1916830191848311848410176101805780849260209460405283398101031261017c5751906001600160a01b038216820361017c57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c1661016a578080831603610125575b835f60a0525f60c0525f60e052610100905f8252610120905f82526101409081526040519161356d9384610195853960805184610b68015260a0518461047b015260c05184818161158e0152612c56015260e0518481816102e801526122c2015251838181610437015261244c015251828181610c7a01526115e40152518181816108060152818161191c0152611d110152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8080610091565b60405163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80622a087514610213578063103f29071461020e5780631a2be2c4146102095780631dd5f60014610204578063267de1f3146101ff5780632964f8dc146101fa5780632c9d45b3146101f55780632dd31000146101f057806331ce4dfe146101eb57806334d098ea146101e6578063439fab91146101e1578063457821b7146101dc5780635264679b146101d7578063545ce389146101d257806369f78920146101cd5780638f42f9ab146101c85780638f82f931146101c35780639168f9d2146101be5780639a896551146101b95780639f86fd85146101b4578063a4ef9b4f146101af578063aa8e6489146101aa578063aab3595f146101a5578063b94c386e146101a0578063bb24fe8a1461019b578063bc6eac5b14610196578063c0cd7c3e14610191578063cd05b8a11461018c578063d5c24e1a14610187578063e054e08b14610182578063f9268d181461017d5763fbfa77cf14610178575f80fd5b61181b565b6116ad565b611688565b61166b565b611613565b6115cf565b6115b2565b61156f565b61121d565b6111c5565b611187565b611124565b611090565b611005565b610bda565b610b49565b610b2c565b610ae7565b61084f565b610835565b6107f1565b6106b9565b610668565b6105ff565b610466565b610422565b610406565b6103b1565b610397565b610317565b6102d3565b610261565b6001600160a01b0381160361022957565b5f80fd5b65ffffffffffff81160361022957565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102295760c0366003190112610229576102c56102b160043561028481610218565b61028f602435610218565b60643561029b81610218565b60a435916102a88361022d565b604435906118d1565b60405191829160208352602083019061023d565b0390f35b5f91031261022957565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461022957604036600319011261022957602061036361035e60243561033c81610218565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6120da565b604051908152f35b60609060031901126102295760043561038381610218565b90602435906044356103948161022d565b90565b34610229576102c56102b16103ab3661036b565b916119a8565b3461022957604036600319011261022957602065ffffffffffff6103fc6024356103da81610218565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b34610229575f366003190112610229576020604051614e208152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176104d957604052565b6104aa565b604081019081106001600160401b038211176104d957604052565b606081019081106001600160401b038211176104d957604052565b6001600160401b0381116104d957604052565b608081019081106001600160401b038211176104d957604052565b90601f801991011681019081106001600160401b038211176104d957604052565b6040519060c082018281106001600160401b038211176104d957604052565b6040519061058f826104f9565b565b6040519061058f826104de565b6001600160401b0381116104d957601f01601f191660200190565b81601f82011215610229578035906105d08261059e565b926105de6040519485610542565b8284526020838301011161022957815f926020809301838601378301015290565b346102295760603660031901126102295760243561061c8161022d565b604435906001600160401b0382116102295761065f61064160209336906004016105b9565b6004355f90815260068552604090206001600160a01b039390612152565b16604051908152f35b34610229575f36600319011261022957602060ff5f5460a01c166040519015158152f35b9181601f84011215610229578235916001600160401b038311610229576020838186019501011161022957565b34610229576020366003190112610229576001600160401b03600435818111610229576106ea90369060040161068c565b5f80516020613518833981519152549260ff8460401c16159316801590816107e9575b60011490816107df575b1590816107d6575b506107c4575f80516020613518833981519152805467ffffffffffffffff1916600117905561075291836107a05761228b565b61075857005b5f80516020613518833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020613518833981519152805460ff60401b1916600160401b17905561228b565b60405163f92ee8a960e01b8152600490fd5b9050155f61071f565b303b159150610717565b84915061070d565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576102c56102b16108493661036b565b91611a2c565b346102295760a0366003190112610229576024356004803561087083610218565b604435926064356108808161022d565b6084356001600160401b0381116102295761089e903690860161068c565b94906108a86123f5565b6108b185612424565b6108b9611abe565b9580610ad1575b50506108cb426125f5565b906108e66108df825465ffffffffffff1690565b8093611b1f565b5f5490969061090b906108ff906001600160a01b031681565b6001600160a01b031690565b968260206040998a51928380926327f843b560e11b82525afa8015610acc5761094a9261093f925f92610a9b575b50611a14565b65ffffffffffff1690565b65ffffffffffff8516908110908115610a85575b50610a765761097090518486886127d0565b5096878082109118028088189714610a68576102c5610a41878988887f3cb7f4ff6cecf74cee0eb9ae3ebf8933fa60a53014cce52f96da72a78dba8464896109c08a6109bb426125f5565b611b1f565b92600354978894610a116109d2610563565b8881526001600160a01b0385166020820152808b018a905265ffffffffffff8616606082015265ffffffffffff831660808201525f60a0820152611b61565b885197885265ffffffffffff938416602089015290921660408701526001600160a01b0316949081906060820190565b0390a4610a5a60015f805160206134f883398151915255565b519081529081906020820190565b855163167f871760e31b8152fd5b508551631357ac9160e11b8152fd5b9050610a9361093f426125f5565b11155f61095e565b610abe91925060203d602011610ac5575b610ab68183610542565b810190611b39565b905f610939565b503d610aac565b6118ad565b610adf929650810190611ad1565b935f806108c0565b34610229576080366003190112610229576102c56102b1600435610b0a81610218565b604435610b1681610218565b60643591610b238361022d565b60243590611c97565b34610229575f366003190112610229576020600354604051908152f35b3461022957604036600319011261022957602435610b668161022d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610bc85763ffffffff610bb36040926004355f526006602052835f206124df565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102295760603660031901126102295760048035906bffffffffffffffffffffffff8216820361022957602435610c1181610218565b6044356001600160401b03811161022957610c2f903690840161068c565b90610c386123f5565b610c40611abe565b5081610fa0575b5050604080516302910f8b60e31b8152338185019081526001600160a01b0395929491602091829082908190830103818a7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610acc575f91610f73575b5015610f64575f54610ce5906001600160a01b0316936bffffffffffffffffffffffff166bffffffffffffffffffffffff193360601b161790565b95610d00610cfb885f52600660205260405f2090565b613223565b50949015610efa57610d1461093f426125f5565b65ffffffffffff9586161115610ec457610d3e610d39895f52600660205260405f2090565b6125b6565b505b610d636108ff6108ff6108ff610d5e8c5f52600660205260405f2090565b612e74565b91808716928303610dcf575b505050505050610db4907f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b7570925b516001600160a01b0390911681529081906020820190565b0390a2610dcd60015f805160206134f883398151915255565b005b610de68998959796985f52600660205260405f2090565b911692845163186a323160e21b815281818981885afa908115610acc575f91610ea7575b5081600554958751998a80926327f843b560e11b82525afa908115610acc5789610e6f610e81977f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b75709c610e7695610db49d610e7b985f92610e8a575b50501690611de6565b9116611e07565b6125f5565b9061341a565b82958495610d6f565b610ea09250803d10610ac557610ab68183610542565b5f80610e66565b610ebe9150823d8411610ac557610ab68183610542565b5f610e0a565b610ee26108ff6108ff6108ff610d5e8c5f52600660205260405f2090565b82871603610d4057865163a741a04560e01b81528490fd5b5093949385169250508115610f56575091610db491610f4f7f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b757094610f46875f52600660205260405f2090565b610e7b426125f5565b5050610d9c565b825163a741a04560e01b8152fd5b5083516323d53b9760e21b8152fd5b610f939150823d8411610f99575b610f8b8183610542565b810190611dd2565b5f610caa565b503d610f81565b610fac91810190611ad1565b505f80610c47565b634e487b7160e01b5f52603260045260245ffd5b6003548110156110005760035f5260021b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01905f90565b610fb4565b34610229576020366003190112610229576004356003548110156102295761102c90610fc8565b50805460018201546002830154600390930154604080519384526001600160a01b0390921660208401529082019290925265ffffffffffff808316606080840191909152603084901c90911660808301529190911c60ff16151560a082015260c090f35b34610229576040366003190112610229576004356110ad81610218565b6024356001600160401b038111610229575f916110cf8392369060040161068c565b90816040519283928337810184815203915af461111c6110ed611e14565b9161110e60405193849215156020840152604080840152606083019061023d565b03601f198101835282610542565b805190602001fd5b34610229576102c56102b16111383661036b565b91611e75565b906080600319830112610229576004359160243561115b81610218565b916044356111688161022d565b91606435906001600160401b03821161022957610394916004016105b9565b346102295760206103636111c061119d3661113e565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b61265b565b346102295760206111e16111d83661113e565b929190916127d0565b50604051908152f35b9060406003198301126102295760043591602435906001600160401b038211610229576112199160040161068c565b9091565b346102295761122b366111ea565b91906112356123f5565b61123d611f9a565b9280611559575b50506003548110156115475761125981610fc8565b509081549061126782612424565b6003830180549365ffffffffffff9384861660018060a01b0361128c895183856119bf565b1615158061151c575b80611503575b6114f1576112b1816112ac426125f5565b611a14565b5f546112c7906108ff906001600160a01b031681565b96600460206040998a51928380926327f843b560e11b82525afa8015610acc5782915f916114d2575b50169116116114c157600183018054909861131b93929188906001600160a01b0316910151926127d0565b90611330816002850154818082109118021890565b9687156114b05760601c60ff1661149f579261145861144b89946114236114108b9687876102c59f61141e8f9d8f9e61145e9f61137a86600160601b60ff60601b19825416179055565b8a54855461139c91906001600160a01b0316885465ffffffffffff1691612a06565b8a5485546113b59189916001600160a01b031690612a86565b8a5494546113d3906001600160a01b0316965465ffffffffffff1690565b976113dc610582565b9384526020840152818301525196879160208301919091604080606083019480518452602081015160208501520151910152565b03601f198101875286610542565b612bf2565b61143c611436855465ffffffffffff1690565b86612cfb565b5494546001600160a01b031690565b915465ffffffffffff1690565b92612d78565b81518381527f5cc28df3b54da9d06f805d87616ebf969c81310f2aa8369cb14ca50f815d411190602090a2610a5a60015f805160206134f883398151915255565b8551633428e90760e01b8152600490fd5b865163167f871760e31b8152600490fd5b8551639ea153eb60e01b8152600490fd5b6114eb915060203d602011610ac557610ab68183610542565b5f6112f0565b60405163b62b15c760e01b8152600490fd5b5061151061093f426125f5565b868860301c161161129b565b506115406108ff61153461152f426125f5565b6119f8565b60208b015190856119bf565b1515611295565b604051637822972360e11b8152600490fd5b611567929350810190611fb9565b905f80611244565b34610229575f3660031901126102295760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610229575f366003190112610229576020600554604051908152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576040366003190112610229576024356001600160401b0381116102295761165961164860209236906004016105b9565b611651426125f5565b6004356119bf565b6040516001600160a01b039091168152f35b34610229575f366003190112610229576020604051620249f08152f35b34610229575f36600319011261022957602065ffffffffffff60045416604051908152f35b34610229576116bb366111ea565b906116c46123f5565b6116cc612041565b9180611807575b5050600354821015611547576116e882610fc8565b506003815491019182549165ffffffffffff9160018060a01b036117108251858716856119bf565b169182159182156117de575b50506117cc5733036117ba5761173461093f426125f5565b908260301c1611156117a95760601c60ff1661179757805460ff60601b1916600160601b17905533907f7d3d269c851b72257a5194a401d151902e9be4347d555996dcff3ff86a077e925f80a3610dcd60015f805160206134f883398151915255565b604051633428e90760e01b8152600490fd5b60405162c457e560e81b8152600490fd5b604051635d154fe160e11b8152600490fd5b60405163dd1ebd9d60e01b8152600490fd5b6117ff9250906108ff9160206117f661152f426125f5565b910151916119bf565b155f8061171c565b611814925081019061205a565b5f806116d3565b34610229575f366003190112610229575f546040516001600160a01b039091168152602090f35b81601f82011215610229578051906118598261059e565b926118676040519485610542565b8284526020838301011161022957815f9260208093018386015e8301015290565b906020828203126102295781516001600160401b038111610229576103949201611842565b6040513d5f823e3d90fd5b604061039492602083525191602080820152019061023d565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252909116604482015265ffffffffffff9091166064820152606091905f81806084810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610acc575f91611986575b50805161195e5750565b61110e9192506103949060405190611975826104be565b8152604051928391602083016118b8565b6119a291503d805f833e61199a8183610542565b810190611888565b5f611954565b92916119b691606094611e75565b805161195e5750565b5f9081526006602052604090206001600160a01b03926119e0929091612152565b1690565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9081165f190191908211611a0f57565b6119e4565b65ffffffffffff9182169082160391908211611a0f57565b611a4d90939293611a406060958483611e75565b9261113861152f426125f5565b815115801590611ab4575b611a60575050565b611aa19293509061110e6103949260405192611a7b846104de565b83526020830190815260405194859360208086015251604080860152608085019061023d565b9051838203603f1901606085015261023d565b5080511515611a58565b60405190611acb826104be565b60608252565b906020828203126102295781356001600160401b03928382116102295701906020828203126102295760405192611b07846104be565b823590811161022957611b1a92016105b9565b815290565b91909165ffffffffffff80809416911601918211611a0f57565b9081602091031261022957516103948161022d565b634e487b7160e01b5f525f60045260245ffd5b600354600160401b8110156104d957806001611b809201600355610fc8565b919091611c43578051825560208101516001830180546001600160a01b0319166001600160a01b039290921691909117905561058f91611c299060a090600390604085015160028201550192611bf665ffffffffffff606083015116859065ffffffffffff1665ffffffffffff19825416179055565b60808101516bffffffffffff00000000000085549160301b16906bffffffffffff00000000000019161784550151151590565b815460ff60601b191690151560601b60ff60601b16179055565b611b4e565b906103949160208152611c67825160606020840152608083019061023d565b9060606040611c87602086015194601f199586868303018487015261023d565b940151928285030191015261023d565b919093925f606095611caa838287611e75565b94611d0d611cc4611cbd61152f426125f5565b8484611e75565b604051632751749360e11b81526001600160a01b039384166004820152602481019490945291909516604483015265ffffffffffff909316606482015292839081906084820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa918215610acc575f92611da9575b50825115801590611d9f575b8015611d95575b611d6557505050565b61110e939450906103949291611d79610582565b9283526020830152604082015260405192839160208301611c48565b5081511515611d5c565b5080511515611d55565b611dbe9192503d805f833e61199a8183610542565b905f611d49565b5190811515820361022957565b908160209103126102295761039490611dc5565b81810292918115918404141715611a0f57565b9060018201809211611a0f57565b91908201809211611a0f57565b3d15611e3e573d90611e258261059e565b91611e336040519384610542565b82523d5f602084013e565b606090565b519063ffffffff8216820361022957565b9190826040910312610229576103946020611e6e84611dc5565b9301611e43565b92915f8060609565ffffffffffff60405194602096638f82f93160e01b88880152602487015216604485015260448452611eae84610527565b6040519384611edb87820192639f86fd8560e01b845230602484015260406044840152606483019061023d565b0394611eef601f1996878101835282610542565b51915afa50611f0d611eff611e14565b838082518301019101612627565b9015611f6057808380611f2593518301019101611e54565b9290611f3057505050565b61039492939450611f54604051948592830191909163ffffffff6020820193169052565b03908101835282610542565b809150519182156102295701fd5b5f9081526002602090815260408083206001600160a01b0390941683529290522061039492919061265b565b60405190611fa7826104f9565b60606040838281528260208201520152565b906020828203126102295781356001600160401b03928382116102295701906060828203126102295760405192611fef846104f9565b823581811161022957826120049185016105b9565b84526020830135818111610229578261201e9185016105b9565b602085015260408301359081116102295761203992016105b9565b604082015290565b6040519061204e826104de565b60606020838281520152565b906020828203126102295781356001600160401b03928382116102295701906040828203126102295760405192612090846104de565b823581811161022957826120a59185016105b9565b84526020830135908111610229576120bd92016105b9565b602082015290565b8054821015611000575f5260205f2001905f90565b6120e381612e74565b6001600160d01b038116156121085760016120fe92016120c5565b90549060031b1c90565b50505f90565b908160209103126102295761039490611e43565b5f19810191908211611a0f57565b91908203918211611a0f57565b90600163ffffffff80931601918211611a0f57565b91805115612236578060208061216d9351830101910161210e565b916121788382612eb4565b92612189845165ffffffffffff1690565b9065ffffffffffff808516921682811461221d57821191826121c8575b50506121b6576103949250613319565b5050602001516001600160d01b031690565b9091506121d58354612122565b63ffffffff8316149182156121ee575b50505f806121a6565b61221591925061220961220361093f9261213d565b85612eb4565b5165ffffffffffff1690565b115f806121e5565b50505050602091909101516001600160d01b0316905090565b5061039491613319565b91909160408184031261022957803561225881610218565b9260208201356001600160401b0381116102295761039492016105b9565b90816020910312610229575161039481610218565b61229791810190612240565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610acc575f916123d8575b50156123c65781612328600492612308612f08565b5f80546001600160a01b0319166001600160a01b03891617905586612f95565b94604051928380926313c085b760e11b82525afa918215610acc575f92612399575b505016158061238f575b61237d575161058f9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b5080511515612354565b6123b89250803d106123bf575b6123b08183610542565b810190612276565b5f8061234a565b503d6123a6565b6040516362df054560e01b8152600490fd5b6123ef9150833d8511610f9957610f8b8183610542565b5f6122f3565b5f805160206134f883398151915260028154146124125760029055565b604051633ee5aeb560e01b8152600490fd5b604051635daf681960e11b815260609190911c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa918215610acc575f9261249a575b503391160361248857565b60405163227bf64d60e01b8152600490fd5b6124b491925060203d6020116123bf576123b08183610542565b905f61247d565b906040516124c8816104de565b915465ffffffffffff8116835260301c6020830152565b908154905f829160058411612568575b6124fa9350846131c1565b90811561255c5761251b9061250e83612122565b905f5260205f20016124bb565b9161255561254c6125466020612537875165ffffffffffff1690565b9601516001600160d01b031690565b93612122565b63ffffffff1690565b6001939291565b50505f905f905f905f90565b919261257381613096565b8103908111611a0f576124fa93855f5265ffffffffffff808360205f20015416908516105f146125a45750916124ef565b9291506125b090611df9565b906124ef565b906125c082612e74565b91805480156125e1575f1901906125d782826120c5565b611c43575f905555565b634e487b7160e01b5f52603160045260245ffd5b65ffffffffffff90818111612608571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9190916040818403126102295761263d81611dc5565b9260208201516001600160401b038111610229576103949201611842565b9180511561271d57806020806126769351830101910161210e565b916126818382613267565b92612692845165ffffffffffff1690565b9065ffffffffffff808516921682811461271157821191826126c8575b50506126bf57610394925061325c565b50506020015190565b9091506126d58354612122565b63ffffffff8316149182156126ee575b50505f806126af565b61270991925061220961270361093f9261213d565b85613267565b115f806126e5565b50505050506020015190565b506103949161325c565b906020828203126102295781516001600160401b0392838211610229570190604082820312610229576040519261275d846104de565b82518181116102295782612772918501611842565b84526020830151908111610229576120bd9201611842565b90816020910312610229575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526103949291019061023d565b926127d9612041565b908051806129ec575b50506127ed426125f5565b5f54909490612806906108ff906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa8015610acc5761283a9261093f925f926129d45750611a14565b65ffffffffffff82169081109081156129bd575b811561298c575b50612980578560049560405196878092630ce9b79360e41b82525afa948515610acc576128a79587915f91612963575b50845190604051808099819463e02f693760e01b8352878b8a60048601612799565b03916001600160a01b03165afa938415610acc5761291f955f95612922575b509261290e85936129149361290e96869a61290561035e836128f0875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192611f6e565b90612130565b818082109118021890565b91565b61291492955061290e94919361295061290e928a3d8c1161295c575b6129488183610542565b81019061278a565b969350939194506128c6565b503d61293e565b61297a9150823d84116123bf576123b08183610542565b5f612885565b5050505050505f905f90565b90506129b661093f6129aa876128f0875f52600160205260405f2090565b5465ffffffffffff1690565b115f612855565b90506129cb61093f426125f5565b8110159061284e565b610abe9192508a3d8c11610ac557610ab68183610542565b6129ff9250602080918301019101612727565b5f806127e2565b919091805f52600160205265ffffffffffff80612a368560405f209060018060a01b03165f5260205260405f2090565b541690831611612a4557505050565b61058f92612a6d915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9190825f526002602052612ade61035e612ab38360405f209060018060a01b03165f5260205260405f2090565b92612abd426125f5565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211611a0f576001810190815415612b82575b612afe81613223565b509490835495612b0d846120da565b5081612b6d575b5015612b4c5750505f198301928311611a0f5761058f92612b34916120c5565b90919082549060031b91821b915f19901b1916179055565b61058f94612b66926001600160d01b03909116919061341a565b50506132f6565b65ffffffffffff83811691161490505f612b14565b612b8b826132c9565b612af5565b60606020610394938184526001600160401b0381511682850152015191604080820152019061023d565b919360a093610394969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061023d565b92939060046020612c0f6108ff6108ff5f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa908115610acc5761110e91612c8d915f91612cdc575b506001600160a01b031693612c4c610591565b6001600160401b037f000000000000000000000000000000000000000000000000000000000000000016815290602082015260405192839160208301612b90565b823b15610229575f94612cb886926040519889978896879563724ab0f760e11b875260048701612bba565b03925af18015610acc57612cc95750565b80612cd661058f92610514565b806102c9565b612cf5915060203d6020116123bf576123b08183610542565b5f612c39565b65ffffffffffff9160446020925f60018060a01b038154166040519687958694631c9e38c760e21b865260048601521660248401525af18015610acc57612d3f5750565b612d579060203d60201161295c576129488183610542565b50565b8115612d64570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c16612d90575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa918215610acc575f92612e4d575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff9091166084830152612e1a8260a481015b03601f198101845283610542565b6202a15c5a10612e3b575f928380935192620249f0f1505f80808080612d89565b604051632153f33560e21b8152600490fd5b612e1a9250612e6d612e0c9160203d6020116123bf576123b08183610542565b9250612dc1565b805480612e815750505f90565b5f19918183810111611a0f575f5260205f2001015460301c90565b60405190612ea9826104de565b5f6020838281520152565b612ed991612ed391612ec4612e9c565b50612ecd612e9c565b506120c5565b506124bb565b65ffffffffffff81511690602060018060d01b039101511660405191612efe836104de565b8252602082015290565b612f106133a5565b612f186133a5565b60015f805160206134f883398151915255565b60405190612f38826104be565b5f8252565b809103906060821261022957602060405192612f58846104f9565b12610229576040908151612f6b816104be565b612f7482611dc5565b815283526020810151612f868161022d565b60208401520151604082015290565b90600490612fa1612f2b565b508051612fb8602092838080948301019101612f3d565b6040516327f843b560e11b815290949093849182906001600160a01b03165afa918215610acc575f92613077575b50820190612ffa825165ffffffffffff1690565b65ffffffffffff91821691161015613065576040820160038151106130535761304961302f61304f935165ffffffffffff1690565b65ffffffffffff1665ffffffffffff196004541617600455565b51600555565b5190565b6040516354f778f360e01b8152600490fd5b6040516367d5e3df60e11b8152600490fd5b8161308f9293503d8411610ac557610ab68183610542565b905f612fe6565b600181111561039457600181600160801b8110156131af575b61315761314d61314361313961312f61312561316397600488600160401b61315e9a10156131a2575b640100000000811015613195575b62010000811015613188575b61010081101561317c575b6010811015613170575b1015613168575b60030260011c61311e818b612d5a565b0160011c90565b61311e818a612d5a565b61311e8189612d5a565b61311e8188612d5a565b61311e8187612d5a565b61311e8186612d5a565b8093612d5a565b821190565b900390565b60011b61310e565b811c9160021b91613107565b60081c91811b916130fd565b60101c9160081b916130f2565b60201c9160101b916130e6565b60401c9160201b916130d8565b50600160401b9050608082901c6130af565b91905b8382106131d15750505090565b909192808316906001818518811c8301809311611a0f57855f5265ffffffffffff808460205f20015416908516105f14613210575050925b91906131c4565b909493508101809111611a0f5791613209565b8054806132345750505f905f905f90565b5f19918183810111611a0f575f5260205f2001015460019165ffffffffffff82169160301c90565b906120e39082613319565b9061328a612ed36132ab9261327a612e9c565b50613283612e9c565b50846120c5565b91600165ffffffffffff845116936020828060d01b039101511691016120c5565b905490604051926132bb846104de565b835260031b1c602082015290565b8054600160401b8110156104d9576132e6916001820181556120c5565b8154905f199060031b1b19169055565b90815491600160401b8310156104d95782612b3491600161058f950181556120c5565b908154905f829160058411613357575b6133349350846131c1565b8061333f5750505f90565b61334890612122565b905f5260205f20015460301c90565b919261336281613096565b8103908111611a0f5761333493855f5265ffffffffffff808360205f20015416908516105f14613393575091613329565b92915061339f90611df9565b90613329565b60ff5f805160206135188339815191525460401c16156133c157565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156104d9576133f0916001820181556120c5565b611c4357815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b805492939280156134cd5761343161343c91612122565b825f5260205f200190565b9182549265ffffffffffff918285169281168084116134bb57879303613482575061347b92509065ffffffffffff82549181199060301b169116179055565b60301c9190565b9150506134b6916134a2613494610591565b65ffffffffffff9093168352565b6001600160d01b03861660208301526133d3565b61347b565b604051632520601d60e01b8152600490fd5b50906134f2916134de613494610591565b6001600160d01b03851660208301526133d3565b5f919056fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122083c9d2c27050cb61d0026c4a120151139ad36b1ef086f66b4ca1715f04bbc28864736f6c63430008190033","sourceMap":"624:2139:95:-:0;;;;;;;;;;;;;-1:-1:-1;;624:2139:95;;;;-1:-1:-1;;;;;624:2139:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;624:2139:95;;;;;;;;348:4:93;332:21;;8837:64:26;624:2139:95;;;;;;;7896:76:26;;624:2139:95;;;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:80;;;-1:-1:-1;525:17:80;;-1:-1:-1;552:12:80;;-1:-1:-1;2353:28:103;;2391:53;;-1:-1:-1;2391:53:103;;987:41:95;;;;624:2139;;1062:31;;;;;;;;;;;;;;624:2139;1062:31;;;;;;348:4:93;624:2139:95;;1062:31;;;-1:-1:-1;1062:31:95;;;;;;1038:56;;624:2139;;1038:56;;624:2139;;1133:35;;;;;;;;;;;;;;;624:2139;1133:35;;;;;;348:4:93;624:2139:95;;1133:35;;;-1:-1:-1;1133:35:95;;;;;;1104:65;624:2139;;1104:65;;624:2139;;;;;;;;332:21:93;624:2139:95;;;;;525:17:80;624:2139:95;;;;;552:12:80;624:2139:95;;;;;2353:28:103;624:2139:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1133:35;624:2139;;;-1:-1:-1;624:2139:95;;;;;1133:35;624:2139;;;-1:-1:-1;624:2139:95;;;;;-1:-1:-1;624:2139:95;7981:146:26;-1:-1:-1;;;;;;624:2139:95;;;;;;;;;8087:29:26;;624:2139:95;;8087:29:26;7981:146;;;;;7896:76;624:2139:95;;-1:-1:-1;;;7938:23:26;;;;;624:2139:95;-1:-1:-1;624:2139:95;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063103f2907146101545780631a2be2c41461014f578063267de1f31461014a5780632964f8dc146101455780632c9d45b3146101405780632dd310001461013b57806334d098ea14610136578063439fab91146101315780634a7196551461012c5780634ea2e926146101275780634eb5a242146101225780636565b7db1461011d578063770280461461011857806379d89614146101135780639f86fd851461010e578063aa8e648914610109578063aab3595f14610104578063bb24fe8a146100ff578063d5c24e1a146100fa5763fbfa77cf146100f5575f80fd5b610945565b610928565b6108e5565b6108c0565b610882565b6106c5565b610681565b6105ca565b610586565b610542565b610525565b6104f0565b61034b565b6102fa565b6102b6565b610272565b610256565b610201565b6101ad565b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b6001600160a01b0381160361019857565b346101985760403660031901126101985760206101f96101f46024356101d28161019c565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b610da5565b604051908152f35b3461019857604036600319011261019857602065ffffffffffff61024c60243561022a8161019c565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b34610198575f366003190112610198576020604051614e208152f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f36600319011261019857602060ff5f5460a01c166040519015158152f35b9181601f84011215610198578235916001600160401b038311610198576020838186019501011161019857565b34610198576020366003190112610198576001600160401b036004358181116101985761037c90369060040161031e565b5f80516020611938833981519152549260ff8460401c161593168015908161047b575b6001149081610471575b159081610468575b50610456575f80516020611938833981519152805467ffffffffffffffff191660011790556103e4918361043257610e47565b6103ea57005b5f80516020611938833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611938833981519152805460ff60401b1916600160401b179055610e47565b60405163f92ee8a960e01b8152600490fd5b9050155f6103b1565b303b1591506103a9565b84915061039f565b65ffffffffffff81160361019857565b6080906003190112610198576004356104ab8161019c565b90602435906044356104bc8161019c565b906064356104c981610483565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346101985761052161050d61050436610493565b929190916109ab565b6040519182916020835260208301906104cc565b0390f35b346101985761052161050d61053936610493565b92919091610b76565b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198576060366003190112610198576024356105e78161019c565b6044356105f381610483565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361066f5761064d610652926004355f52600260205260405f209060018060a01b03165f5260205260405f2090565b611045565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b34610198575f366003190112610198576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610198576040366003190112610198576004356106e28161019c565b6024356001600160401b038111610198575f916107048392369060040161031e565b90816040519283928337810184815203915af4610751610722610d21565b916107436040519384921515602084015260408084015260608301906104cc565b03601f1981018352826107a8565b805190602001fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761078857604052565b610759565b60a081019081106001600160401b0382111761078857604052565b90601f801991011681019081106001600160401b0382111761078857604052565b604051906107d68261076d565b565b6001600160401b03811161078857601f01601f191660200190565b81601f820112156101985780359061080a826107d8565b9261081860405194856107a8565b8284526020838301011161019857815f926020809301838601378301015290565b90608060031983011261019857600435916024356108568161019c565b9160443561086381610483565b91606435906001600160401b038211610198576104c9916004016107f3565b346101985760206101f96108bb61089836610839565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b611173565b346101985760206108dc6108d336610839565b92919091611342565b50604051908152f35b34610198575f3660031901126101985760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610198575f366003190112610198576020604051620249f08152f35b34610198575f366003190112610198575f546040516001600160a01b039091168152602090f35b5190811515820361019857565b519063ffffffff8216820361019857565b9190826040910312610198576104c960206109a48461096c565b9301610979565b5f809195949593929365ffffffffffff60609760405195602097633b81402360e11b89890152602488015260018060a01b03166044870152166064850152606484526109f68461078d565b6040519384610a2387820192639f86fd8560e01b84523060248401526040604484015260648301906104cc565b0394610a37601f19968781018352826107a8565b51915afa50610a55610a47610d21565b838082518301019101610fb0565b9015610aa857808380610a6d9351830101910161098a565b9290610a7857505050565b6104c992939450610a9c604051948592830191909163ffffffff6020820193169052565b039081018352826107a8565b809150519182156101985701fd5b9081602091031261019857516104c98161019c565b6040513d5f823e3d90fd5b81601f8201121561019857805190610aed826107d8565b92610afb60405194856107a8565b8284526020838301011161019857815f9260208093018386015e8301015290565b906020828203126101985781516001600160401b038111610198576104c99201610ad6565b906104c991602081526020610b61835160408385015260608401906104cc565b920151906040601f19828503019101526104cc565b60405163fbfa77cf60e01b815260609594919391926020926001600160a01b03929091908481600481878b165afa908115610cd257849186915f91610d04575b50600460405180948193630ce9b79360e41b8352165afa8015610cd25786948385925f948591610cd7575b506040516304bb92e160e31b81526001600160a01b039182166004820152602481019290925292909216604483015265ffffffffffff97909716606482015295869060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa948515610cd2575f95610caa575b50610c669394956109ab565b825115801590610ca0575b610c7a57505050565b6104c992939450610c896107c9565b938452818401526107436040519384928301610b41565b5080511515610c71565b610c66949550610ccb903d805f833e610cc381836107a8565b810190610b1c565b9493610c5a565b610acb565b610cf79150893d8b11610cfd575b610cef81836107a8565b810190610ab6565b5f610be1565b503d610ce5565b610d1b9150823d8411610cfd57610cef81836107a8565b5f610bb6565b3d15610d4b573d90610d32826107d8565b91610d4060405193846107a8565b82523d5f602084013e565b606090565b5f9081526002602090815260408083206001600160a01b039094168352929052206104c9929190611173565b8054821015610d91575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b805480610dda57505f5b6001600160d01b03811615610dd4576001610dca9201610d7c565b90549060031b1c90565b50505f90565b5f19908082810111610df857825f5260205f2001015460301c610daf565b610fe4565b919091604081840312610198578035610e158161019c565b9260208201356001600160401b038111610198576104c992016107f3565b90816020910312610198576104c99061096c565b610e5391810190610dfd565b506040516302910f8b60e31b81526001600160a01b0391821660048201819052919060209081816024817f000000000000000000000000000000000000000000000000000000000000000087165afa908115610cd2575f91610f83575b5015610f7157610ebe61159c565b5f80546001600160a01b0319166001600160a01b038516179055600481610ee36115d2565b94604051928380926313c085b760e11b82525afa918215610cd2575f92610f54575b5050161580610f4a575b610f3857516107d69015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b5080511515610f0f565b610f6a9250803d10610cfd57610cef81836107a8565b5f80610f05565b6040516362df054560e01b8152600490fd5b610fa39150823d8411610fa9575b610f9b81836107a8565b810190610e33565b5f610eb0565b503d610f91565b91909160408184031261019857610fc68161096c565b9260208201516001600160401b038111610198576104c99201610ad6565b634e487b7160e01b5f52601160045260245ffd5b5f19810191908211610df857565b91908203918211610df857565b9060018201809211610df857565b9060405161102e8161076d565b915465ffffffffffff8116835260301c6020830152565b91908254905f8291600584116110e3575b61106193508561173d565b9081156110d7576110d06110c76110c1610dca61109361108e61108388610ff8565b895f5260205f200190565b611021565b9660016110ba60206110ab8b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101610d7c565b93610ff8565b63ffffffff1690565b6001939291565b5f925082915081908190565b91926110ee81611612565b8103908111610df85761106193865f526111226111178360205f200165ffffffffffff90541690565b65ffffffffffff1690565b65ffffffffffff85161015611138575091611056565b92915061114490611013565b90611056565b90816020910312610198576104c990610979565b90600163ffffffff80931601918211610df857565b91805115611241578060208061118e9351830101910161114a565b91611199838261186f565b926111aa845165ffffffffffff1690565b9065ffffffffffff808516921682811461123557821191826111e0575b50506111d7576104c9925061179f565b50506020015190565b9091506111ed8354610ff8565b63ffffffff831614918215611206575b50505f806111c7565b61122d91925061122161121b6111179261115e565b8561186f565b5165ffffffffffff1690565b115f806111fd565b50505050506020015190565b506104c99161179f565b604051906112588261076d565b60606020838281520152565b906020828203126101985781516001600160401b0392838211610198570190604082820312610198576040519261129a8461076d565b825181811161019857826112af918501610ad6565b84526020830151908111610198576112c79201610ad6565b602082015290565b9081602091031261019857516104c981610483565b65ffffffffffff9182169082160391908211610df857565b90816020910312610198575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526104c9929101906104cc565b9261134b61124b565b90805180611582575b505061135f42611905565b5f5490949061138490611378906001600160a01b031681565b6001600160a01b031690565b93604051956327f843b560e11b875260209687816004818a5afa8015610cd2576113b992611117925f92611553575b506112e4565b65ffffffffffff821690811090811561153c575b811561150b575b506114ff578560049560405196878092630ce9b79360e41b82525afa948515610cd2576114269587915f916114e2575b50845190604051808099819463e02f693760e01b8352878b8a6004860161130b565b03916001600160a01b03165afa938415610cd25761149e955f956114a1575b509261148d85936114939361148d96869a6114846101f48361146f875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610d50565b90611006565b818082109118021890565b91565b61149392955061148d9491936114cf61148d928a3d8c116114db575b6114c781836107a8565b8101906112fc565b96935093919450611445565b503d6114bd565b6114f99150823d8411610cfd57610cef81836107a8565b5f611404565b5050505050505f905f90565b90506115356111176115298761146f875f52600160205260405f2090565b5465ffffffffffff1690565b115f6113d4565b905061154a61111742611905565b811015906113cd565b6115749192508a3d8c1161157b575b61156c81836107a8565b8101906112cf565b905f6113b3565b503d611562565b6115959250602080918301019101611264565b5f80611354565b6115a46118d7565b6115ac6118d7565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b60405190602082018281106001600160401b03821117610788576040525f8252565b81156115fe570490565b634e487b7160e01b5f52601260045260245ffd5b60018111156104c957600181600160801b81101561172b575b6116d36116c96116bf6116b56116ab6116a16116df97600488600160401b6116da9a101561171e575b640100000000811015611711575b62010000811015611704575b6101008110156116f8575b60108110156116ec575b10156116e4575b60030260011c61169a818b6115f4565b0160011c90565b61169a818a6115f4565b61169a81896115f4565b61169a81886115f4565b61169a81876115f4565b61169a81866115f4565b80936115f4565b821190565b900390565b60011b61168a565b811c9160021b91611683565b60081c91811b91611679565b60101c9160081b9161166e565b60201c9160101b91611662565b60401c9160201b91611654565b50600160401b9050608082901c61162b565b91905b83821061174d5750505090565b909192808316906001818518811c8301809311610df857855f5265ffffffffffff808460205f20015416908516105f1461178c575050925b9190611740565b909493508101809111610df85791611785565b908154905f829160058411611809575b6117ba93508461173d565b806117e257505f905b6001600160d01b03821615610dd4576104c9916001610dca9201610d7c565b6117fc6117f161180392610ff8565b835f5260205f200190565b5460301c90565b906117c3565b919261181481611612565b8103908111610df8576117ba93855f5265ffffffffffff808360205f20015416908516105f146118455750916117af565b92915061185190611013565b906117af565b604051906118648261076d565b5f6020838281520152565b906118986118926118b992611882611857565b5061188b611857565b5084610d7c565b50611021565b91600165ffffffffffff845116936020828060d01b03910151169101610d7c565b905490604051926118c98461076d565b835260031b1c602082015290565b60ff5f805160206119388339815191525460401c16156118f357565b604051631afcd79f60e31b8152600490fd5b65ffffffffffff90818111611918571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fdfef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220f277a4f1d79c926d3cf47f1d1c69c51a336ff12303565531614d4d54627d5eb964736f6c63430008190033","sourceMap":"624:2139:95:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;624:2139:95;;;;;;1435:38:103;-1:-1:-1;;;;;624:2139:95;;;;;;;;;;;-1:-1:-1;;;;;624:2139:95;;;;;:::o;:::-;;;;;;-1:-1:-1;;624:2139:95;;;;;2936:47:103;:38;624:2139:95;;;;;:::i;:::-;;;-1:-1:-1;624:2139:95;2936:16:103;624:2139:95;;;-1:-1:-1;624:2139:95;;;;;;;;;;;;;;;;;2936:38:103;:47;:::i;:::-;624:2139:95;;;;;;;;;;;;-1:-1:-1;;624:2139:95;;;;;;1788:109:103;624:2139:95;;;;;:::i;:::-;;;-1:-1:-1;624:2139:95;1788:109:103;624:2139:95;;;-1:-1:-1;624:2139:95;;;;;;;;;;;;;;;;;1788:109:103;624:2139:95;;;;;;;;;;;;;;-1:-1:-1;;624:2139:95;;;;;;;1374:6:103;624:2139:95;;;;;;;;;-1:-1:-1;;624:2139:95;;;;;;1528:51:103;-1:-1:-1;;;;;624:2139:95;;;;;;;;;;;;-1:-1:-1;;624:2139:95;;;;;;322:32:80;-1:-1:-1;;;;;624:2139:95;;;;;;;;;;;;-1:-1:-1;;624:2139:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;624:2139:95;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;624:2139:95;;;;-1:-1:-1;;;;;624:2139:95;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;624:2139:95;;;;;;;4301:16:26;624:2139:95;;4726:16:26;;:34;;;;624:2139:95;4805:1:26;4790:16;:50;;;;624:2139:95;4855:13:26;:30;;;;624:2139:95;4851:91:26;;;-1:-1:-1;;;;;;;;;;;624:2139:95;;-1:-1:-1;;624:2139:95;;;;;718:4:80;;4951:18:26;4979:67;;718:4:80;:::i;:::-;5066:101:26;;624:2139:95;5066:101:26;-1:-1:-1;;;;;;;;;;;624:2139:95;;-1:-1:-1;;;;624:2139:95;;;;;-1:-1:-1;624:2139:95;;5142:14:26;;624:2139:95;;5142:14:26;624:2139:95;4979:67:26;-1:-1:-1;;;;;;;;;;;624:2139:95;;-1:-1:-1;;;;624:2139:95;-1:-1:-1;;;624:2139:95;;;718:4:80;:::i;4851:91:26:-;624:2139:95;;-1:-1:-1;;;4908:23:26;;624:2139:95;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;624:2139:95;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;624:2139:95;;;;;;;;-1:-1:-1;;624:2139:95;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;624:2139:95;;;;;;778:38;-1:-1:-1;;;;;624:2139:95;;;;;;;;;;;;-1:-1:-1;;624:2139:95;;;;;;822:43;-1:-1:-1;;;;;624:2139:95;;;;;;;;;;;;-1:-1:-1;;624:2139:95;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;449:5:93;-1:-1:-1;;;;;624:2139:95;435:10:93;:19;431:71;;1400:38:95;:77;624:2139;;;-1:-1:-1;624:2139:95;1400:16;624:2139;;;-1:-1:-1;624:2139:95;;;;;;;;;;;;;;;;;1400:38;:77;:::i;:::-;624:2139;;;;;;;;;;;;;;;;;;;-1:-1:-1;;624:2139:95;431:71:93;624:2139:95;;-1:-1:-1;;;477:14:93;;624:2139:95;;477:14:93;624:2139:95;;;;;;-1:-1:-1;;624:2139:95;;;;;;727:45;-1:-1:-1;;;;;624:2139:95;;;;;;;;;;;;-1:-1:-1;;624:2139:95;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;624:2139:95;;;;-1:-1:-1;624:2139:95;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:86;;;;477:31;416:25;;:::i;:::-;624:2139:95;;;;;;;;;;477:31:86;;624:2139:95;;;;;;;;;;;:::i;:::-;477:31:86;624:2139:95;;477:31:86;;;;;;:::i;:::-;518:79;;;624:2139:95;518:79:86;;624:2139:95;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;624:2139:95;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;624:2139:95;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;624:2139:95;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;624:2139:95;;;;;;-1:-1:-1;;624:2139:95;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;624:2139:95;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;624:2139:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;624:2139:95;;;;;;;;;:::i;:::-;;;;;2692:73:103;:38;624:2139:95;;;:::i;:::-;;;;;-1:-1:-1;624:2139:95;2692:16:103;624:2139:95;;;-1:-1:-1;624:2139:95;;;;;;;;;;;;;;;;;2692:38:103;:73;:::i;624:2139:95:-;;;;;3248:62:103;624:2139:95;;;:::i;:::-;3248:62:103;;;;;:::i;:::-;624:2139:95;;;;;;;;;;;;;-1:-1:-1;;624:2139:95;;;;;;;-1:-1:-1;;;;;404:28:80;624:2139:95;;;;;;;;;;-1:-1:-1;;624:2139:95;;;;;;;1271:7:103;624:2139:95;;;;;;;;;-1:-1:-1;;624:2139:95;;;;;;;;-1:-1:-1;;;;;624:2139:95;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;1490:514::-;-1:-1:-1;1490:514:95;;;;;;;;624:2139;;;;;1779:95;;;;;;;;;;;;;624:2139;;;;;;;;;;;;;;;;;1779:95;;;;;:::i;:::-;624:2139;;716:88:93;;624:2139:95;716:88:93;;;;;;;;;783:4;1779:95:95;716:88:93;;624:2139:95;;;;;;;;;;;:::i;:::-;716:88:93;624:2139:95;716:88:93;624:2139:95;;716:88:93;;;;;;;;:::i;:::-;698:107;;;;;857:45;698:107;;:::i;:::-;624:2139:95;;;;857:45:93;;;;;;:::i;:::-;916:8;;912:175;;624:2139:95;;;1705:221;624:2139;;1705:221;;;;;;:::i;:::-;1937:61;;;;1490:514;;;:::o;1937:61::-;1970:17;624:2139;;;;1970:17;624:2139;;1970:17;;;;;624:2139;;;;;;;;;;;;1970:17;;;;;;;;;:::i;912:175:93:-;624:2139:95;;;;944:22:93;;;940:36;;990:87;;624:2139:95;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;624:2139:95;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;624:2139:95;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;2010:751::-;624:2139;;-1:-1:-1;;;2301:28:95;;624:2139;;2010:751;;;;;2301:28;;-1:-1:-1;;;;;624:2139:95;2010:751;;;2301:28;624:2139;2301:28;624:2139;;;;2301:28;;;;;;;;;;;;;;;2010:751;624:2139;2301:28;624:2139;;;;;;;;;2295:47;;624:2139;2295:47;;;;;;;;;;;2301:28;2295:47;;;;;2010:751;-1:-1:-1;624:2139:95;;-1:-1:-1;;;2230:162:95;;-1:-1:-1;;;;;624:2139:95;;;2301:28;2230:162;;624:2139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2249:20;624:2139;2230:162;;;;;;;2301:28;2230:162;;;2010:751;2442:68;;;;;;:::i;:::-;624:2139;;2525:21;;;:59;;;2010:751;2521:234;;2010:751;;;:::o;2521:234::-;2607:137;624:2139;;;;;;:::i;:::-;;;;2635:95;;;624:2139;2607:137;624:2139;;2607:137;;;;;;:::i;2525:59::-;624:2139;;;2550:34;;2525:59;;2230:162;2442:68;2230:162;;;;;;;2301:28;2230:162;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;2295:47::-;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;2301:28;;;;;;;;;;;;;;:::i;:::-;;;;624:2139;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;624:2139:95;;;;:::o;:::-;;;:::o;2505:267:103:-;-1:-1:-1;624:2139:95;;;2692:16:103;624:2139:95;;;;;;;;-1:-1:-1;;;;;624:2139:95;;;;;;;;;2692:73:103;;2505:267;;2692:73;:::i;624:2139:95:-;;;;;;;;-1:-1:-1;624:2139:95;;-1:-1:-1;624:2139:95;;;-1:-1:-1;624:2139:95;:::o;:::-;;;;;;;;;;;;10580:184:97;624:2139:95;;10446:8:71;;;:63;-1:-1:-1;10446:63:71;-1:-1:-1;;;;;624:2139:95;;10726:7:97;624:2139:95;;10736:12:97;:17;:12;;:17;:::i;:::-;624:2139:95;;;;;;10580:184:97;:::o;10726:31::-;;;-1:-1:-1;10580:184:97;:::o;10446:63:71:-;624:2139:95;;;;;;;;;;13267:109:97;-1:-1:-1;13267:109:97;;-1:-1:-1;13267:109:97;;;624:2139:95;;;10446:63:71;;624:2139:95;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;624:2139:95;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;6491:564:103:-;6614:34;6491:564;6614:34;;;;:::i;:::-;-1:-1:-1;624:2139:95;;-1:-1:-1;;;6664:41:103;;-1:-1:-1;;;;;624:2139:95;;;6664:41:103;;;624:2139:95;;;;;6664:41:103;;;624:2139:95;;;6674:13:103;624:2139:95;;6664:41:103;;;;;;;-1:-1:-1;6664:41:103;;;6491:564;6663:42;;6659:90;;2684:111:30;;:::i;:::-;-1:-1:-1;624:2139:95;;-1:-1:-1;;;;;;624:2139:95;-1:-1:-1;;;;;624:2139:95;;;;;6664:41:103;624:2139:95;;;:::i;:::-;;;;;;;;;;;6892:23:103;;;;;;;;;-1:-1:-1;6892:23:103;;;6491:564;624:2139:95;;;6892:37:103;:64;;;6491:564;6888:112;;624:2139:95;7010:38:103;;624:2139:95;;-1:-1:-1;624:2139:95;;-1:-1:-1;;;;624:2139:95;;;;;;-1:-1:-1;;;624:2139:95;;;;;;;;6888:112:103;624:2139:95;;-1:-1:-1;;;6979:10:103;;6664:41;;6979:10;6892:64;-1:-1:-1;624:2139:95;;;;6892:64:103;;:23;;;;;;-1:-1:-1;6892:23:103;;;;;;:::i;:::-;;;;;6659:90;624:2139:95;;-1:-1:-1;;;6728:10:103;;6664:41;;6728:10;6664:41;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;624:2139:95;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;624:2139:95;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;624:2139:95;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;8889:1:97;624:2139:95;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;8406:869:97:-;;;624:2139:95;;8620:15:97;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;624:2139:95;9219:31:97;624:2139:95;9130:48:97;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;9130:48;624:2139:95;:::i;:::-;;9176:1:97;624:2139:95;9232:17:97;624:2139:95;;;;;;;;9232:17:97;;624:2139:95;-1:-1:-1;;;;;624:2139:95;;;;9219:12:97;;:31;:::i;624:2139:95:-;9259:7:97;;:::i;:::-;624:2139:95;;;;9252:15:97;9176:1;;9188:80;;8406:869::o;9010:62::-;8578:11;;-1:-1:-1;8578:11:97;;-1:-1:-1;8578:11:97;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;624:2139:95;;;;;;;8939:60:97;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;624:2139:95;;;;;;8759:49:97;624:2139:95;;;;8753:55:97;624:2139:95;;;8753:55:97;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;624:2139:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;7558:604:97:-;;624:2139:95;;7686:17:97;7682:83;;624:2139:95;7789:27:97;624:2139:95;7789:27:97;624:2139:95;;7789:27:97;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;624:2139:95;;;;;;;;;;;;;;;;7888:22:97;;;7884:77;;7975:21;-1:-1:-1;7975:84:97;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;624:2139:95;8075:24:97;:::o;7975:84::-;624:2139:95;;;8009:16:97;624:2139:95;;8009:16:97;:::i;:::-;624:2139:95;;;8001:24:97;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;624:2139:95;;;;;8029:29:97;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;624:2139:95;7926:24:97;:::o;7682:83::-;7726:28;;;;:::i;624:2139:95:-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;624:2139:95;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;624:2139:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3323:1122:103:-;;624:2139:95;;:::i;:::-;;;;3608:16:103;3604:109;;3323:1122;837:15:73;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;624:2139:95;;;;3778:27:103;;:13;;-1:-1:-1;;;;;624:2139:95;3778:13:103;624:2139:95;;-1:-1:-1;;;;;624:2139:95;;;3778:27:103;624:2139:95;;;;;;;3778:29:103;;;;;;;;;;;;;;;3740:67;3778:29;3759:48;3778:29;-1:-1:-1;3778:29:103;;;3323:1122;3759:48;;:::i;3740:67::-;624:2139:95;;;3740:67:103;;;:107;;;;;3323:1122;3740:197;;;;3323:1122;3723:263;;;624:2139:95;3778:29:103;624:2139:95;;;;;;;;;;4025:25:103;;;;;;;;;4010:143;4025:25;;;-1:-1:-1;4025:25:103;;;3323:1122;4113:30;;;624:2139:95;;;;;;;;;;;4010:143:103;;;;;3778:29;4010:143;;;:::i;:::-;;;-1:-1:-1;;;;;624:2139:95;4010:143:103;;;;;;;4181:257;4010:143;-1:-1:-1;4010:143:103;;;3323:1122;3996:157;;4293:102;3996:157;;4233:162;3996:157;4207:231;3996:157;;2936:28;:47;:38;:28;;;624:2139:95;;2936:16:103;624:2139:95;;;;;;;2936:28:103;624:2139:95;;;;;;;;;;;;;;;;2936:47:103;4351:43;;;4293:102;;:::i;:::-;4233:162;;:::i;:::-;3463:5:68;;;;3066;;624:2139:95;3060:42:68;3371:111;;4181:257:103;3323:1122;:::o;4010:143::-;4233:162;4010:143;;;4207:231;4010:143;;;;4293:102;4010:143;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;4025:25;;;;;;;;;;;;;;:::i;:::-;;;;3723:263;3962:13;;;;;;-1:-1:-1;3962:13:103;-1:-1:-1;3962:13:103;:::o;3740:197::-;3886:41;;3867:70;3886:51;;:41;;;624:2139:95;;3886:29:103;624:2139:95;;;;;;;3886:51:103;624:2139:95;;;;;3867:70:103;-1:-1:-1;3740:197:103;;;:107;837:15:73;;3811:36:103;819:34:73;837:15;819:34;:::i;3811:36:103:-;;;;3740:107;;;3778:29;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;3604:109;3662:40;;;;;;;;;;;;:::i;:::-;3604:109;;;;6893:76:26;;;:::i;:::-;;;:::i;:::-;1949:1:30;2499:73;1949:1;6893:76:26:o;624:2139:95:-;;;;;;;;;;-1:-1:-1;;;;;624:2139:95;;;;;;;-1:-1:-1;624:2139:95;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;18080:5181:68;18246:1;18241:6;;;18237:53;;18246:1;19217:14;-1:-1:-1;;;19278:16:68;;;19274:92;;18080:5181;22827:18;22717;22607;22498;22387;22278;23216:28;19383:15;19898:6;19383:15;-1:-1:-1;;;23237:6:68;19383:15;;;19379:90;;18080:5181;19493:7;19486:15;;;19482:90;;18080:5181;19596:7;19589:15;;;19585:89;;18080:5181;19698:6;19691:14;;;19687:87;;18080:5181;19798:6;19791:14;;;19787:87;;18080:5181;19891:14;;19887:61;;18080:5181;20374:1;624:2139:95;18246:1:68;624:2139:95;22284:6:68;;;;:::i;:::-;624:2139:95;;;;;22278:18:68;22393:6;;;;:::i;22387:18::-;22504:6;;;;:::i;22498:18::-;22613:6;;;;:::i;22607:18::-;22723:6;;;;:::i;22717:18::-;22833:6;;;;:::i;22827:18::-;23237:6;;;:::i;:::-;23232:11;;;624:2139:95;23216:28:68;624:2139:95;;18080:5181:68;:::o;19887:61::-;18246:1;624:2139:95;19887:61:68;;19787:87;624:2139:95;;;;;19787:87:68;;;19687;624:2139:95;;;;;19687:87:68;;;19585:89;624:2139:95;;;;;19585:89:68;;;19482:90;624:2139:95;;;;;19482:90:68;;;19379;624:2139:95;;;;;19379:90:68;;;19274:92;-1:-1:-1;;;;624:2139:95;-1:-1:-1;624:2139:95;;;;19274:92:68;;12497:447:97;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;3721:5:68;;;;;;624:2139:95;;3731:5:68;;;624:2139:95;;;;;;;;;13267:109:97;-1:-1:-1;13267:109:97;624:2139:95;13267:109:97;;;-1:-1:-1;13267:109:97;;624:2139:95;;;;;-1:-1:-1;12771:136:97;624:2139:95;;;12830:10:97;;12771:136;;12687:230;;;;12771:136;624:2139:95;;;;;;;;;;;12771:136:97;;;6999:207;;624:2139:95;;9737:15:71;-1:-1:-1;9762:18:71;9795:7;9801:1;9795:7;;9791:234;;6999:207:97;10049:53:71;;;;;:::i;:::-;10120:8;;;:63;-1:-1:-1;10120:63:71;;-1:-1:-1;;;;;624:2139:95;;7168:7:97;624:2139:95;;;7178:12:97;;:17;:12;;:17;:::i;10120:63:71:-;10135:41;10168:7;10135:48;10168:7;;:::i;:::-;10135:41;13267:109:97;;;;;;13089:293;;10135:41:71;624:2139:95;;;;;10135:48:71;10120:63;;;9791:234;9838:14;;;;;:::i;:::-;624:2139:95;;;;;;;10049:53:71;13267:109:97;;-1:-1:-1;13267:109:97;624:2139:95;13267:109:97;;;-1:-1:-1;13267:109:97;;624:2139:95;;;;;9870:48:71;9866:149;624:2139:95;;;9938:10:71;9866:149;9791:234;;9866:149;9993:7;;;;;;:::i;:::-;9866:149;9791:234;;624:2139:95;;;;;;;:::i;:::-;-1:-1:-1;624:2139:95;;;;;;;:::o;11486:272:97:-;;624:2139:95;11452:22:71;11718:31:97;11486:272;624:2139:95;;:::i;:::-;;;;:::i;:::-;;11452:22:71;;:::i;:::-;624:2139:95;;:::i;:::-;;11718:12:97;624:2139:95;;;;;11731:17:97;624:2139:95;;;;;11731:17:97;;624:2139:95;;11718:12:97;;:31;:::i;:::-;624:2139:95;;;;;;;;;:::i;:::-;;;;;;11731:17:97;11672:79;;624:2139:95;11486:272:97;:::o;7084:141:26:-;624:2139:95;-1:-1:-1;;;;;;;;;;;624:2139:95;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;624:2139:95;;-1:-1:-1;;;7191:17:26;;;;;14296:213:69;624:2139:95;14374:24:69;;;;14370:103;;624:2139:95;14296:213:69;:::o;14370:103::-;624:2139:95;;;;14421:41:69;;;;;;14452:2;14421:41;;;624:2139:95;;;;;14421:41:69","linkReferences":{},"immutableReferences":{"59800":[{"start":715,"length":32}],"59803":[{"start":2308,"length":32}],"64360":[{"start":1525,"length":32}],"64703":[{"start":1686,"length":32},{"start":3114,"length":32}],"64705":[{"start":1367,"length":32}],"64707":[{"start":1435,"length":32}],"67584":[{"start":361,"length":32},{"start":3711,"length":32}],"67587":[{"start":647,"length":32}]}},"methodIdentifiers":{"BASE_DELEGATOR_HINTS()":"79d89614","BURNER_GAS_LIMIT()":"d5c24e1a","BURNER_RESERVE()":"2964f8dc","FACTORY()":"2dd31000","NETWORK_MIDDLEWARE_SERVICE()":"2c9d45b3","SLASHER_HINTS()":"4eb5a242","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","VETO_SLASHER_HINTS()":"6565b7db","cumulativeSlash(bytes32,address)":"1a2be2c4","cumulativeSlashAt(bytes32,address,uint48,bytes)":"aa8e6489","cumulativeSlashHint(address,bytes32,address,uint48)":"4a719655","cumulativeSlashHintInternal(bytes32,address,uint48)":"77028046","initialize(bytes)":"439fab91","isBurnerHook()":"34d098ea","latestSlashedCaptureTimestamp(bytes32,address)":"267de1f3","slashableStake(bytes32,address,uint48,bytes)":"aab3595f","slashableStakeHints(address,bytes32,address,uint48)":"4ea2e926","staticDelegateCall(address,bytes)":"9f86fd85","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseDelegatorHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBurnerGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetworkMiddleware\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_DELEGATOR_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_MIDDLEWARE_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VETO_SLASHER_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"cumulativeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"cumulativeSlashAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"cumulativeSlashHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"cumulativeSlashHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isBurnerHook\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"latestSlashedCaptureTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"value\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slashableStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"slashableStakeHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"cumulativeSlash(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"cumulative slash amount\"}},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the cumulative slash amount until (inclusively)\"},\"returns\":{\"_0\":\"cumulative slash amount until the given timestamp (inclusively)\"}},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"slashableStake(bytes32,address,uint48,bytes)\":{\"params\":{\"captureTimestamp\":\"time point to get the stake amount at\",\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"amount\":\"slashable amount of the stake\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"BURNER_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the burner.\"},\"BURNER_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the burner's execution.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"NETWORK_MIDDLEWARE_SERVICE()\":{\"notice\":\"Get the network middleware service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"cumulativeSlash(bytes32,address)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork.\"},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"isBurnerHook()\":{\"notice\":\"Get if the burner is needed to be called on a slashing.\"},\"latestSlashedCaptureTimestamp(bytes32,address)\":{\"notice\":\"Get the latest capture timestamp that was slashed on a subnetwork.\"},\"slashableStake(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a slashable amount of a stake got at a given capture timestamp using hints.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/SlasherHints.sol\":\"BaseSlasherHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf\",\"dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x4aaaf1c0737dd16e81f0d2b9833c549747a5ede6873bf1444bc72aa572d03e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eada27d7668eebaea16c3b890aa1b38ffc53965292e26c96f7c44834623f4710\",\"dweb:/ipfs/QmVSWuLtxyCqNbLyY89ptxkvsk4CLLKDQYigEne5Qj8k1L\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a\",\"dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c\",\"dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e\",\"dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0xbdc3bb48ccedb818cd75a6d74a16df55a822e9f6d3cc54c59f576f10aab67b5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2284f25f2478f419d7781573b17a89d0e7c5589a865d55e2d6ed5163aee23aa8\",\"dweb:/ipfs/QmNsr2625APBQiNKpYnX5VcSnYgfUHR9Uzzp9pRXjoDqK7\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44\",\"dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x303ad40a3de8fa808cc30a6fbd5998633f6a89b982e6db1fa981e0566ab445e7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fa8fb92995ead02798e013190b87b84b44cc68668262f045c9b0b4783940e2bf\",\"dweb:/ipfs/QmV1uKGVLKwWisc714R8fCt71gXUQJpaKvdc6LQ8WtvMpL\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0xd71e9102e99a25ee8b5435779f011a24558f56074aa2b16c18b623b57754ae97\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://29db5552e55dab51bea1ae40ba00ca674cb50fcb10997999a72a94527b6eb591\",\"dweb:/ipfs/QmQrYyTPx73ubNxMhYWJCkprCVFVtuTFcKaabYiKTe71tY\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/SlasherHints.sol\":{\"keccak256\":\"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595\",\"dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/slasher/BaseSlasher.sol\":{\"keccak256\":\"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06\",\"dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF\"]},\"src/contracts/slasher/Slasher.sol\":{\"keccak256\":\"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61\",\"dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3\"]},\"src/contracts/slasher/VetoSlasher.sol\":{\"keccak256\":\"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429\",\"dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x7ee6dbf060c45d6eba95315f4ac0b3b467dd9c4999b84c31d6f66d4d8b53a116\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://301948b8ea522db292aa2722ba42def3911dae95f0b376f7023c3fef470f8676\",\"dweb:/ipfs/QmSDbP2HdzhDAzstr8Zz5isEAcSkma8ABc5UwPsoazaumZ\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/slasher/IBurner.sol\":{\"keccak256\":\"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447\",\"dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW\"]},\"src/interfaces/slasher/ISlasher.sol\":{\"keccak256\":\"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1\",\"dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ\"]},\"src/interfaces/slasher/IVetoSlasher.sol\":{\"keccak256\":\"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508\",\"dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseDelegatorHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientBurnerGas"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NoBurner"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetworkMiddleware"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_DELEGATOR_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VETO_SLASHER_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"cumulativeSlash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"cumulativeSlashAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"cumulativeSlashHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"cumulativeSlashHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isBurnerHook","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"latestSlashedCaptureTimestamp","outputs":[{"internalType":"uint48","name":"value","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"slashableStake","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"slashableStakeHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"cumulativeSlash(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"cumulative slash amount"}},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the cumulative slash amount until (inclusively)"},"returns":{"_0":"cumulative slash amount until the given timestamp (inclusively)"}},"initialize(bytes)":{"params":{"data":"some data to use"}},"slashableStake(bytes32,address,uint48,bytes)":{"params":{"captureTimestamp":"time point to get the stake amount at","hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"amount":"slashable amount of the stake"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}}},"version":1},"userdoc":{"kind":"user","methods":{"BURNER_GAS_LIMIT()":{"notice":"Get a gas limit for the burner."},"BURNER_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the burner's execution."},"FACTORY()":{"notice":"Get the factory's address."},"NETWORK_MIDDLEWARE_SERVICE()":{"notice":"Get the network middleware service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"cumulativeSlash(bytes32,address)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork."},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"isBurnerHook()":{"notice":"Get if the burner is needed to be called on a slashing."},"latestSlashedCaptureTimestamp(bytes32,address)":{"notice":"Get the latest capture timestamp that was slashed on a subnetwork."},"slashableStake(bytes32,address,uint48,bytes)":{"notice":"Get a slashable amount of a stake got at a given capture timestamp using hints."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/SlasherHints.sol":"BaseSlasherHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866","urls":["bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf","dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab","urls":["bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89","dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606","urls":["bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1","dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x4aaaf1c0737dd16e81f0d2b9833c549747a5ede6873bf1444bc72aa572d03e98","urls":["bzz-raw://eada27d7668eebaea16c3b890aa1b38ffc53965292e26c96f7c44834623f4710","dweb:/ipfs/QmVSWuLtxyCqNbLyY89ptxkvsk4CLLKDQYigEne5Qj8k1L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol":{"keccak256":"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549","urls":["bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a","dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed","urls":["bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0","dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d","urls":["bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c","dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575","urls":["bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e","dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0xbdc3bb48ccedb818cd75a6d74a16df55a822e9f6d3cc54c59f576f10aab67b5f","urls":["bzz-raw://2284f25f2478f419d7781573b17a89d0e7c5589a865d55e2d6ed5163aee23aa8","dweb:/ipfs/QmNsr2625APBQiNKpYnX5VcSnYgfUHR9Uzzp9pRXjoDqK7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f","urls":["bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44","dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x303ad40a3de8fa808cc30a6fbd5998633f6a89b982e6db1fa981e0566ab445e7","urls":["bzz-raw://fa8fb92995ead02798e013190b87b84b44cc68668262f045c9b0b4783940e2bf","dweb:/ipfs/QmV1uKGVLKwWisc714R8fCt71gXUQJpaKvdc6LQ8WtvMpL"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0xd71e9102e99a25ee8b5435779f011a24558f56074aa2b16c18b623b57754ae97","urls":["bzz-raw://29db5552e55dab51bea1ae40ba00ca674cb50fcb10997999a72a94527b6eb591","dweb:/ipfs/QmQrYyTPx73ubNxMhYWJCkprCVFVtuTFcKaabYiKTe71tY"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/SlasherHints.sol":{"keccak256":"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f","urls":["bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595","dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/slasher/BaseSlasher.sol":{"keccak256":"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6","urls":["bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06","dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF"],"license":"BUSL-1.1"},"src/contracts/slasher/Slasher.sol":{"keccak256":"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f","urls":["bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61","dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3"],"license":"BUSL-1.1"},"src/contracts/slasher/VetoSlasher.sol":{"keccak256":"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897","urls":["bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429","dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x7ee6dbf060c45d6eba95315f4ac0b3b467dd9c4999b84c31d6f66d4d8b53a116","urls":["bzz-raw://301948b8ea522db292aa2722ba42def3911dae95f0b376f7023c3fef470f8676","dweb:/ipfs/QmSDbP2HdzhDAzstr8Zz5isEAcSkma8ABc5UwPsoazaumZ"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/slasher/IBurner.sol":{"keccak256":"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b","urls":["bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447","dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW"],"license":"MIT"},"src/interfaces/slasher/ISlasher.sol":{"keccak256":"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625","urls":["bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1","dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ"],"license":"MIT"},"src/interfaces/slasher/IVetoSlasher.sol":{"keccak256":"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9","urls":["bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508","dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":95} \ No newline at end of file diff --git a/out/SlasherHints.sol/SlasherHints.json b/out/SlasherHints.sol/SlasherHints.json index 3ebb2258..f0606a0f 100644 --- a/out/SlasherHints.sol/SlasherHints.json +++ b/out/SlasherHints.sol/SlasherHints.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"baseSlasherHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_SLASHER_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"BURNER_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BURNER_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isBurnerHook","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestSlashedCaptureTimestamp","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"slash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"slashHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"msgSender","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"slashableStake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Slash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientBurnerGas","inputs":[]},{"type":"error","name":"InsufficientSlash","inputs":[]},{"type":"error","name":"InvalidCaptureTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NoBurner","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetworkMiddleware","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x6101403461015d576001600160401b0390601f61201038819003918201601f1916830191848311848410176101615780849260209460405283398101031261015d5751906001600160a01b038216820361015d57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c1661014b578080831603610106575b835f60a0525f60c0525f60e052610100905f825261012090815260405190611e9a9283610176843960805183505060a051836104f2015260c0518381816109490152611373015260e05183818161031d01526116a301525182818161021c01526104ae0152518181816106920152610d390152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8080610091565b60405163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c8063021a815614610124578063103f29071461011f5780631a2be2c41461011a578063238ab85f14610115578063267de1f3146101105780632964f8dc1461010b5780632c9d45b3146101065780632dd310001461010157806334d098ea146100fc578063439fab91146100f7578063457821b7146100f25780639f86fd85146100ed578063aa8e6489146100e8578063aab3595f146100e3578063bb24fe8a146100de578063d5c24e1a146100d95763fbfa77cf146100d4575f80fd5b61098a565b61096d565b61092a565b610905565b6108c7565b6106c1565b61067d565b610545565b610521565b6104dd565b610499565b61047d565b610428565b6103c4565b61034c565b610308565b61017b565b6001600160a01b0381160361013a57565b5f80fd5b65ffffffffffff81160361013a57565b9181601f8401121561013a578235916001600160401b03831161013a576020838186019501011161013a57565b3461013a5760a036600319011261013a5760043560243561019b81610129565b6064356101a78161013e565b6084356001600160401b03811161013a576101c690369060040161014e565b917f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0060028154146102ec5760029055604051635daf681960e11b8152606086901c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa9182156102e7575f926102b6575b50339116036102a4576102a0946102679460443591610a63565b61029060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6040519081529081906020820190565b0390f35b60405163227bf64d60e01b8152600490fd5b6102d991925060203d6020116102e0575b6102d181836107dd565b810190610de5565b905f61024d565b503d6102c7565b610a27565b604051633ee5aeb560e01b8152600490fd5b5f91031261013a57565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a57604036600319011261013a57602061039861039360243561037181610129565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6115c2565b604051908152f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461013a5760c036600319011261013a576102a06104146004356103e781610129565b6103f2602435610129565b6064356103fe81610129565b60a4359161040b8361013e565b60443590610ced565b6040519182916020835260208301906103a0565b3461013a57604036600319011261013a57602065ffffffffffff61047360243561045181610129565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b3461013a575f36600319011261013a576020604051614e208152f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a57602060ff5f5460a01c166040519015158152f35b3461013a57602036600319011261013a576001600160401b0360043581811161013a5761057690369060040161014e565b5f80516020611e45833981519152549260ff8460401c1615931680159081610675575b600114908161066b575b159081610662575b50610650575f80516020611e45833981519152805467ffffffffffffffff191660011790556105de918361062c5761166c565b6105e457005b5f80516020611e45833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611e45833981519152805460ff60401b1916600160401b17905561166c565b60405163f92ee8a960e01b8152600490fd5b9050155f6105ab565b303b1591506105a3565b849150610599565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a5760408060031936011261013a576004356106df81610129565b602435906001600160401b03821161013a575f809161070561076994369060040161014e565b908187519283928337810184815203915af43d156107715761075b3d61072a8161081a565b90610737865192836107dd565b81523d5f602083013e5b8451948593151560208501528084015260608301906103a0565b03601f1981018352826107dd565b805190602001fd5b61075b6060610741565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176107aa57604052565b61077b565b604081019081106001600160401b038211176107aa57604052565b6001600160401b0381116107aa57604052565b90601f801991011681019081106001600160401b038211176107aa57604052565b6040519061080b826107af565b565b6040519061080b8261078f565b6001600160401b0381116107aa57601f01601f191660200190565b81601f8201121561013a5780359061084c8261081a565b9261085a60405194856107dd565b8284526020838301011161013a57815f926020809301838601378301015290565b90608060031983011261013a576004359160243561089881610129565b916044356108a58161013e565b91606435906001600160401b03821161013a576108c491600401610835565b90565b3461013a5760206103986109006108dd3661087b565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b611806565b3461013a5760206109216109183661087b565b92919091610edf565b50604051908152f35b3461013a575f36600319011261013a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461013a575f36600319011261013a576020604051620249f08152f35b3461013a575f36600319011261013a575f546040516001600160a01b039091168152602090f35b604051906109be8261078f565b60608252565b9060208282031261013a5781356001600160401b039283821161013a57019060208282031261013a57604051926109fa8461078f565b823590811161013a57610a0d9201610835565b815290565b9081602091031261013a57516108c48161013e565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9182169082160391908211610a5e57565b610a32565b92939594919095610a726109b1565b9280610c53575b5050610a84426118de565b5f54600490602090610aac90610aa0906001600160a01b031681565b6001600160a01b031690565b6040516327f843b560e11b815292839182905afa80156102e757610ae692610adb925f92610c22575b50610a46565b65ffffffffffff1690565b65ffffffffffff8516908110908115610c0c575b50610bfa57610b0f610b1e9251858886610edf565b92909180831890831102821890565b958615610be857610ba361075b610b9a610be3947fe0cbbe1f1e6fd806ca87036fafcebaf7ab5247474a3b20e1c37bb50122c3a88496610b5f8a878b611115565b610b6a8c878b6111a3565b610b726107fe565b9182526020820152604051928391602083019190916020806040830194805184520151910152565b8689848861130f565b610bad8588611418565b610bb98588838761149d565b6040805188815265ffffffffffff90961660208701526001600160a01b0390911694918291820190565b0390a3565b60405163167f871760e31b8152600490fd5b604051631357ac9160e11b8152600490fd5b9050610c1a610adb426118de565b11155f610afa565b610c4591925060203d602011610c4c575b610c3d81836107dd565b810190610a12565b905f610ad5565b503d610c33565b610c619293508101906109c4565b905f80610a79565b81601f8201121561013a57805190610c808261081a565b92610c8e60405194856107dd565b8284526020838301011161013a57815f9260208093018386015e8301015290565b9060208282031261013a5781516001600160401b03811161013a576108c49201610c69565b60406108c49260208352519160208082015201906103a0565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252918216604482015265ffffffffffff909216606483015260609291905f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156102e7575f91610d97575b508051610d735750565b61075b9192506108c490610d8561080d565b90815260405192839160208301610cd4565b610db391503d805f833e610dab81836107dd565b810190610caf565b5f610d69565b5f9081526002602090815260408083206001600160a01b039094168352929052206108c4929190611806565b9081602091031261013a57516108c481610129565b60405190610e07826107af565b60606020838281520152565b9060208282031261013a5781516001600160401b039283821161013a57019060408282031261013a5760405192610e49846107af565b825181811161013a5782610e5e918501610c69565b8452602083015190811161013a57610e769201610c69565b602082015290565b9081602091031261013a575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526108c4929101906103a0565b5f19810191908211610a5e57565b91908203918211610a5e57565b92610ee8610dfa565b908051806110fb575b5050610efc426118de565b5f54909490610f1590610aa0906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa80156102e757610f4992610adb925f926110e35750610a46565b65ffffffffffff82169081109081156110cc575b811561109b575b5061108f578560049560405196878092630ce9b79360e41b82525afa9485156102e757610fb69587915f91611072575b50845190604051808099819463e02f693760e01b8352878b8a60048601610e8d565b03916001600160a01b03165afa9384156102e75761102e955f95611031575b509261101d85936110239361101d96869a61101461039383610fff875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610db9565b90610ed2565b818082109118021890565b91565b61102392955061101d94919361105f61101d928a3d8c1161106b575b61105781836107dd565b810190610e7e565b96935093919450610fd5565b503d61104d565b6110899150823d84116102e0576102d181836107dd565b5f610f94565b5050505050505f905f90565b90506110c5610adb6110b987610fff875f52600160205260405f2090565b5465ffffffffffff1690565b115f610f64565b90506110da610adb426118de565b81101590610f5d565b610c459192508a3d8c11610c4c57610c3d81836107dd565b61110e9250602080918301019101610e13565b5f80610ef1565b919091805f52600160205265ffffffffffff806111458560405f209060018060a01b03165f5260205260405f2090565b54169083161161115457505050565b61080b9261117c915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9060018201809211610a5e57565b9190825f5260026020526111fb6103936111d08360405f209060018060a01b03165f5260205260405f2090565b926111da426118de565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211610a5e57600181019081541561129f575b61121b81611b1c565b50949083549561122a846115c2565b508161128a575b50156112695750505f198301928311610a5e5761080b9261125191611599565b90919082549060031b91821b915f19901b1916179055565b61080b94611283926001600160d01b039091169190611bdd565b505061193d565b65ffffffffffff83811691161490505f611231565b6112a882611910565b611212565b606060206108c4938184526001600160401b038151168285015201519160408082015201906103a0565b919360a0936108c4969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906103a0565b9293906004602061132c610aa0610aa05f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa9081156102e75761075b916113aa915f916113f9575b506001600160a01b0316936113696107fe565b6001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152906020820152604051928391602083016112ad565b823b1561013a575f946113d586926040519889978896879563724ab0f760e11b8752600487016112d7565b03925af180156102e7576113e65750565b806113f361080b926107ca565b806102fe565b611412915060203d6020116102e0576102d181836107dd565b5f611356565b5f8054604051631c9e38c760e21b8152600481019390935265ffffffffffff9390931660248301529091602091839160449183916001600160a01b03165af180156102e7576114645750565b61147c9060203d60201161106b5761105781836107dd565b50565b8115611489570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c166114b5575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa9182156102e7575f92611572575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff909116608483015261153f8260a481015b03601f1981018452836107dd565b6202a15c5a10611560575f928380935192620249f0f1505f808080806114ae565b604051632153f33560e21b8152600490fd5b61153f92506115926115319160203d6020116102e0576102d181836107dd565b92506114e6565b80548210156115ae575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b8054806115f757505f5b6001600160d01b038116156115f15760016115e79201611599565b90549060031b1c90565b50505f90565b5f19908082810111610a5e57825f5260205f2001015460301c6115cc565b91909160408184031261013a57803561162d81610129565b9260208201356001600160401b03811161013a576108c49201610835565b5190811515820361013a57565b9081602091031261013a576108c49061164b565b61167891810190611615565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156102e7575f916117a8575b501561179657816117086004926116e9611960565b5f80546001600160a01b0319166001600160a01b038916179055611996565b94604051928380926313c085b760e11b82525afa9182156102e7575f92611779575b505016158061176f575b61175d575161080b9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b5080511515611734565b61178f9250803d106102e0576102d181836107dd565b5f8061172a565b6040516362df054560e01b8152600490fd5b6117c89150833d85116117ce575b6117c081836107dd565b810190611658565b5f6116d4565b503d6117b6565b9081602091031261013a575163ffffffff8116810361013a5790565b90600163ffffffff80931601918211610a5e57565b918051156118d45780602080611821935183010191016117d5565b9161182c8382611aae565b9261183d845165ffffffffffff1690565b9065ffffffffffff80851692168281146118c85782119182611873575b505061186a576108c492506119de565b50506020015190565b9091506118808354610ec4565b63ffffffff831614918215611899575b50505f8061185a565b6118c09192506118b46118ae610adb926117f1565b85611aae565b5165ffffffffffff1690565b115f80611890565b50505050506020015190565b506108c4916119de565b65ffffffffffff908181116118f1571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b8054600160401b8110156107aa5761192d91600182018155611599565b8154905f199060031b1b19169055565b90815491600160401b8310156107aa578261125191600161080b95018155611599565b611968611b55565b611970611b55565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f6040516119a38161078f565b5260208180518101031261013a576020906040516119c08161078f565b6119d86040519384936119d28561078f565b0161164b565b82525290565b908154905f829160058411611a48575b6119f9935084611de5565b80611a2157505f905b6001600160d01b038216156115f1576108c49160016115e79201611599565b611a3b611a30611a4292610ec4565b835f5260205f200190565b5460301c90565b90611a02565b9192611a5381611cba565b8103908111610a5e576119f993855f5265ffffffffffff808360205f20015416908516105f14611a845750916119ee565b929150611a9090611195565b906119ee565b60405190611aa3826107af565b5f6020838281520152565b9060206001611ad2611afe93611ac2611a96565b50611acb611a96565b5085611599565b509360405194611ae1866107af565b549465ffffffffffff86169586825260301c938491015201611599565b90549060405192611b0e846107af565b835260031b1c602082015290565b805480611b2d5750505f905f905f90565b5f19918183810111610a5e575f5260205f2001015460019165ffffffffffff82169160301c90565b60ff5f80516020611e458339815191525460401c1615611b7157565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156107aa57611ba091600182018155611599565b611bca57815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293928015611c9057611bf4611bff91610ec4565b825f5260205f200190565b9182549265ffffffffffff91828516928116808411611c7e57879303611c455750611c3e92509065ffffffffffff82549181199060301b169116179055565b60301c9190565b915050611c7991611c65611c576107fe565b65ffffffffffff9093168352565b6001600160d01b0386166020830152611b83565b611c3e565b604051632520601d60e01b8152600490fd5b5090611cb591611ca1611c576107fe565b6001600160d01b0385166020830152611b83565b5f9190565b60018111156108c457600181600160801b811015611dd3575b611d7b611d71611d67611d5d611d53611d49611d8797600488600160401b611d829a1015611dc6575b640100000000811015611db9575b62010000811015611dac575b610100811015611da0575b6010811015611d94575b1015611d8c575b60030260011c611d42818b61147f565b0160011c90565b611d42818a61147f565b611d42818961147f565b611d42818861147f565b611d42818761147f565b611d42818661147f565b809361147f565b821190565b900390565b60011b611d32565b811c9160021b91611d2b565b60081c91811b91611d21565b60101c9160081b91611d16565b60201c9160101b91611d0a565b60401c9160201b91611cfc565b50600160401b9050608082901c611cd3565b91905b838210611df55750505090565b9091928083169080841860011c8201809211610a5e57845f5265ffffffffffff808360205f20015416908416105f14611e325750925b9190611de8565b939250611e3e90611195565b91611e2b56fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220491c9e61f3cbaa2cb7b976430dd294da0ba4b4d592923d88df03120ff8c5bc2564736f6c63430008190033","sourceMap":"2765:796:97:-:0;;;;-1:-1:-1;;;;;2765:796:97;;;;;;;;;;-1:-1:-1;;2765:796:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:796:97;;;;;;348:4:95;332:21;;8837:64:26;2765:796:97;;;;;;;;;7896:76:26;;2765:796:97;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:82;-1:-1:-1;525:17:82;;-1:-1:-1;552:12:82;;-1:-1:-1;2353:28:105;;2391:53;;-1:-1:-1;2391:53:105;;2970:37:97;;;;2765:796;;;;;;;;;332:21:95;2765:796:97;;;;525:17:82;2765:796:97;;;;;552:12:82;2765:796:97;;;;;;;;;;2353:28:105;2765:796:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;2765:796:97;;;;;;;;;;;;;8087:29:26;;2765:796:97;;8087:29:26;7981:146;;;;;7896:76;2765:796:97;;-1:-1:-1;;;7938:23:26;;;;;2765:796:97;-1:-1:-1;2765:796:97;;;;;;-1:-1:-1;2765:796:97;;;;;-1:-1:-1;2765:796:97","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063021a815614610124578063103f29071461011f5780631a2be2c41461011a578063238ab85f14610115578063267de1f3146101105780632964f8dc1461010b5780632c9d45b3146101065780632dd310001461010157806334d098ea146100fc578063439fab91146100f7578063457821b7146100f25780639f86fd85146100ed578063aa8e6489146100e8578063aab3595f146100e3578063bb24fe8a146100de578063d5c24e1a146100d95763fbfa77cf146100d4575f80fd5b61098a565b61096d565b61092a565b610905565b6108c7565b6106c1565b61067d565b610545565b610521565b6104dd565b610499565b61047d565b610428565b6103c4565b61034c565b610308565b61017b565b6001600160a01b0381160361013a57565b5f80fd5b65ffffffffffff81160361013a57565b9181601f8401121561013a578235916001600160401b03831161013a576020838186019501011161013a57565b3461013a5760a036600319011261013a5760043560243561019b81610129565b6064356101a78161013e565b6084356001600160401b03811161013a576101c690369060040161014e565b917f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0060028154146102ec5760029055604051635daf681960e11b8152606086901c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa9182156102e7575f926102b6575b50339116036102a4576102a0946102679460443591610a63565b61029060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6040519081529081906020820190565b0390f35b60405163227bf64d60e01b8152600490fd5b6102d991925060203d6020116102e0575b6102d181836107dd565b810190610de5565b905f61024d565b503d6102c7565b610a27565b604051633ee5aeb560e01b8152600490fd5b5f91031261013a57565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a57604036600319011261013a57602061039861039360243561037181610129565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6115c2565b604051908152f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461013a5760c036600319011261013a576102a06104146004356103e781610129565b6103f2602435610129565b6064356103fe81610129565b60a4359161040b8361013e565b60443590610ced565b6040519182916020835260208301906103a0565b3461013a57604036600319011261013a57602065ffffffffffff61047360243561045181610129565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b3461013a575f36600319011261013a576020604051614e208152f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a57602060ff5f5460a01c166040519015158152f35b3461013a57602036600319011261013a576001600160401b0360043581811161013a5761057690369060040161014e565b5f80516020611e45833981519152549260ff8460401c1615931680159081610675575b600114908161066b575b159081610662575b50610650575f80516020611e45833981519152805467ffffffffffffffff191660011790556105de918361062c5761166c565b6105e457005b5f80516020611e45833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611e45833981519152805460ff60401b1916600160401b17905561166c565b60405163f92ee8a960e01b8152600490fd5b9050155f6105ab565b303b1591506105a3565b849150610599565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a5760408060031936011261013a576004356106df81610129565b602435906001600160401b03821161013a575f809161070561076994369060040161014e565b908187519283928337810184815203915af43d156107715761075b3d61072a8161081a565b90610737865192836107dd565b81523d5f602083013e5b8451948593151560208501528084015260608301906103a0565b03601f1981018352826107dd565b805190602001fd5b61075b6060610741565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176107aa57604052565b61077b565b604081019081106001600160401b038211176107aa57604052565b6001600160401b0381116107aa57604052565b90601f801991011681019081106001600160401b038211176107aa57604052565b6040519061080b826107af565b565b6040519061080b8261078f565b6001600160401b0381116107aa57601f01601f191660200190565b81601f8201121561013a5780359061084c8261081a565b9261085a60405194856107dd565b8284526020838301011161013a57815f926020809301838601378301015290565b90608060031983011261013a576004359160243561089881610129565b916044356108a58161013e565b91606435906001600160401b03821161013a576108c491600401610835565b90565b3461013a5760206103986109006108dd3661087b565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b611806565b3461013a5760206109216109183661087b565b92919091610edf565b50604051908152f35b3461013a575f36600319011261013a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461013a575f36600319011261013a576020604051620249f08152f35b3461013a575f36600319011261013a575f546040516001600160a01b039091168152602090f35b604051906109be8261078f565b60608252565b9060208282031261013a5781356001600160401b039283821161013a57019060208282031261013a57604051926109fa8461078f565b823590811161013a57610a0d9201610835565b815290565b9081602091031261013a57516108c48161013e565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9182169082160391908211610a5e57565b610a32565b92939594919095610a726109b1565b9280610c53575b5050610a84426118de565b5f54600490602090610aac90610aa0906001600160a01b031681565b6001600160a01b031690565b6040516327f843b560e11b815292839182905afa80156102e757610ae692610adb925f92610c22575b50610a46565b65ffffffffffff1690565b65ffffffffffff8516908110908115610c0c575b50610bfa57610b0f610b1e9251858886610edf565b92909180831890831102821890565b958615610be857610ba361075b610b9a610be3947fe0cbbe1f1e6fd806ca87036fafcebaf7ab5247474a3b20e1c37bb50122c3a88496610b5f8a878b611115565b610b6a8c878b6111a3565b610b726107fe565b9182526020820152604051928391602083019190916020806040830194805184520151910152565b8689848861130f565b610bad8588611418565b610bb98588838761149d565b6040805188815265ffffffffffff90961660208701526001600160a01b0390911694918291820190565b0390a3565b60405163167f871760e31b8152600490fd5b604051631357ac9160e11b8152600490fd5b9050610c1a610adb426118de565b11155f610afa565b610c4591925060203d602011610c4c575b610c3d81836107dd565b810190610a12565b905f610ad5565b503d610c33565b610c619293508101906109c4565b905f80610a79565b81601f8201121561013a57805190610c808261081a565b92610c8e60405194856107dd565b8284526020838301011161013a57815f9260208093018386015e8301015290565b9060208282031261013a5781516001600160401b03811161013a576108c49201610c69565b60406108c49260208352519160208082015201906103a0565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252918216604482015265ffffffffffff909216606483015260609291905f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156102e7575f91610d97575b508051610d735750565b61075b9192506108c490610d8561080d565b90815260405192839160208301610cd4565b610db391503d805f833e610dab81836107dd565b810190610caf565b5f610d69565b5f9081526002602090815260408083206001600160a01b039094168352929052206108c4929190611806565b9081602091031261013a57516108c481610129565b60405190610e07826107af565b60606020838281520152565b9060208282031261013a5781516001600160401b039283821161013a57019060408282031261013a5760405192610e49846107af565b825181811161013a5782610e5e918501610c69565b8452602083015190811161013a57610e769201610c69565b602082015290565b9081602091031261013a575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526108c4929101906103a0565b5f19810191908211610a5e57565b91908203918211610a5e57565b92610ee8610dfa565b908051806110fb575b5050610efc426118de565b5f54909490610f1590610aa0906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa80156102e757610f4992610adb925f926110e35750610a46565b65ffffffffffff82169081109081156110cc575b811561109b575b5061108f578560049560405196878092630ce9b79360e41b82525afa9485156102e757610fb69587915f91611072575b50845190604051808099819463e02f693760e01b8352878b8a60048601610e8d565b03916001600160a01b03165afa9384156102e75761102e955f95611031575b509261101d85936110239361101d96869a61101461039383610fff875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610db9565b90610ed2565b818082109118021890565b91565b61102392955061101d94919361105f61101d928a3d8c1161106b575b61105781836107dd565b810190610e7e565b96935093919450610fd5565b503d61104d565b6110899150823d84116102e0576102d181836107dd565b5f610f94565b5050505050505f905f90565b90506110c5610adb6110b987610fff875f52600160205260405f2090565b5465ffffffffffff1690565b115f610f64565b90506110da610adb426118de565b81101590610f5d565b610c459192508a3d8c11610c4c57610c3d81836107dd565b61110e9250602080918301019101610e13565b5f80610ef1565b919091805f52600160205265ffffffffffff806111458560405f209060018060a01b03165f5260205260405f2090565b54169083161161115457505050565b61080b9261117c915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9060018201809211610a5e57565b9190825f5260026020526111fb6103936111d08360405f209060018060a01b03165f5260205260405f2090565b926111da426118de565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211610a5e57600181019081541561129f575b61121b81611b1c565b50949083549561122a846115c2565b508161128a575b50156112695750505f198301928311610a5e5761080b9261125191611599565b90919082549060031b91821b915f19901b1916179055565b61080b94611283926001600160d01b039091169190611bdd565b505061193d565b65ffffffffffff83811691161490505f611231565b6112a882611910565b611212565b606060206108c4938184526001600160401b038151168285015201519160408082015201906103a0565b919360a0936108c4969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906103a0565b9293906004602061132c610aa0610aa05f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa9081156102e75761075b916113aa915f916113f9575b506001600160a01b0316936113696107fe565b6001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152906020820152604051928391602083016112ad565b823b1561013a575f946113d586926040519889978896879563724ab0f760e11b8752600487016112d7565b03925af180156102e7576113e65750565b806113f361080b926107ca565b806102fe565b611412915060203d6020116102e0576102d181836107dd565b5f611356565b5f8054604051631c9e38c760e21b8152600481019390935265ffffffffffff9390931660248301529091602091839160449183916001600160a01b03165af180156102e7576114645750565b61147c9060203d60201161106b5761105781836107dd565b50565b8115611489570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c166114b5575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa9182156102e7575f92611572575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff909116608483015261153f8260a481015b03601f1981018452836107dd565b6202a15c5a10611560575f928380935192620249f0f1505f808080806114ae565b604051632153f33560e21b8152600490fd5b61153f92506115926115319160203d6020116102e0576102d181836107dd565b92506114e6565b80548210156115ae575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b8054806115f757505f5b6001600160d01b038116156115f15760016115e79201611599565b90549060031b1c90565b50505f90565b5f19908082810111610a5e57825f5260205f2001015460301c6115cc565b91909160408184031261013a57803561162d81610129565b9260208201356001600160401b03811161013a576108c49201610835565b5190811515820361013a57565b9081602091031261013a576108c49061164b565b61167891810190611615565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156102e7575f916117a8575b501561179657816117086004926116e9611960565b5f80546001600160a01b0319166001600160a01b038916179055611996565b94604051928380926313c085b760e11b82525afa9182156102e7575f92611779575b505016158061176f575b61175d575161080b9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b5080511515611734565b61178f9250803d106102e0576102d181836107dd565b5f8061172a565b6040516362df054560e01b8152600490fd5b6117c89150833d85116117ce575b6117c081836107dd565b810190611658565b5f6116d4565b503d6117b6565b9081602091031261013a575163ffffffff8116810361013a5790565b90600163ffffffff80931601918211610a5e57565b918051156118d45780602080611821935183010191016117d5565b9161182c8382611aae565b9261183d845165ffffffffffff1690565b9065ffffffffffff80851692168281146118c85782119182611873575b505061186a576108c492506119de565b50506020015190565b9091506118808354610ec4565b63ffffffff831614918215611899575b50505f8061185a565b6118c09192506118b46118ae610adb926117f1565b85611aae565b5165ffffffffffff1690565b115f80611890565b50505050506020015190565b506108c4916119de565b65ffffffffffff908181116118f1571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b8054600160401b8110156107aa5761192d91600182018155611599565b8154905f199060031b1b19169055565b90815491600160401b8310156107aa578261125191600161080b95018155611599565b611968611b55565b611970611b55565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f6040516119a38161078f565b5260208180518101031261013a576020906040516119c08161078f565b6119d86040519384936119d28561078f565b0161164b565b82525290565b908154905f829160058411611a48575b6119f9935084611de5565b80611a2157505f905b6001600160d01b038216156115f1576108c49160016115e79201611599565b611a3b611a30611a4292610ec4565b835f5260205f200190565b5460301c90565b90611a02565b9192611a5381611cba565b8103908111610a5e576119f993855f5265ffffffffffff808360205f20015416908516105f14611a845750916119ee565b929150611a9090611195565b906119ee565b60405190611aa3826107af565b5f6020838281520152565b9060206001611ad2611afe93611ac2611a96565b50611acb611a96565b5085611599565b509360405194611ae1866107af565b549465ffffffffffff86169586825260301c938491015201611599565b90549060405192611b0e846107af565b835260031b1c602082015290565b805480611b2d5750505f905f905f90565b5f19918183810111610a5e575f5260205f2001015460019165ffffffffffff82169160301c90565b60ff5f80516020611e458339815191525460401c1615611b7157565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156107aa57611ba091600182018155611599565b611bca57815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293928015611c9057611bf4611bff91610ec4565b825f5260205f200190565b9182549265ffffffffffff91828516928116808411611c7e57879303611c455750611c3e92509065ffffffffffff82549181199060301b169116179055565b60301c9190565b915050611c7991611c65611c576107fe565b65ffffffffffff9093168352565b6001600160d01b0386166020830152611b83565b611c3e565b604051632520601d60e01b8152600490fd5b5090611cb591611ca1611c576107fe565b6001600160d01b0385166020830152611b83565b5f9190565b60018111156108c457600181600160801b811015611dd3575b611d7b611d71611d67611d5d611d53611d49611d8797600488600160401b611d829a1015611dc6575b640100000000811015611db9575b62010000811015611dac575b610100811015611da0575b6010811015611d94575b1015611d8c575b60030260011c611d42818b61147f565b0160011c90565b611d42818a61147f565b611d42818961147f565b611d42818861147f565b611d42818761147f565b611d42818661147f565b809361147f565b821190565b900390565b60011b611d32565b811c9160021b91611d2b565b60081c91811b91611d21565b60101c9160081b91611d16565b60201c9160101b91611d0a565b60401c9160201b91611cfc565b50600160401b9050608082901c611cd3565b91905b838210611df55750505090565b9091928083169080841860011c8201809211610a5e57845f5265ffffffffffff808360205f20015416908416105f14611e325750925b9190611de8565b939250611e3e90611195565b91611e2b56fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220491c9e61f3cbaa2cb7b976430dd294da0ba4b4d592923d88df03120ff8c5bc2564736f6c63430008190033","sourceMap":"2765:796:97:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;-1:-1:-1;;;;;2765:796:97;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2765:796:97;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;2765:796:97;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2765:796:97;;;;;;;;;;;:::i;:::-;2499:73:30;;1991:1;2765:796:97;;3670:20:30;3666:88;;1991:1;;;2765:796:97;;-1:-1:-1;;;4546:86:105;;2765:796:97;;;;;4546:86:105;;2765:796:97;-1:-1:-1;;;;;2765:796:97;;;;4572:26:105;2765:796:97;;4546:86:105;;;;;;;-1:-1:-1;4546:86:105;;;2765:796:97;4636:10:105;;2765:796:97;;4546:100:105;4542:160;;2765:796:97;;774:1493:106;2765:796:97;;;774:1493:106;;:::i;:::-;3426:1:30;1949;2499:73;1991:1;3860:283;3426:1;2765:796:97;;;;;;;;;;;;;;;;;4542:160:105;2765:796:97;;-1:-1:-1;;;4669:22:105;;2765:796:97;;4669:22:105;4546:86;;;;;2765:796:97;4546:86:105;2765:796:97;4546:86:105;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;3666:88:30:-;2765:796:97;;-1:-1:-1;;;3713:30:30;;2765:796:97;;3713:30:30;2765:796:97;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;2765:796:97;;;;;;1435:38:105;-1:-1:-1;;;;;2765:796:97;;;;;;;;;;;;-1:-1:-1;;2765:796:97;;;;;2936:47:105;:38;2765:796:97;;;;;:::i;:::-;;;-1:-1:-1;2765:796:97;2936:16:105;2765:796:97;;;-1:-1:-1;2765:796:97;;;;;;;;;;;;;;;;;2936:38:105;:47;:::i;:::-;2765:796:97;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2765:796:97;;;;;;;;-1:-1:-1;;2765:796:97;;;;:::o;:::-;;;;;;-1:-1:-1;;2765:796:97;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;2765:796:97;;;;;;1788:109:105;2765:796:97;;;;;:::i;:::-;;;-1:-1:-1;2765:796:97;1788:109:105;2765:796:97;;;-1:-1:-1;2765:796:97;;;;;;;;;;;;;;;;;1788:109:105;2765:796:97;;;;;;;;;;;;;;-1:-1:-1;;2765:796:97;;;;;;;1374:6:105;2765:796:97;;;;;;;;;-1:-1:-1;;2765:796:97;;;;;;1528:51:105;-1:-1:-1;;;;;2765:796:97;;;;;;;;;;;;-1:-1:-1;;2765:796:97;;;;;;322:32:82;-1:-1:-1;;;;;2765:796:97;;;;;;;;;;;;-1:-1:-1;;2765:796:97;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2765:796:97;;;;-1:-1:-1;;;;;2765:796:97;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2765:796:97;;;;;;;4301:16:26;2765:796:97;;4726:16:26;;:34;;;;2765:796:97;4805:1:26;4790:16;:50;;;;2765:796:97;4855:13:26;:30;;;;2765:796:97;4851:91:26;;;-1:-1:-1;;;;;;;;;;;2765:796:97;;-1:-1:-1;;2765:796:97;;;;;718:4:82;;4951:18:26;4979:67;;718:4:82;:::i;:::-;5066:101:26;;2765:796:97;5066:101:26;-1:-1:-1;;;;;;;;;;;2765:796:97;;-1:-1:-1;;;;2765:796:97;;;;;-1:-1:-1;2765:796:97;;5142:14:26;;2765:796:97;;5142:14:26;2765:796:97;4979:67:26;-1:-1:-1;;;;;;;;;;;2765:796:97;;-1:-1:-1;;;;2765:796:97;-1:-1:-1;;;2765:796:97;;;718:4:82;:::i;4851:91:26:-;2765:796:97;;-1:-1:-1;;;4908:23:26;;2765:796:97;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;2765:796:97;;;;;;-1:-1:-1;;2765:796:97;;;;;;2811:43;-1:-1:-1;;;;;2765:796:97;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;2765:796:97;;;;-1:-1:-1;2765:796:97;;;477:31:88;2765:796:97;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:88;;;;2765:796:97;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;2765:796:97;;;;;;;;;;;;;477:31:88;;2765:796:97;;;;;;;;;;:::i;:::-;477:31:88;2765:796:97;;477:31:88;;;;;;:::i;:::-;518:79;;;2765:796:97;518:79:88;;2765:796:97;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:796:97;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2765:796:97;;;;;;;:::o;:::-;-1:-1:-1;;;;;2765:796:97;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2765:796:97;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;2765:796:97;;;;;;-1:-1:-1;;2765:796:97;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;2765:796:97;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;2765:796:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;2765:796:97;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;2692:73:105;:38;2765:796:97;;;:::i;:::-;;;;;-1:-1:-1;2765:796:97;2692:16:105;2765:796:97;;;-1:-1:-1;2765:796:97;;;;;;;;;;;;;;;;;2692:38:105;:73;:::i;2765:796:97:-;;;;;3248:62:105;2765:796:97;;;:::i;:::-;3248:62:105;;;;;:::i;:::-;2765:796:97;;;;;;;;;;;;;-1:-1:-1;;2765:796:97;;;;;;;-1:-1:-1;;;;;404:28:82;2765:796:97;;;;;;;;;;-1:-1:-1;;2765:796:97;;;;;;;1271:7:105;2765:796:97;;;;;;;;;-1:-1:-1;;2765:796:97;;;;;;;;-1:-1:-1;;;;;2765:796:97;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;2765:796:97;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;774:1493:106:-;;;;;;;;2765:796:97;;:::i;:::-;1076:16:106;;1072:91;;774:1493;837:15:75;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;2765:796:97;1215:29:106;;;;:27;;:13;;-1:-1:-1;;;;;2765:796:97;1215:13:106;2765:796:97;;-1:-1:-1;;;;;2765:796:97;;;1215:27:106;2765:796:97;;-1:-1:-1;;;1215:29:106;;2765:796:97;;;;;1215:29:106;;;;;;1177:67;1215:29;1196:48;1215:29;-1:-1:-1;1215:29:106;;;774:1493;1196:48;;:::i;:::-;2765:796:97;;;;1177:67:106;2765:796:97;;;1177:67:106;;;:107;;;;;774:1493;1173:178;;;1418:87;3455:20:70;1474:30:106;;1418:87;;;;:::i;:::-;3463:5:70;;;3066;;;3463;;-1:-1:-1;2765:796:97;3060:42:70;;;2825:294;3455:20;1578:18:106;;;1574:75;;1950:87;;;2200:60;1718:16;2200:60;1718:16;;;;;;:::i;:::-;1791:13;;;;;:::i;:::-;2765:796:97;;:::i;:::-;;;;1215:29:106;1961:75;;2765:796:97;;;1950:87:106;;;1215:29;1950:87;;2765:796:97;;;;;;;;;;;;;;;;;;;1950:87:106;;;;;;:::i;:::-;2087:16;;;;:::i;:::-;2167;;;;;;:::i;:::-;2765:796:97;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:796:97;;;;;;;;;;;2200:60:106;;;;774:1493::o;1574:75::-;2765:796:97;;-1:-1:-1;;;1619:19:106;;1215:29;;1619:19;1173:178;2765:796:97;;-1:-1:-1;;;1315:25:106;;1215:29;;1315:25;1177:107;837:15:75;;1248:36:106;819:34:75;837:15;819:34;:::i;1248:36:106:-;-1:-1:-1;1248:36:106;1177:107;;;1215:29;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1072:91;1121:31;;;;;;;;:::i;:::-;1072:91;;;;;2765:796:97;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;2765:796:97;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;2765:796:97;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;3020:539::-;2765:796;;-1:-1:-1;;;3303:105:97;;-1:-1:-1;;;;;2765:796:97;;;3303:105;;;2765:796;;;;;;;;;;;;;;;;;;;;;;;;;3020:539;2765:796;3303:105;;2765:796;;;;;;3320:18;2765:796;3303:105;;;;;;;;;;;3020:539;2765:796;;;3419:134;;3020:539;:::o;3419:134::-;3476:66;2765:796;;;3476:66;2765:796;;;:::i;:::-;;;;;;3476:66;;;2765:796;3476:66;;;:::i;3303:105::-;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;2505:267:105;-1:-1:-1;2765:796:97;;;2692:16:105;2765:796:97;;;;;;;;-1:-1:-1;;;;;2765:796:97;;;;;;;;;2692:73:105;;2505:267;;2692:73;:::i;2765:796:97:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;2765:796:97;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2765:796:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;2765:796:97;;;;;;;;:::o;:::-;;;;;;;;;;:::o;3323:1122:105:-;;2765:796:97;;:::i;:::-;;;;3608:16:105;3604:109;;3323:1122;837:15:75;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;2765:796:97;;;;3778:27:105;;:13;;-1:-1:-1;;;;;2765:796:97;3778:13:105;2765:796:97;3778:27:105;2765:796:97;;;;;;;3778:29:105;;;;;;;;;;;;;;;3740:67;3778:29;3759:48;3778:29;-1:-1:-1;3778:29:105;;;3759:48;;:::i;3740:67::-;2765:796:97;;;3740:67:105;;;:107;;;;;3323:1122;3740:197;;;;3323:1122;3723:263;;;2765:796:97;3778:29:105;2765:796:97;;;;;;;;;;4025:25:105;;;;;;;;;4010:143;4025:25;;;-1:-1:-1;4025:25:105;;;3323:1122;4113:30;;;2765:796:97;;;;;;;;;;;4010:143:105;;;;;3778:29;4010:143;;;:::i;:::-;;;-1:-1:-1;;;;;2765:796:97;4010:143:105;;;;;;;4181:257;4010:143;-1:-1:-1;4010:143:105;;;3323:1122;3996:157;;4293:102;3996:157;;4233:162;3996:157;4207:231;3996:157;;2936:28;:47;:38;:28;;;2765:796:97;;2936:16:105;2765:796:97;;;;;;;2936:28:105;2765:796:97;;;;;;;;;;;;;;;;2936:47:105;4351:43;;;4293:102;;:::i;:::-;4233:162;;:::i;:::-;3463:5:70;;;;3066;;2765:796:97;3060:42:70;3371:111;;4181:257:105;3323:1122;:::o;4010:143::-;4233:162;4010:143;;;4207:231;4010:143;;;;4293:102;4010:143;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;4025:25;;;;;;;;;;;;;;:::i;:::-;;;;3723:263;3962:13;;;;;;-1:-1:-1;3962:13:105;-1:-1:-1;3962:13:105;:::o;3740:197::-;3886:41;;3867:70;3886:51;;:41;;;2765:796:97;;3886:29:105;2765:796:97;;;;;;;3886:51:105;2765:796:97;;;;;3867:70:105;-1:-1:-1;3740:197:105;;;:107;837:15:75;;3811:36:105;819:34:75;837:15;819:34;:::i;3811:36:105:-;;;;3740:107;;;3778:29;;;;;;;;;;;;;;;:::i;3604:109::-;3662:40;;;;;;;;;;;;:::i;:::-;3604:109;;;;4714:335;;;;2765:796:97;-1:-1:-1;2765:796:97;4876:29:105;2765:796:97;;;;4876:51:105;2765:796:97;;-1:-1:-1;2765:796:97;;;;;;;;;;;;;;;;;4876:51:105;2765:796:97;;;;;-1:-1:-1;4872:171:105;;4714:335;;;:::o;4872:171::-;4962:70;2765:796:97;4962:51:105;2765:796:97;-1:-1:-1;2765:796:97;4876:29:105;2765:796:97;;;-1:-1:-1;2765:796:97;;;;;;;;;;;;;;;;;4962:51:105;2765:796:97;;;;;;;;;;;;;;9999:1:73;2765:796:97;;;;;;;:::o;5055:221:105:-;;;2765:796:97;-1:-1:-1;2765:796:97;5160:16:105;2765:796:97;;2936:47:105;:38;5160;2765:796:97;;-1:-1:-1;2765:796:97;;;;;;;;;;;;;;;;;5160:38:105;837:15:75;819:34;837:15;819:34;:::i;:::-;2765:796:97;-1:-1:-1;2765:796:97;5160:16:105;2765:796:97;;;-1:-1:-1;2765:796:97;;;;;;;;;;;;;;;;;2936:47:105;2765:796:97;;;;;;;;6360:12:99;;;2765:796:97;;;6360:24:99;6356:75;;5055:221:105;6474:30:99;;;:::i;:::-;2765:796:97;;;;;6578:12:99;;;;:::i;:::-;;6604:24;;;5055:221:105;-1:-1:-1;6600:188:99;;;-1:-1:-1;;;;2765:796:97;;;;;;;6644:29:99;:21;;;;:::i;:::-;:29;2765:796:97;;;;;;;;;;;;;;;;;;;;;6600:188:99;6753:24;;8310:38:73;;-1:-1:-1;;;;;2765:796:97;;;;;8310:38:73;:::i;:::-;6753:24:99;;;:::i;6604:::-;2765:796:97;;;;;;6614:14:99;;-1:-1:-1;6604:24:99;;;6356:75;6400:20;;;:::i;:::-;6356:75;;2765:796:97;;;;;;;;-1:-1:-1;;;;;2765:796:97;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5282:431:105:-;;;;5487:25;;:23;:13;2765:796:97;5494:5:105;2765:796:97;;;;;;;;;5487:23:105;2765:796:97;;-1:-1:-1;;;5487:25:105;;2765:796:97;;;;;5487:25:105;;;;;;;5631:65;5487:25;5631:65;5487:25;5494:5;5487:25;;;5282:431;-1:-1:-1;;;;;;2765:796:97;;;;:::i;:::-;-1:-1:-1;;;;;5677:4:105;2765:796:97;;;5677:4:105;5487:25;5642:53;;2765:796:97;;;5631:65:105;;;5487:25;5631:65;;;:::i;:::-;5472:234;;;;;5494:5;2765:796:97;5472:234:105;2765:796:97;;;;;;;;;;;;;;5472:234:105;;5487:25;5472:234;;;:::i;:::-;;;;;;;;;;;5282:431;:::o;5472:234::-;;;;;;:::i;:::-;;;:::i;5487:25::-;;;;;;;;;;;;;;:::i;:::-;;;;5719:137;5809:5;2765:796:97;;;;-1:-1:-1;;;5802:47:105;;;;;2765:796:97;;;;;;;;;;;;;;;5802:47:105;;2765:796:97;;;;;;-1:-1:-1;;;;;2765:796:97;5802:47:105;;;;;;;;5719:137;:::o;5802:47::-;;;;;;;;;;;;;:::i;:::-;;5719:137::o;2765:796:97:-;;;;;;;:::o;:::-;;;;;;;;;;;;5862:623:105;;;5988:12;2765:796:97;;;;;;;5984:495:105;;5862:623;;;;;;:::o;5984:495::-;2765:796:97;;-1:-1:-1;;;6033:22:105;;2765:796:97;6033:22:105;;2765:796:97;;6033:22:105;;2765:796:97;;-1:-1:-1;;;;;2765:796:97;6033:22:105;;;;;;;5988:12;6033:22;;;5984:495;-1:-1:-1;2765:796:97;;-1:-1:-1;;;6033:22:105;6094:81;;;;;;;;2765:796:97;;;;-1:-1:-1;;;;;2765:796:97;;;;;;;;;;;;;;;;;;;;;;6094:81:105;2765:796:97;;;;6094:81:105;;2765:796:97;;6094:81:105;;;;;;:::i;:::-;2765:796:97;6194:9:105;:55;6190:124;;5988:12;6328:141;;;;;;1271:7;6328:141;;5984:495;;;;;;;6190:124;2765:796:97;;-1:-1:-1;;;6276:23:105;;6033:22;;6276:23;6033:22;6094:81;6033:22;;;6094:81;6033:22;;;;;;;;;;;:::i;:::-;;;;;2765:796:97;;;;;;;;-1:-1:-1;2765:796:97;;-1:-1:-1;2765:796:97;;;-1:-1:-1;2765:796:97;:::o;:::-;;;;;;;;;;;;10580:184:99;2765:796:97;;10446:8:73;;;:63;-1:-1:-1;10446:63:73;-1:-1:-1;;;;;2765:796:97;;10726:7:99;2765:796:97;;10736:12:99;:17;:12;;:17;:::i;:::-;2765:796:97;;;;;;10580:184:99;:::o;10726:31::-;;;-1:-1:-1;10580:184:99;:::o;10446:63:73:-;2765:796:97;;;;;;;;;;14439:109:73;-1:-1:-1;14439:109:73;;-1:-1:-1;14439:109:73;;;2765:796:97;;;10446:63:73;;2765:796:97;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;2765:796:97;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;6491:564:105:-;6614:34;6491:564;6614:34;;;;:::i;:::-;2765:796:97;;-1:-1:-1;;;6664:41:105;;-1:-1:-1;;;;;2765:796:97;;;6664:41:105;;;2765:796:97;;;;;6664:41:105;;;2765:796:97;;;6674:13:105;2765:796:97;;6664:41:105;;;;;;;-1:-1:-1;6664:41:105;;;6491:564;6663:42;;6659:90;;2684:111:30;6850:27:105;6664:41;2684:111:30;;;:::i;:::-;-1:-1:-1;2765:796:97;;-1:-1:-1;;;;;;2765:796:97;-1:-1:-1;;;;;2765:796:97;;;;;6850:27:105;:::i;:::-;2765:796:97;;;;;;;;;;6892:23:105;;;;;;;;;-1:-1:-1;6892:23:105;;;6491:564;2765:796:97;;;6892:37:105;:64;;;6491:564;6888:112;;2765:796:97;7010:38:105;;2765:796:97;;-1:-1:-1;2765:796:97;;-1:-1:-1;;;;2765:796:97;;;;;;-1:-1:-1;;;2765:796:97;;;;;;;;6888:112:105;2765:796:97;;-1:-1:-1;;;6979:10:105;;6664:41;;6979:10;6892:64;-1:-1:-1;2765:796:97;;;;6892:64:105;;:23;;;;;;-1:-1:-1;6892:23:105;;;;;;:::i;:::-;;;;;6659:90;2765:796:97;;-1:-1:-1;;;6728:10:105;;6664:41;;6728:10;6664:41;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;2765:796:97;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:99:-;;2765:796:97;;7686:17:99;7682:83;;2765:796:97;7789:27:99;2765:796:97;7789:27:99;2765:796:97;;7789:27:99;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;2765:796:97;;;;;;;;;;;;;;;;7888:22:99;;;7884:77;;7975:21;-1:-1:-1;7975:84:99;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;2765:796:97;8075:24:99;:::o;7975:84::-;2765:796:97;;;8009:16:99;2765:796:97;;8009:16:99;:::i;:::-;2765:796:97;;;8001:24:99;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;2765:796:97;;;;;8029:29:99;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;2765:796:97;7926:24:99;:::o;7682:83::-;7726:28;;;;:::i;14296:213:71:-;2765:796:97;14374:24:71;;;;14370:103;;2765:796:97;14296:213:71;:::o;14370:103::-;2765:796:97;;;;14421:41:71;;;;;;14452:2;14421:41;;;2765:796:97;;;;;14421:41:71;2765:796:97;;;-1:-1:-1;;;2765:796:97;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;2765:796:97;;;;;;;;;;;;;;;:::i;6893:76:26:-;;;:::i;:::-;;;:::i;:::-;1949:1:30;2499:73;1991:1;6893:76:26:o;2273:218:106:-;-1:-1:-1;2765:796:97;;;;;:::i;:::-;;;;;;2419:30:106;;2765:796:97;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;2419:30:106;2765:796:97;:::i;:::-;;;;2273:218:106;:::o;6999:207:99:-;;2765:796:97;;9737:15:73;-1:-1:-1;9762:18:73;9795:7;9801:1;9795:7;;9791:234;;6999:207:99;10049:53:73;;;;;:::i;:::-;10120:8;;;:63;-1:-1:-1;10120:63:73;;-1:-1:-1;;;;;2765:796:97;;7168:7:99;2765:796:97;;;7178:12:99;;:17;:12;;:17;:::i;10120:63:73:-;10135:41;10168:7;10135:48;10168:7;;:::i;:::-;10135:41;14439:109;;;;;;14289:265;;10135:41;2765:796:97;;;;;10135:48:73;10120:63;;;9791:234;9838:14;;;;;:::i;:::-;2765:796:97;;;;;;;10049:53:73;14439:109;;-1:-1:-1;14439:109:73;2765:796:97;14439:109:73;;;-1:-1:-1;14439:109:73;;2765:796:97;;;;;9870:48:73;9866:149;2765:796:97;;;9938:10:73;9866:149;9791:234;;9866:149;9993:7;;;;;;:::i;:::-;9866:149;9791:234;;2765:796:97;;;;;;;:::i;:::-;-1:-1:-1;2765:796:97;;;;;;;:::o;11486:272:99:-;;2765:796:97;11718:12:99;11452:22:73;11718:31:99;11486:272;2765:796:97;;:::i;:::-;;;;:::i;:::-;;11452:22:73;;:::i;:::-;2765:796:97;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;11718:12:99;:31;:::i;:::-;2765:796:97;;;;;;;;;:::i;:::-;;;;;;;11672:79:99;;2765:796:97;11486:272:99;:::o;10695:389:73:-;2765:796:97;;10871:8:73;;;10895:20;;10833:17;10895:20;10833:17;10895:20;10833:17;10895:20;:::o;10867:211::-;2765:796:97;;;;;;;;;;10833:17:73;14439:109;;10833:17;14439:109;;;2765:796:97;11014:1:73;2765:796:97;;;;;;;11030:37:73;:::o;7084:141:26:-;2765:796:97;-1:-1:-1;;;;;;;;;;;2765:796:97;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;2765:796:97;;-1:-1:-1;;;7191:17:26;;;;;2765:796:97;;;-1:-1:-1;;;2765:796:97;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;2765:796:97;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11657:922:73;2765:796:97;;11657:922:73;;;11864:7;;;;11936;11916:28;11936:7;;:::i;:::-;11916:28;14439:109;;;;;;14289:265;;11916:28;2765:796:97;;;;;;;;;;;;12103:13:73;;;12099:89;;12251:14;;;;;12285:19;;;;2765:796:97;;;;;;;;;;;;;;;;;12285:19:73;2765:796:97;;12423:25:73;;:::o;12247:163::-;2765:796:97;;;12343:52:73;2765:796:97;12353:41:73;2765:796:97;;:::i;:::-;;;;;;;;12353:41:73;-1:-1:-1;;;;;2765:796:97;;12353:41:73;;;2765:796:97;12343:52:73;:::i;:::-;12247:163;;12099:89;2765:796:97;;-1:-1:-1;;;12143:30:73;;;;;11860:713;2765:796:97;;12479:52:73;2765:796:97;12489:41:73;2765:796:97;;:::i;12489:41:73:-;-1:-1:-1;;;;;2765:796:97;;12489:41:73;;;2765:796:97;12343:52:73;:::i;12479:::-;11870:1;12545:17;;:::o;18080:5181:70:-;18246:1;18241:6;;;18237:53;;18246:1;19217:14;-1:-1:-1;;;19278:16:70;;;19274:92;;18080:5181;22827:18;22717;22607;22498;22387;22278;23216:28;19383:15;19898:6;19383:15;-1:-1:-1;;;23237:6:70;19383:15;;;19379:90;;18080:5181;19493:7;19486:15;;;19482:90;;18080:5181;19596:7;19589:15;;;19585:89;;18080:5181;19698:6;19691:14;;;19687:87;;18080:5181;19798:6;19791:14;;;19787:87;;18080:5181;19891:14;;19887:61;;18080:5181;20374:1;2765:796:97;18246:1:70;2765:796:97;22284:6:70;;;;:::i;:::-;2765:796:97;;;;;22278:18:70;22393:6;;;;:::i;22387:18::-;22504:6;;;;:::i;22498:18::-;22613:6;;;;:::i;22607:18::-;22723:6;;;;:::i;22717:18::-;22833:6;;;;:::i;22827:18::-;23237:6;;;:::i;:::-;23232:11;;;2765:796:97;23216:28:70;2765:796:97;;18080:5181:70;:::o;19887:61::-;18246:1;2765:796:97;19887:61:70;;19787:87;2765:796:97;;;;;19787:87:70;;;19687;2765:796:97;;;;;19687:87:70;;;19585:89;2765:796:97;;;;;19585:89:70;;;19482:90;2765:796:97;;;;;19482:90:70;;;19379;2765:796:97;;;;;19379:90:70;;;19274:92;-1:-1:-1;;;;2765:796:97;-1:-1:-1;2765:796:97;;;;19274:92:70;;12929:433:73;;;13112:10;;;;;;13344:11;;;12929:433;:::o;13105:230::-;3721:5:70;;;;;;3731;;;;2765:796:97;;;;;;;;;14439:109:73;-1:-1:-1;14439:109:73;2765:796:97;14439:109:73;;;-1:-1:-1;14439:109:73;;2765:796:97;;;;;-1:-1:-1;13189:136:73;2765:796:97;;;13248:10:73;13189:136;;13105:230;;;;13189:136;13303:7;;;;;;:::i;:::-;13189:136;;","linkReferences":{},"immutableReferences":{"60120":[{"start":1266,"length":32}],"60123":[{"start":2377,"length":32},{"start":4979,"length":32}],"65225":[{"start":1682,"length":32},{"start":3385,"length":32}],"67904":[{"start":797,"length":32},{"start":5795,"length":32}],"67907":[{"start":540,"length":32},{"start":1198,"length":32}]}},"methodIdentifiers":{"BASE_SLASHER_HINTS()":"457821b7","BURNER_GAS_LIMIT()":"d5c24e1a","BURNER_RESERVE()":"2964f8dc","FACTORY()":"2dd31000","NETWORK_MIDDLEWARE_SERVICE()":"2c9d45b3","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","cumulativeSlash(bytes32,address)":"1a2be2c4","cumulativeSlashAt(bytes32,address,uint48,bytes)":"aa8e6489","initialize(bytes)":"439fab91","isBurnerHook()":"34d098ea","latestSlashedCaptureTimestamp(bytes32,address)":"267de1f3","slash(bytes32,address,uint256,uint48,bytes)":"021a8156","slashHints(address,address,bytes32,address,uint256,uint48)":"238ab85f","slashableStake(bytes32,address,uint48,bytes)":"aab3595f","staticDelegateCall(address,bytes)":"9f86fd85","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseSlasherHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBurnerGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientSlash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetworkMiddleware\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"Slash\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_SLASHER_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_MIDDLEWARE_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"cumulativeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"cumulativeSlashAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isBurnerHook\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"latestSlashedCaptureTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"value\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"slashHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slashableStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Slash(bytes32,address,uint256,uint48)\":{\"params\":{\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"operator that is slashed\",\"slashedAmount\":\"virtual amount of the collateral slashed\",\"subnetwork\":\"subnetwork that requested the slash\"}}},\"kind\":\"dev\",\"methods\":{\"cumulativeSlash(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"cumulative slash amount\"}},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the cumulative slash amount until (inclusively)\"},\"returns\":{\"_0\":\"cumulative slash amount until the given timestamp (inclusively)\"}},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"slash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only a network middleware can call this function.\",\"params\":{\"amount\":\"maximum amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"hints\":\"hints for checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"slashedAmount\":\"virtual amount of the collateral slashed\"}},\"slashableStake(bytes32,address,uint48,bytes)\":{\"params\":{\"captureTimestamp\":\"time point to get the stake amount at\",\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"amount\":\"slashable amount of the stake\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Slash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash is performed.\"}},\"kind\":\"user\",\"methods\":{\"BURNER_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the burner.\"},\"BURNER_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the burner's execution.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"NETWORK_MIDDLEWARE_SERVICE()\":{\"notice\":\"Get the network middleware service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"cumulativeSlash(bytes32,address)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork.\"},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"isBurnerHook()\":{\"notice\":\"Get if the burner is needed to be called on a slashing.\"},\"latestSlashedCaptureTimestamp(bytes32,address)\":{\"notice\":\"Get the latest capture timestamp that was slashed on a subnetwork.\"},\"slash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Perform a slash using a subnetwork for a particular operator by a given amount using hints.\"},\"slashableStake(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a slashable amount of a stake got at a given capture timestamp using hints.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/SlasherHints.sol\":\"SlasherHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf\",\"dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x4aaaf1c0737dd16e81f0d2b9833c549747a5ede6873bf1444bc72aa572d03e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eada27d7668eebaea16c3b890aa1b38ffc53965292e26c96f7c44834623f4710\",\"dweb:/ipfs/QmVSWuLtxyCqNbLyY89ptxkvsk4CLLKDQYigEne5Qj8k1L\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a\",\"dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c\",\"dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e\",\"dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0xbdc3bb48ccedb818cd75a6d74a16df55a822e9f6d3cc54c59f576f10aab67b5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2284f25f2478f419d7781573b17a89d0e7c5589a865d55e2d6ed5163aee23aa8\",\"dweb:/ipfs/QmNsr2625APBQiNKpYnX5VcSnYgfUHR9Uzzp9pRXjoDqK7\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44\",\"dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0xd71e9102e99a25ee8b5435779f011a24558f56074aa2b16c18b623b57754ae97\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://29db5552e55dab51bea1ae40ba00ca674cb50fcb10997999a72a94527b6eb591\",\"dweb:/ipfs/QmQrYyTPx73ubNxMhYWJCkprCVFVtuTFcKaabYiKTe71tY\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/SlasherHints.sol\":{\"keccak256\":\"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595\",\"dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/slasher/BaseSlasher.sol\":{\"keccak256\":\"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06\",\"dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF\"]},\"src/contracts/slasher/Slasher.sol\":{\"keccak256\":\"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61\",\"dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3\"]},\"src/contracts/slasher/VetoSlasher.sol\":{\"keccak256\":\"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429\",\"dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/slasher/IBurner.sol\":{\"keccak256\":\"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447\",\"dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW\"]},\"src/interfaces/slasher/ISlasher.sol\":{\"keccak256\":\"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1\",\"dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ\"]},\"src/interfaces/slasher/IVetoSlasher.sol\":{\"keccak256\":\"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508\",\"dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseSlasherHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientBurnerGas"},{"inputs":[],"type":"error","name":"InsufficientSlash"},{"inputs":[],"type":"error","name":"InvalidCaptureTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NoBurner"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetworkMiddleware"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"Slash","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_SLASHER_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"cumulativeSlash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"cumulativeSlashAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isBurnerHook","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"latestSlashedCaptureTimestamp","outputs":[{"internalType":"uint48","name":"value","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"slash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"slashHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"slashableStake","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"cumulativeSlash(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"cumulative slash amount"}},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the cumulative slash amount until (inclusively)"},"returns":{"_0":"cumulative slash amount until the given timestamp (inclusively)"}},"initialize(bytes)":{"params":{"data":"some data to use"}},"slash(bytes32,address,uint256,uint48,bytes)":{"details":"Only a network middleware can call this function.","params":{"amount":"maximum amount of the collateral to be slashed","captureTimestamp":"time point when the stake was captured","hints":"hints for checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"slashedAmount":"virtual amount of the collateral slashed"}},"slashableStake(bytes32,address,uint48,bytes)":{"params":{"captureTimestamp":"time point to get the stake amount at","hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"amount":"slashable amount of the stake"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}}},"version":1},"userdoc":{"kind":"user","methods":{"BURNER_GAS_LIMIT()":{"notice":"Get a gas limit for the burner."},"BURNER_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the burner's execution."},"FACTORY()":{"notice":"Get the factory's address."},"NETWORK_MIDDLEWARE_SERVICE()":{"notice":"Get the network middleware service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"cumulativeSlash(bytes32,address)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork."},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"isBurnerHook()":{"notice":"Get if the burner is needed to be called on a slashing."},"latestSlashedCaptureTimestamp(bytes32,address)":{"notice":"Get the latest capture timestamp that was slashed on a subnetwork."},"slash(bytes32,address,uint256,uint48,bytes)":{"notice":"Perform a slash using a subnetwork for a particular operator by a given amount using hints."},"slashableStake(bytes32,address,uint48,bytes)":{"notice":"Get a slashable amount of a stake got at a given capture timestamp using hints."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/SlasherHints.sol":"SlasherHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866","urls":["bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf","dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab","urls":["bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89","dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606","urls":["bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1","dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x4aaaf1c0737dd16e81f0d2b9833c549747a5ede6873bf1444bc72aa572d03e98","urls":["bzz-raw://eada27d7668eebaea16c3b890aa1b38ffc53965292e26c96f7c44834623f4710","dweb:/ipfs/QmVSWuLtxyCqNbLyY89ptxkvsk4CLLKDQYigEne5Qj8k1L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol":{"keccak256":"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549","urls":["bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a","dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed","urls":["bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0","dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d","urls":["bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c","dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575","urls":["bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e","dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0xbdc3bb48ccedb818cd75a6d74a16df55a822e9f6d3cc54c59f576f10aab67b5f","urls":["bzz-raw://2284f25f2478f419d7781573b17a89d0e7c5589a865d55e2d6ed5163aee23aa8","dweb:/ipfs/QmNsr2625APBQiNKpYnX5VcSnYgfUHR9Uzzp9pRXjoDqK7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f","urls":["bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44","dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0xd71e9102e99a25ee8b5435779f011a24558f56074aa2b16c18b623b57754ae97","urls":["bzz-raw://29db5552e55dab51bea1ae40ba00ca674cb50fcb10997999a72a94527b6eb591","dweb:/ipfs/QmQrYyTPx73ubNxMhYWJCkprCVFVtuTFcKaabYiKTe71tY"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/SlasherHints.sol":{"keccak256":"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f","urls":["bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595","dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/slasher/BaseSlasher.sol":{"keccak256":"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6","urls":["bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06","dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF"],"license":"BUSL-1.1"},"src/contracts/slasher/Slasher.sol":{"keccak256":"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f","urls":["bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61","dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3"],"license":"BUSL-1.1"},"src/contracts/slasher/VetoSlasher.sol":{"keccak256":"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897","urls":["bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429","dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/slasher/IBurner.sol":{"keccak256":"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b","urls":["bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447","dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW"],"license":"MIT"},"src/interfaces/slasher/ISlasher.sol":{"keccak256":"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625","urls":["bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1","dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ"],"license":"MIT"},"src/interfaces/slasher/IVetoSlasher.sol":{"keccak256":"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9","urls":["bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508","dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":97} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"baseSlasherHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_SLASHER_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"BURNER_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BURNER_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isBurnerHook","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestSlashedCaptureTimestamp","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"slash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"slashHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"msgSender","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"slashableStake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Slash","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientBurnerGas","inputs":[]},{"type":"error","name":"InsufficientSlash","inputs":[]},{"type":"error","name":"InvalidCaptureTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NoBurner","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetworkMiddleware","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x6101403461015d576001600160401b0390601f61201038819003918201601f1916830191848311848410176101615780849260209460405283398101031261015d5751906001600160a01b038216820361015d57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c1661014b578080831603610106575b835f60a0525f60c0525f60e052610100905f825261012090815260405190611e9a9283610176843960805183505060a051836104f2015260c0518381816109490152611373015260e05183818161031d01526116a301525182818161021c01526104ae0152518181816106920152610d390152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8080610091565b60405163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c8063021a815614610124578063103f29071461011f5780631a2be2c41461011a578063238ab85f14610115578063267de1f3146101105780632964f8dc1461010b5780632c9d45b3146101065780632dd310001461010157806334d098ea146100fc578063439fab91146100f7578063457821b7146100f25780639f86fd85146100ed578063aa8e6489146100e8578063aab3595f146100e3578063bb24fe8a146100de578063d5c24e1a146100d95763fbfa77cf146100d4575f80fd5b61098a565b61096d565b61092a565b610905565b6108c7565b6106c1565b61067d565b610545565b610521565b6104dd565b610499565b61047d565b610428565b6103c4565b61034c565b610308565b61017b565b6001600160a01b0381160361013a57565b5f80fd5b65ffffffffffff81160361013a57565b9181601f8401121561013a578235916001600160401b03831161013a576020838186019501011161013a57565b3461013a5760a036600319011261013a5760043560243561019b81610129565b6064356101a78161013e565b6084356001600160401b03811161013a576101c690369060040161014e565b917f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0060028154146102ec5760029055604051635daf681960e11b8152606086901c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa9182156102e7575f926102b6575b50339116036102a4576102a0946102679460443591610a63565b61029060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6040519081529081906020820190565b0390f35b60405163227bf64d60e01b8152600490fd5b6102d991925060203d6020116102e0575b6102d181836107dd565b810190610de5565b905f61024d565b503d6102c7565b610a27565b604051633ee5aeb560e01b8152600490fd5b5f91031261013a57565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a57604036600319011261013a57602061039861039360243561037181610129565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6115c2565b604051908152f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461013a5760c036600319011261013a576102a06104146004356103e781610129565b6103f2602435610129565b6064356103fe81610129565b60a4359161040b8361013e565b60443590610ced565b6040519182916020835260208301906103a0565b3461013a57604036600319011261013a57602065ffffffffffff61047360243561045181610129565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b3461013a575f36600319011261013a576020604051614e208152f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a57602060ff5f5460a01c166040519015158152f35b3461013a57602036600319011261013a576001600160401b0360043581811161013a5761057690369060040161014e565b5f80516020611e45833981519152549260ff8460401c1615931680159081610675575b600114908161066b575b159081610662575b50610650575f80516020611e45833981519152805467ffffffffffffffff191660011790556105de918361062c5761166c565b6105e457005b5f80516020611e45833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611e45833981519152805460ff60401b1916600160401b17905561166c565b60405163f92ee8a960e01b8152600490fd5b9050155f6105ab565b303b1591506105a3565b849150610599565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a5760408060031936011261013a576004356106df81610129565b602435906001600160401b03821161013a575f809161070561076994369060040161014e565b908187519283928337810184815203915af43d156107715761075b3d61072a8161081a565b90610737865192836107dd565b81523d5f602083013e5b8451948593151560208501528084015260608301906103a0565b03601f1981018352826107dd565b805190602001fd5b61075b6060610741565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176107aa57604052565b61077b565b604081019081106001600160401b038211176107aa57604052565b6001600160401b0381116107aa57604052565b90601f801991011681019081106001600160401b038211176107aa57604052565b6040519061080b826107af565b565b6040519061080b8261078f565b6001600160401b0381116107aa57601f01601f191660200190565b81601f8201121561013a5780359061084c8261081a565b9261085a60405194856107dd565b8284526020838301011161013a57815f926020809301838601378301015290565b90608060031983011261013a576004359160243561089881610129565b916044356108a58161013e565b91606435906001600160401b03821161013a576108c491600401610835565b90565b3461013a5760206103986109006108dd3661087b565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b611806565b3461013a5760206109216109183661087b565b92919091610edf565b50604051908152f35b3461013a575f36600319011261013a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461013a575f36600319011261013a576020604051620249f08152f35b3461013a575f36600319011261013a575f546040516001600160a01b039091168152602090f35b604051906109be8261078f565b60608252565b9060208282031261013a5781356001600160401b039283821161013a57019060208282031261013a57604051926109fa8461078f565b823590811161013a57610a0d9201610835565b815290565b9081602091031261013a57516108c48161013e565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9182169082160391908211610a5e57565b610a32565b92939594919095610a726109b1565b9280610c53575b5050610a84426118de565b5f54600490602090610aac90610aa0906001600160a01b031681565b6001600160a01b031690565b6040516327f843b560e11b815292839182905afa80156102e757610ae692610adb925f92610c22575b50610a46565b65ffffffffffff1690565b65ffffffffffff8516908110908115610c0c575b50610bfa57610b0f610b1e9251858886610edf565b92909180831890831102821890565b958615610be857610ba361075b610b9a610be3947fe0cbbe1f1e6fd806ca87036fafcebaf7ab5247474a3b20e1c37bb50122c3a88496610b5f8a878b611115565b610b6a8c878b6111a3565b610b726107fe565b9182526020820152604051928391602083019190916020806040830194805184520151910152565b8689848861130f565b610bad8588611418565b610bb98588838761149d565b6040805188815265ffffffffffff90961660208701526001600160a01b0390911694918291820190565b0390a3565b60405163167f871760e31b8152600490fd5b604051631357ac9160e11b8152600490fd5b9050610c1a610adb426118de565b11155f610afa565b610c4591925060203d602011610c4c575b610c3d81836107dd565b810190610a12565b905f610ad5565b503d610c33565b610c619293508101906109c4565b905f80610a79565b81601f8201121561013a57805190610c808261081a565b92610c8e60405194856107dd565b8284526020838301011161013a57815f9260208093018386015e8301015290565b9060208282031261013a5781516001600160401b03811161013a576108c49201610c69565b60406108c49260208352519160208082015201906103a0565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252918216604482015265ffffffffffff909216606483015260609291905f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156102e7575f91610d97575b508051610d735750565b61075b9192506108c490610d8561080d565b90815260405192839160208301610cd4565b610db391503d805f833e610dab81836107dd565b810190610caf565b5f610d69565b5f9081526002602090815260408083206001600160a01b039094168352929052206108c4929190611806565b9081602091031261013a57516108c481610129565b60405190610e07826107af565b60606020838281520152565b9060208282031261013a5781516001600160401b039283821161013a57019060408282031261013a5760405192610e49846107af565b825181811161013a5782610e5e918501610c69565b8452602083015190811161013a57610e769201610c69565b602082015290565b9081602091031261013a575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526108c4929101906103a0565b5f19810191908211610a5e57565b91908203918211610a5e57565b92610ee8610dfa565b908051806110fb575b5050610efc426118de565b5f54909490610f1590610aa0906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa80156102e757610f4992610adb925f926110e35750610a46565b65ffffffffffff82169081109081156110cc575b811561109b575b5061108f578560049560405196878092630ce9b79360e41b82525afa9485156102e757610fb69587915f91611072575b50845190604051808099819463e02f693760e01b8352878b8a60048601610e8d565b03916001600160a01b03165afa9384156102e75761102e955f95611031575b509261101d85936110239361101d96869a61101461039383610fff875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610db9565b90610ed2565b818082109118021890565b91565b61102392955061101d94919361105f61101d928a3d8c1161106b575b61105781836107dd565b810190610e7e565b96935093919450610fd5565b503d61104d565b6110899150823d84116102e0576102d181836107dd565b5f610f94565b5050505050505f905f90565b90506110c5610adb6110b987610fff875f52600160205260405f2090565b5465ffffffffffff1690565b115f610f64565b90506110da610adb426118de565b81101590610f5d565b610c459192508a3d8c11610c4c57610c3d81836107dd565b61110e9250602080918301019101610e13565b5f80610ef1565b919091805f52600160205265ffffffffffff806111458560405f209060018060a01b03165f5260205260405f2090565b54169083161161115457505050565b61080b9261117c915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9060018201809211610a5e57565b9190825f5260026020526111fb6103936111d08360405f209060018060a01b03165f5260205260405f2090565b926111da426118de565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211610a5e57600181019081541561129f575b61121b81611b1c565b50949083549561122a846115c2565b508161128a575b50156112695750505f198301928311610a5e5761080b9261125191611599565b90919082549060031b91821b915f19901b1916179055565b61080b94611283926001600160d01b039091169190611bdd565b505061193d565b65ffffffffffff83811691161490505f611231565b6112a882611910565b611212565b606060206108c4938184526001600160401b038151168285015201519160408082015201906103a0565b919360a0936108c4969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906103a0565b9293906004602061132c610aa0610aa05f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa9081156102e75761075b916113aa915f916113f9575b506001600160a01b0316936113696107fe565b6001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152906020820152604051928391602083016112ad565b823b1561013a575f946113d586926040519889978896879563724ab0f760e11b8752600487016112d7565b03925af180156102e7576113e65750565b806113f361080b926107ca565b806102fe565b611412915060203d6020116102e0576102d181836107dd565b5f611356565b5f8054604051631c9e38c760e21b8152600481019390935265ffffffffffff9390931660248301529091602091839160449183916001600160a01b03165af180156102e7576114645750565b61147c9060203d60201161106b5761105781836107dd565b50565b8115611489570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c166114b5575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa9182156102e7575f92611572575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff909116608483015261153f8260a481015b03601f1981018452836107dd565b6202a15c5a10611560575f928380935192620249f0f1505f808080806114ae565b604051632153f33560e21b8152600490fd5b61153f92506115926115319160203d6020116102e0576102d181836107dd565b92506114e6565b80548210156115ae575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b8054806115f757505f5b6001600160d01b038116156115f15760016115e79201611599565b90549060031b1c90565b50505f90565b5f19908082810111610a5e57825f5260205f2001015460301c6115cc565b91909160408184031261013a57803561162d81610129565b9260208201356001600160401b03811161013a576108c49201610835565b5190811515820361013a57565b9081602091031261013a576108c49061164b565b61167891810190611615565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156102e7575f916117a8575b501561179657816117086004926116e9611960565b5f80546001600160a01b0319166001600160a01b038916179055611996565b94604051928380926313c085b760e11b82525afa9182156102e7575f92611779575b505016158061176f575b61175d575161080b9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b5080511515611734565b61178f9250803d106102e0576102d181836107dd565b5f8061172a565b6040516362df054560e01b8152600490fd5b6117c89150833d85116117ce575b6117c081836107dd565b810190611658565b5f6116d4565b503d6117b6565b9081602091031261013a575163ffffffff8116810361013a5790565b90600163ffffffff80931601918211610a5e57565b918051156118d45780602080611821935183010191016117d5565b9161182c8382611aae565b9261183d845165ffffffffffff1690565b9065ffffffffffff80851692168281146118c85782119182611873575b505061186a576108c492506119de565b50506020015190565b9091506118808354610ec4565b63ffffffff831614918215611899575b50505f8061185a565b6118c09192506118b46118ae610adb926117f1565b85611aae565b5165ffffffffffff1690565b115f80611890565b50505050506020015190565b506108c4916119de565b65ffffffffffff908181116118f1571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b8054600160401b8110156107aa5761192d91600182018155611599565b8154905f199060031b1b19169055565b90815491600160401b8310156107aa578261125191600161080b95018155611599565b611968611b55565b611970611b55565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f6040516119a38161078f565b5260208180518101031261013a576020906040516119c08161078f565b6119d86040519384936119d28561078f565b0161164b565b82525290565b908154905f829160058411611a48575b6119f9935084611de5565b80611a2157505f905b6001600160d01b038216156115f1576108c49160016115e79201611599565b611a3b611a30611a4292610ec4565b835f5260205f200190565b5460301c90565b90611a02565b9192611a5381611cba565b8103908111610a5e576119f993855f5265ffffffffffff808360205f20015416908516105f14611a845750916119ee565b929150611a9090611195565b906119ee565b60405190611aa3826107af565b5f6020838281520152565b9060206001611ad2611afe93611ac2611a96565b50611acb611a96565b5085611599565b509360405194611ae1866107af565b549465ffffffffffff86169586825260301c938491015201611599565b90549060405192611b0e846107af565b835260031b1c602082015290565b805480611b2d5750505f905f905f90565b5f19918183810111610a5e575f5260205f2001015460019165ffffffffffff82169160301c90565b60ff5f80516020611e458339815191525460401c1615611b7157565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156107aa57611ba091600182018155611599565b611bca57815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293928015611c9057611bf4611bff91610ec4565b825f5260205f200190565b9182549265ffffffffffff91828516928116808411611c7e57879303611c455750611c3e92509065ffffffffffff82549181199060301b169116179055565b60301c9190565b915050611c7991611c65611c576107fe565b65ffffffffffff9093168352565b6001600160d01b0386166020830152611b83565b611c3e565b604051632520601d60e01b8152600490fd5b5090611cb591611ca1611c576107fe565b6001600160d01b0385166020830152611b83565b5f9190565b60018111156108c457600181600160801b811015611dd3575b611d7b611d71611d67611d5d611d53611d49611d8797600488600160401b611d829a1015611dc6575b640100000000811015611db9575b62010000811015611dac575b610100811015611da0575b6010811015611d94575b1015611d8c575b60030260011c611d42818b61147f565b0160011c90565b611d42818a61147f565b611d42818961147f565b611d42818861147f565b611d42818761147f565b611d42818661147f565b809361147f565b821190565b900390565b60011b611d32565b811c9160021b91611d2b565b60081c91811b91611d21565b60101c9160081b91611d16565b60201c9160101b91611d0a565b60401c9160201b91611cfc565b50600160401b9050608082901c611cd3565b91905b838210611df55750505090565b9091928083169080841860011c8201809211610a5e57845f5265ffffffffffff808360205f20015416908416105f14611e325750925b9190611de8565b939250611e3e90611195565b91611e2b56fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220f6c8c6e53e56abe4ba9bf3f192a97636699c1edad17d1630537b4ec239db2d6c64736f6c63430008190033","sourceMap":"2765:796:95:-:0;;;;-1:-1:-1;;;;;2765:796:95;;;;;;;;;;-1:-1:-1;;2765:796:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:796:95;;;;;;348:4:93;332:21;;8837:64:26;2765:796:95;;;;;;;;;7896:76:26;;2765:796:95;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:80;-1:-1:-1;525:17:80;;-1:-1:-1;552:12:80;;-1:-1:-1;2353:28:103;;2391:53;;-1:-1:-1;2391:53:103;;2970:37:95;;;;2765:796;;;;;;;;;332:21:93;2765:796:95;;;;525:17:80;2765:796:95;;;;;552:12:80;2765:796:95;;;;;;;;;;2353:28:103;2765:796:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;2765:796:95;;;;;;;;;;;;;8087:29:26;;2765:796:95;;8087:29:26;7981:146;;;;;7896:76;2765:796:95;;-1:-1:-1;;;7938:23:26;;;;;2765:796:95;-1:-1:-1;2765:796:95;;;;;;-1:-1:-1;2765:796:95;;;;;-1:-1:-1;2765:796:95","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063021a815614610124578063103f29071461011f5780631a2be2c41461011a578063238ab85f14610115578063267de1f3146101105780632964f8dc1461010b5780632c9d45b3146101065780632dd310001461010157806334d098ea146100fc578063439fab91146100f7578063457821b7146100f25780639f86fd85146100ed578063aa8e6489146100e8578063aab3595f146100e3578063bb24fe8a146100de578063d5c24e1a146100d95763fbfa77cf146100d4575f80fd5b61098a565b61096d565b61092a565b610905565b6108c7565b6106c1565b61067d565b610545565b610521565b6104dd565b610499565b61047d565b610428565b6103c4565b61034c565b610308565b61017b565b6001600160a01b0381160361013a57565b5f80fd5b65ffffffffffff81160361013a57565b9181601f8401121561013a578235916001600160401b03831161013a576020838186019501011161013a57565b3461013a5760a036600319011261013a5760043560243561019b81610129565b6064356101a78161013e565b6084356001600160401b03811161013a576101c690369060040161014e565b917f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0060028154146102ec5760029055604051635daf681960e11b8152606086901c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa9182156102e7575f926102b6575b50339116036102a4576102a0946102679460443591610a63565b61029060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6040519081529081906020820190565b0390f35b60405163227bf64d60e01b8152600490fd5b6102d991925060203d6020116102e0575b6102d181836107dd565b810190610de5565b905f61024d565b503d6102c7565b610a27565b604051633ee5aeb560e01b8152600490fd5b5f91031261013a57565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a57604036600319011261013a57602061039861039360243561037181610129565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6115c2565b604051908152f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461013a5760c036600319011261013a576102a06104146004356103e781610129565b6103f2602435610129565b6064356103fe81610129565b60a4359161040b8361013e565b60443590610ced565b6040519182916020835260208301906103a0565b3461013a57604036600319011261013a57602065ffffffffffff61047360243561045181610129565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b3461013a575f36600319011261013a576020604051614e208152f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a575f36600319011261013a57602060ff5f5460a01c166040519015158152f35b3461013a57602036600319011261013a576001600160401b0360043581811161013a5761057690369060040161014e565b5f80516020611e45833981519152549260ff8460401c1615931680159081610675575b600114908161066b575b159081610662575b50610650575f80516020611e45833981519152805467ffffffffffffffff191660011790556105de918361062c5761166c565b6105e457005b5f80516020611e45833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020611e45833981519152805460ff60401b1916600160401b17905561166c565b60405163f92ee8a960e01b8152600490fd5b9050155f6105ab565b303b1591506105a3565b849150610599565b3461013a575f36600319011261013a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013a5760408060031936011261013a576004356106df81610129565b602435906001600160401b03821161013a575f809161070561076994369060040161014e565b908187519283928337810184815203915af43d156107715761075b3d61072a8161081a565b90610737865192836107dd565b81523d5f602083013e5b8451948593151560208501528084015260608301906103a0565b03601f1981018352826107dd565b805190602001fd5b61075b6060610741565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176107aa57604052565b61077b565b604081019081106001600160401b038211176107aa57604052565b6001600160401b0381116107aa57604052565b90601f801991011681019081106001600160401b038211176107aa57604052565b6040519061080b826107af565b565b6040519061080b8261078f565b6001600160401b0381116107aa57601f01601f191660200190565b81601f8201121561013a5780359061084c8261081a565b9261085a60405194856107dd565b8284526020838301011161013a57815f926020809301838601378301015290565b90608060031983011261013a576004359160243561089881610129565b916044356108a58161013e565b91606435906001600160401b03821161013a576108c491600401610835565b90565b3461013a5760206103986109006108dd3661087b565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b611806565b3461013a5760206109216109183661087b565b92919091610edf565b50604051908152f35b3461013a575f36600319011261013a5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461013a575f36600319011261013a576020604051620249f08152f35b3461013a575f36600319011261013a575f546040516001600160a01b039091168152602090f35b604051906109be8261078f565b60608252565b9060208282031261013a5781356001600160401b039283821161013a57019060208282031261013a57604051926109fa8461078f565b823590811161013a57610a0d9201610835565b815290565b9081602091031261013a57516108c48161013e565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9182169082160391908211610a5e57565b610a32565b92939594919095610a726109b1565b9280610c53575b5050610a84426118de565b5f54600490602090610aac90610aa0906001600160a01b031681565b6001600160a01b031690565b6040516327f843b560e11b815292839182905afa80156102e757610ae692610adb925f92610c22575b50610a46565b65ffffffffffff1690565b65ffffffffffff8516908110908115610c0c575b50610bfa57610b0f610b1e9251858886610edf565b92909180831890831102821890565b958615610be857610ba361075b610b9a610be3947fe0cbbe1f1e6fd806ca87036fafcebaf7ab5247474a3b20e1c37bb50122c3a88496610b5f8a878b611115565b610b6a8c878b6111a3565b610b726107fe565b9182526020820152604051928391602083019190916020806040830194805184520151910152565b8689848861130f565b610bad8588611418565b610bb98588838761149d565b6040805188815265ffffffffffff90961660208701526001600160a01b0390911694918291820190565b0390a3565b60405163167f871760e31b8152600490fd5b604051631357ac9160e11b8152600490fd5b9050610c1a610adb426118de565b11155f610afa565b610c4591925060203d602011610c4c575b610c3d81836107dd565b810190610a12565b905f610ad5565b503d610c33565b610c619293508101906109c4565b905f80610a79565b81601f8201121561013a57805190610c808261081a565b92610c8e60405194856107dd565b8284526020838301011161013a57815f9260208093018386015e8301015290565b9060208282031261013a5781516001600160401b03811161013a576108c49201610c69565b60406108c49260208352519160208082015201906103a0565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252918216604482015265ffffffffffff909216606483015260609291905f90829060849082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156102e7575f91610d97575b508051610d735750565b61075b9192506108c490610d8561080d565b90815260405192839160208301610cd4565b610db391503d805f833e610dab81836107dd565b810190610caf565b5f610d69565b5f9081526002602090815260408083206001600160a01b039094168352929052206108c4929190611806565b9081602091031261013a57516108c481610129565b60405190610e07826107af565b60606020838281520152565b9060208282031261013a5781516001600160401b039283821161013a57019060408282031261013a5760405192610e49846107af565b825181811161013a5782610e5e918501610c69565b8452602083015190811161013a57610e769201610c69565b602082015290565b9081602091031261013a575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526108c4929101906103a0565b5f19810191908211610a5e57565b91908203918211610a5e57565b92610ee8610dfa565b908051806110fb575b5050610efc426118de565b5f54909490610f1590610aa0906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa80156102e757610f4992610adb925f926110e35750610a46565b65ffffffffffff82169081109081156110cc575b811561109b575b5061108f578560049560405196878092630ce9b79360e41b82525afa9485156102e757610fb69587915f91611072575b50845190604051808099819463e02f693760e01b8352878b8a60048601610e8d565b03916001600160a01b03165afa9384156102e75761102e955f95611031575b509261101d85936110239361101d96869a61101461039383610fff875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192610db9565b90610ed2565b818082109118021890565b91565b61102392955061101d94919361105f61101d928a3d8c1161106b575b61105781836107dd565b810190610e7e565b96935093919450610fd5565b503d61104d565b6110899150823d84116102e0576102d181836107dd565b5f610f94565b5050505050505f905f90565b90506110c5610adb6110b987610fff875f52600160205260405f2090565b5465ffffffffffff1690565b115f610f64565b90506110da610adb426118de565b81101590610f5d565b610c459192508a3d8c11610c4c57610c3d81836107dd565b61110e9250602080918301019101610e13565b5f80610ef1565b919091805f52600160205265ffffffffffff806111458560405f209060018060a01b03165f5260205260405f2090565b54169083161161115457505050565b61080b9261117c915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9060018201809211610a5e57565b9190825f5260026020526111fb6103936111d08360405f209060018060a01b03165f5260205260405f2090565b926111da426118de565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211610a5e57600181019081541561129f575b61121b81611b1c565b50949083549561122a846115c2565b508161128a575b50156112695750505f198301928311610a5e5761080b9261125191611599565b90919082549060031b91821b915f19901b1916179055565b61080b94611283926001600160d01b039091169190611bdd565b505061193d565b65ffffffffffff83811691161490505f611231565b6112a882611910565b611212565b606060206108c4938184526001600160401b038151168285015201519160408082015201906103a0565b919360a0936108c4969565ffffffffffff938552600180871b03166020850152604084015216606082015281608082015201906103a0565b9293906004602061132c610aa0610aa05f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa9081156102e75761075b916113aa915f916113f9575b506001600160a01b0316936113696107fe565b6001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152906020820152604051928391602083016112ad565b823b1561013a575f946113d586926040519889978896879563724ab0f760e11b8752600487016112d7565b03925af180156102e7576113e65750565b806113f361080b926107ca565b806102fe565b611412915060203d6020116102e0576102d181836107dd565b5f611356565b5f8054604051631c9e38c760e21b8152600481019390935265ffffffffffff9390931660248301529091602091839160449183916001600160a01b03165af180156102e7576114645750565b61147c9060203d60201161106b5761105781836107dd565b50565b8115611489570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c166114b5575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa9182156102e7575f92611572575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff909116608483015261153f8260a481015b03601f1981018452836107dd565b6202a15c5a10611560575f928380935192620249f0f1505f808080806114ae565b604051632153f33560e21b8152600490fd5b61153f92506115926115319160203d6020116102e0576102d181836107dd565b92506114e6565b80548210156115ae575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b8054806115f757505f5b6001600160d01b038116156115f15760016115e79201611599565b90549060031b1c90565b50505f90565b5f19908082810111610a5e57825f5260205f2001015460301c6115cc565b91909160408184031261013a57803561162d81610129565b9260208201356001600160401b03811161013a576108c49201610835565b5190811515820361013a57565b9081602091031261013a576108c49061164b565b61167891810190611615565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156102e7575f916117a8575b501561179657816117086004926116e9611960565b5f80546001600160a01b0319166001600160a01b038916179055611996565b94604051928380926313c085b760e11b82525afa9182156102e7575f92611779575b505016158061176f575b61175d575161080b9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b5080511515611734565b61178f9250803d106102e0576102d181836107dd565b5f8061172a565b6040516362df054560e01b8152600490fd5b6117c89150833d85116117ce575b6117c081836107dd565b810190611658565b5f6116d4565b503d6117b6565b9081602091031261013a575163ffffffff8116810361013a5790565b90600163ffffffff80931601918211610a5e57565b918051156118d45780602080611821935183010191016117d5565b9161182c8382611aae565b9261183d845165ffffffffffff1690565b9065ffffffffffff80851692168281146118c85782119182611873575b505061186a576108c492506119de565b50506020015190565b9091506118808354610ec4565b63ffffffff831614918215611899575b50505f8061185a565b6118c09192506118b46118ae610adb926117f1565b85611aae565b5165ffffffffffff1690565b115f80611890565b50505050506020015190565b506108c4916119de565b65ffffffffffff908181116118f1571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b8054600160401b8110156107aa5761192d91600182018155611599565b8154905f199060031b1b19169055565b90815491600160401b8310156107aa578261125191600161080b95018155611599565b611968611b55565b611970611b55565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f6040516119a38161078f565b5260208180518101031261013a576020906040516119c08161078f565b6119d86040519384936119d28561078f565b0161164b565b82525290565b908154905f829160058411611a48575b6119f9935084611de5565b80611a2157505f905b6001600160d01b038216156115f1576108c49160016115e79201611599565b611a3b611a30611a4292610ec4565b835f5260205f200190565b5460301c90565b90611a02565b9192611a5381611cba565b8103908111610a5e576119f993855f5265ffffffffffff808360205f20015416908516105f14611a845750916119ee565b929150611a9090611195565b906119ee565b60405190611aa3826107af565b5f6020838281520152565b9060206001611ad2611afe93611ac2611a96565b50611acb611a96565b5085611599565b509360405194611ae1866107af565b549465ffffffffffff86169586825260301c938491015201611599565b90549060405192611b0e846107af565b835260031b1c602082015290565b805480611b2d5750505f905f905f90565b5f19918183810111610a5e575f5260205f2001015460019165ffffffffffff82169160301c90565b60ff5f80516020611e458339815191525460401c1615611b7157565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156107aa57611ba091600182018155611599565b611bca57815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b80549293928015611c9057611bf4611bff91610ec4565b825f5260205f200190565b9182549265ffffffffffff91828516928116808411611c7e57879303611c455750611c3e92509065ffffffffffff82549181199060301b169116179055565b60301c9190565b915050611c7991611c65611c576107fe565b65ffffffffffff9093168352565b6001600160d01b0386166020830152611b83565b611c3e565b604051632520601d60e01b8152600490fd5b5090611cb591611ca1611c576107fe565b6001600160d01b0385166020830152611b83565b5f9190565b60018111156108c457600181600160801b811015611dd3575b611d7b611d71611d67611d5d611d53611d49611d8797600488600160401b611d829a1015611dc6575b640100000000811015611db9575b62010000811015611dac575b610100811015611da0575b6010811015611d94575b1015611d8c575b60030260011c611d42818b61147f565b0160011c90565b611d42818a61147f565b611d42818961147f565b611d42818861147f565b611d42818761147f565b611d42818661147f565b809361147f565b821190565b900390565b60011b611d32565b811c9160021b91611d2b565b60081c91811b91611d21565b60101c9160081b91611d16565b60201c9160101b91611d0a565b60401c9160201b91611cfc565b50600160401b9050608082901c611cd3565b91905b838210611df55750505090565b9091928083169080841860011c8201809211610a5e57845f5265ffffffffffff808360205f20015416908416105f14611e325750925b9190611de8565b939250611e3e90611195565b91611e2b56fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220f6c8c6e53e56abe4ba9bf3f192a97636699c1edad17d1630537b4ec239db2d6c64736f6c63430008190033","sourceMap":"2765:796:95:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;-1:-1:-1;;;;;2765:796:95;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2765:796:95;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;2765:796:95;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2765:796:95;;;;;;;;;;;:::i;:::-;2499:73:30;;1991:1;2765:796:95;;3670:20:30;3666:88;;1991:1;;;2765:796:95;;-1:-1:-1;;;4546:86:103;;2765:796:95;;;;;4546:86:103;;2765:796:95;-1:-1:-1;;;;;2765:796:95;;;;4572:26:103;2765:796:95;;4546:86:103;;;;;;;-1:-1:-1;4546:86:103;;;2765:796:95;4636:10:103;;2765:796:95;;4546:100:103;4542:160;;2765:796:95;;774:1493:104;2765:796:95;;;774:1493:104;;:::i;:::-;3426:1:30;1949;2499:73;1991:1;3860:283;3426:1;2765:796:95;;;;;;;;;;;;;;;;;4542:160:103;2765:796:95;;-1:-1:-1;;;4669:22:103;;2765:796:95;;4669:22:103;4546:86;;;;;2765:796:95;4546:86:103;2765:796:95;4546:86:103;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;3666:88:30:-;2765:796:95;;-1:-1:-1;;;3713:30:30;;2765:796:95;;3713:30:30;2765:796:95;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;2765:796:95;;;;;;1435:38:103;-1:-1:-1;;;;;2765:796:95;;;;;;;;;;;;-1:-1:-1;;2765:796:95;;;;;2936:47:103;:38;2765:796:95;;;;;:::i;:::-;;;-1:-1:-1;2765:796:95;2936:16:103;2765:796:95;;;-1:-1:-1;2765:796:95;;;;;;;;;;;;;;;;;2936:38:103;:47;:::i;:::-;2765:796:95;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2765:796:95;;;;;;;;-1:-1:-1;;2765:796:95;;;;:::o;:::-;;;;;;-1:-1:-1;;2765:796:95;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;2765:796:95;;;;;;1788:109:103;2765:796:95;;;;;:::i;:::-;;;-1:-1:-1;2765:796:95;1788:109:103;2765:796:95;;;-1:-1:-1;2765:796:95;;;;;;;;;;;;;;;;;1788:109:103;2765:796:95;;;;;;;;;;;;;;-1:-1:-1;;2765:796:95;;;;;;;1374:6:103;2765:796:95;;;;;;;;;-1:-1:-1;;2765:796:95;;;;;;1528:51:103;-1:-1:-1;;;;;2765:796:95;;;;;;;;;;;;-1:-1:-1;;2765:796:95;;;;;;322:32:80;-1:-1:-1;;;;;2765:796:95;;;;;;;;;;;;-1:-1:-1;;2765:796:95;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2765:796:95;;;;-1:-1:-1;;;;;2765:796:95;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2765:796:95;;;;;;;4301:16:26;2765:796:95;;4726:16:26;;:34;;;;2765:796:95;4805:1:26;4790:16;:50;;;;2765:796:95;4855:13:26;:30;;;;2765:796:95;4851:91:26;;;-1:-1:-1;;;;;;;;;;;2765:796:95;;-1:-1:-1;;2765:796:95;;;;;718:4:80;;4951:18:26;4979:67;;718:4:80;:::i;:::-;5066:101:26;;2765:796:95;5066:101:26;-1:-1:-1;;;;;;;;;;;2765:796:95;;-1:-1:-1;;;;2765:796:95;;;;;-1:-1:-1;2765:796:95;;5142:14:26;;2765:796:95;;5142:14:26;2765:796:95;4979:67:26;-1:-1:-1;;;;;;;;;;;2765:796:95;;-1:-1:-1;;;;2765:796:95;-1:-1:-1;;;2765:796:95;;;718:4:80;:::i;4851:91:26:-;2765:796:95;;-1:-1:-1;;;4908:23:26;;2765:796:95;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;2765:796:95;;;;;;-1:-1:-1;;2765:796:95;;;;;;2811:43;-1:-1:-1;;;;;2765:796:95;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;2765:796:95;;;;-1:-1:-1;2765:796:95;;;477:31:86;2765:796:95;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:86;;;;2765:796:95;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;2765:796:95;;;;;;;;;;;;;477:31:86;;2765:796:95;;;;;;;;;;:::i;:::-;477:31:86;2765:796:95;;477:31:86;;;;;;:::i;:::-;518:79;;;2765:796:95;518:79:86;;2765:796:95;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:796:95;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2765:796:95;;;;;;;:::o;:::-;-1:-1:-1;;;;;2765:796:95;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2765:796:95;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;2765:796:95;;;;;;-1:-1:-1;;2765:796:95;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;2765:796:95;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;2765:796:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;2765:796:95;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;2692:73:103;:38;2765:796:95;;;:::i;:::-;;;;;-1:-1:-1;2765:796:95;2692:16:103;2765:796:95;;;-1:-1:-1;2765:796:95;;;;;;;;;;;;;;;;;2692:38:103;:73;:::i;2765:796:95:-;;;;;3248:62:103;2765:796:95;;;:::i;:::-;3248:62:103;;;;;:::i;:::-;2765:796:95;;;;;;;;;;;;;-1:-1:-1;;2765:796:95;;;;;;;-1:-1:-1;;;;;404:28:80;2765:796:95;;;;;;;;;;-1:-1:-1;;2765:796:95;;;;;;;1271:7:103;2765:796:95;;;;;;;;;-1:-1:-1;;2765:796:95;;;;;;;;-1:-1:-1;;;;;2765:796:95;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;2765:796:95;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;774:1493:104:-;;;;;;;;2765:796:95;;:::i;:::-;1076:16:104;;1072:91;;774:1493;837:15:73;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;2765:796:95;1215:29:104;;;;:27;;:13;;-1:-1:-1;;;;;2765:796:95;1215:13:104;2765:796:95;;-1:-1:-1;;;;;2765:796:95;;;1215:27:104;2765:796:95;;-1:-1:-1;;;1215:29:104;;2765:796:95;;;;;1215:29:104;;;;;;1177:67;1215:29;1196:48;1215:29;-1:-1:-1;1215:29:104;;;774:1493;1196:48;;:::i;:::-;2765:796:95;;;;1177:67:104;2765:796:95;;;1177:67:104;;;:107;;;;;774:1493;1173:178;;;1418:87;3455:20:68;1474:30:104;;1418:87;;;;:::i;:::-;3463:5:68;;;3066;;;3463;;-1:-1:-1;2765:796:95;3060:42:68;;;2825:294;3455:20;1578:18:104;;;1574:75;;1950:87;;;2200:60;1718:16;2200:60;1718:16;;;;;;:::i;:::-;1791:13;;;;;:::i;:::-;2765:796:95;;:::i;:::-;;;;1215:29:104;1961:75;;2765:796:95;;;1950:87:104;;;1215:29;1950:87;;2765:796:95;;;;;;;;;;;;;;;;;;;1950:87:104;;;;;;:::i;:::-;2087:16;;;;:::i;:::-;2167;;;;;;:::i;:::-;2765:796:95;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:796:95;;;;;;;;;;;2200:60:104;;;;774:1493::o;1574:75::-;2765:796:95;;-1:-1:-1;;;1619:19:104;;1215:29;;1619:19;1173:178;2765:796:95;;-1:-1:-1;;;1315:25:104;;1215:29;;1315:25;1177:107;837:15:73;;1248:36:104;819:34:73;837:15;819:34;:::i;1248:36:104:-;-1:-1:-1;1248:36:104;1177:107;;;1215:29;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1072:91;1121:31;;;;;;;;:::i;:::-;1072:91;;;;;2765:796:95;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;2765:796:95;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;2765:796:95;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;3020:539::-;2765:796;;-1:-1:-1;;;3303:105:95;;-1:-1:-1;;;;;2765:796:95;;;3303:105;;;2765:796;;;;;;;;;;;;;;;;;;;;;;;;;3020:539;2765:796;3303:105;;2765:796;;;;;;3320:18;2765:796;3303:105;;;;;;;;;;;3020:539;2765:796;;;3419:134;;3020:539;:::o;3419:134::-;3476:66;2765:796;;;3476:66;2765:796;;;:::i;:::-;;;;;;3476:66;;;2765:796;3476:66;;;:::i;3303:105::-;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;2505:267:103;-1:-1:-1;2765:796:95;;;2692:16:103;2765:796:95;;;;;;;;-1:-1:-1;;;;;2765:796:95;;;;;;;;;2692:73:103;;2505:267;;2692:73;:::i;2765:796:95:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;2765:796:95;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2765:796:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;2765:796:95;;;;;;;;:::o;:::-;;;;;;;;;;:::o;3323:1122:103:-;;2765:796:95;;:::i;:::-;;;;3608:16:103;3604:109;;3323:1122;837:15:73;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;2765:796:95;;;;3778:27:103;;:13;;-1:-1:-1;;;;;2765:796:95;3778:13:103;2765:796:95;3778:27:103;2765:796:95;;;;;;;3778:29:103;;;;;;;;;;;;;;;3740:67;3778:29;3759:48;3778:29;-1:-1:-1;3778:29:103;;;3759:48;;:::i;3740:67::-;2765:796:95;;;3740:67:103;;;:107;;;;;3323:1122;3740:197;;;;3323:1122;3723:263;;;2765:796:95;3778:29:103;2765:796:95;;;;;;;;;;4025:25:103;;;;;;;;;4010:143;4025:25;;;-1:-1:-1;4025:25:103;;;3323:1122;4113:30;;;2765:796:95;;;;;;;;;;;4010:143:103;;;;;3778:29;4010:143;;;:::i;:::-;;;-1:-1:-1;;;;;2765:796:95;4010:143:103;;;;;;;4181:257;4010:143;-1:-1:-1;4010:143:103;;;3323:1122;3996:157;;4293:102;3996:157;;4233:162;3996:157;4207:231;3996:157;;2936:28;:47;:38;:28;;;2765:796:95;;2936:16:103;2765:796:95;;;;;;;2936:28:103;2765:796:95;;;;;;;;;;;;;;;;2936:47:103;4351:43;;;4293:102;;:::i;:::-;4233:162;;:::i;:::-;3463:5:68;;;;3066;;2765:796:95;3060:42:68;3371:111;;4181:257:103;3323:1122;:::o;4010:143::-;4233:162;4010:143;;;4207:231;4010:143;;;;4293:102;4010:143;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;4025:25;;;;;;;;;;;;;;:::i;:::-;;;;3723:263;3962:13;;;;;;-1:-1:-1;3962:13:103;-1:-1:-1;3962:13:103;:::o;3740:197::-;3886:41;;3867:70;3886:51;;:41;;;2765:796:95;;3886:29:103;2765:796:95;;;;;;;3886:51:103;2765:796:95;;;;;3867:70:103;-1:-1:-1;3740:197:103;;;:107;837:15:73;;3811:36:103;819:34:73;837:15;819:34;:::i;3811:36:103:-;;;;3740:107;;;3778:29;;;;;;;;;;;;;;;:::i;3604:109::-;3662:40;;;;;;;;;;;;:::i;:::-;3604:109;;;;4714:335;;;;2765:796:95;-1:-1:-1;2765:796:95;4876:29:103;2765:796:95;;;;4876:51:103;2765:796:95;;-1:-1:-1;2765:796:95;;;;;;;;;;;;;;;;;4876:51:103;2765:796:95;;;;;-1:-1:-1;4872:171:103;;4714:335;;;:::o;4872:171::-;4962:70;2765:796:95;4962:51:103;2765:796:95;-1:-1:-1;2765:796:95;4876:29:103;2765:796:95;;;-1:-1:-1;2765:796:95;;;;;;;;;;;;;;;;;4962:51:103;2765:796:95;;;;;;;;;;;;;;9999:1:71;2765:796:95;;;;;;;:::o;5055:221:103:-;;;2765:796:95;-1:-1:-1;2765:796:95;5160:16:103;2765:796:95;;2936:47:103;:38;5160;2765:796:95;;-1:-1:-1;2765:796:95;;;;;;;;;;;;;;;;;5160:38:103;837:15:73;819:34;837:15;819:34;:::i;:::-;2765:796:95;-1:-1:-1;2765:796:95;5160:16:103;2765:796:95;;;-1:-1:-1;2765:796:95;;;;;;;;;;;;;;;;;2936:47:103;2765:796:95;;;;;;;;6360:12:97;;;2765:796:95;;;6360:24:97;6356:75;;5055:221:103;6474:30:97;;;:::i;:::-;2765:796:95;;;;;6578:12:97;;;;:::i;:::-;;6604:24;;;5055:221:103;-1:-1:-1;6600:188:97;;;-1:-1:-1;;;;2765:796:95;;;;;;;6644:29:97;:21;;;;:::i;:::-;:29;2765:796:95;;;;;;;;;;;;;;;;;;;;;6600:188:97;6753:24;;8310:38:71;;-1:-1:-1;;;;;2765:796:95;;;;;8310:38:71;:::i;:::-;6753:24:97;;;:::i;6604:::-;2765:796:95;;;;;;6614:14:97;;-1:-1:-1;6604:24:97;;;6356:75;6400:20;;;:::i;:::-;6356:75;;2765:796:95;;;;;;;;-1:-1:-1;;;;;2765:796:95;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5282:431:103:-;;;;5487:25;;:23;:13;2765:796:95;5494:5:103;2765:796:95;;;;;;;;;5487:23:103;2765:796:95;;-1:-1:-1;;;5487:25:103;;2765:796:95;;;;;5487:25:103;;;;;;;5631:65;5487:25;5631:65;5487:25;5494:5;5487:25;;;5282:431;-1:-1:-1;;;;;;2765:796:95;;;;:::i;:::-;-1:-1:-1;;;;;5677:4:103;2765:796:95;;;5677:4:103;5487:25;5642:53;;2765:796:95;;;5631:65:103;;;5487:25;5631:65;;;:::i;:::-;5472:234;;;;;5494:5;2765:796:95;5472:234:103;2765:796:95;;;;;;;;;;;;;;5472:234:103;;5487:25;5472:234;;;:::i;:::-;;;;;;;;;;;5282:431;:::o;5472:234::-;;;;;;:::i;:::-;;;:::i;5487:25::-;;;;;;;;;;;;;;:::i;:::-;;;;5719:137;5809:5;2765:796:95;;;;-1:-1:-1;;;5802:47:103;;;;;2765:796:95;;;;;;;;;;;;;;;5802:47:103;;2765:796:95;;;;;;-1:-1:-1;;;;;2765:796:95;5802:47:103;;;;;;;;5719:137;:::o;5802:47::-;;;;;;;;;;;;;:::i;:::-;;5719:137::o;2765:796:95:-;;;;;;;:::o;:::-;;;;;;;;;;;;5862:623:103;;;5988:12;2765:796:95;;;;;;;5984:495:103;;5862:623;;;;;;:::o;5984:495::-;2765:796:95;;-1:-1:-1;;;6033:22:103;;2765:796:95;6033:22:103;;2765:796:95;;6033:22:103;;2765:796:95;;-1:-1:-1;;;;;2765:796:95;6033:22:103;;;;;;;5988:12;6033:22;;;5984:495;-1:-1:-1;2765:796:95;;-1:-1:-1;;;6033:22:103;6094:81;;;;;;;;2765:796:95;;;;-1:-1:-1;;;;;2765:796:95;;;;;;;;;;;;;;;;;;;;;;6094:81:103;2765:796:95;;;;6094:81:103;;2765:796:95;;6094:81:103;;;;;;:::i;:::-;2765:796:95;6194:9:103;:55;6190:124;;5988:12;6328:141;;;;;;1271:7;6328:141;;5984:495;;;;;;;6190:124;2765:796:95;;-1:-1:-1;;;6276:23:103;;6033:22;;6276:23;6033:22;6094:81;6033:22;;;6094:81;6033:22;;;;;;;;;;;:::i;:::-;;;;;2765:796:95;;;;;;;;-1:-1:-1;2765:796:95;;-1:-1:-1;2765:796:95;;;-1:-1:-1;2765:796:95;:::o;:::-;;;;;;;;;;;;10580:184:97;2765:796:95;;10446:8:71;;;:63;-1:-1:-1;10446:63:71;-1:-1:-1;;;;;2765:796:95;;10726:7:97;2765:796:95;;10736:12:97;:17;:12;;:17;:::i;:::-;2765:796:95;;;;;;10580:184:97;:::o;10726:31::-;;;-1:-1:-1;10580:184:97;:::o;10446:63:71:-;2765:796:95;;;;;;;;;;14439:109:71;-1:-1:-1;14439:109:71;;-1:-1:-1;14439:109:71;;;2765:796:95;;;10446:63:71;;2765:796:95;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;2765:796:95;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;6491:564:103:-;6614:34;6491:564;6614:34;;;;:::i;:::-;2765:796:95;;-1:-1:-1;;;6664:41:103;;-1:-1:-1;;;;;2765:796:95;;;6664:41:103;;;2765:796:95;;;;;6664:41:103;;;2765:796:95;;;6674:13:103;2765:796:95;;6664:41:103;;;;;;;-1:-1:-1;6664:41:103;;;6491:564;6663:42;;6659:90;;2684:111:30;6850:27:103;6664:41;2684:111:30;;;:::i;:::-;-1:-1:-1;2765:796:95;;-1:-1:-1;;;;;;2765:796:95;-1:-1:-1;;;;;2765:796:95;;;;;6850:27:103;:::i;:::-;2765:796:95;;;;;;;;;;6892:23:103;;;;;;;;;-1:-1:-1;6892:23:103;;;6491:564;2765:796:95;;;6892:37:103;:64;;;6491:564;6888:112;;2765:796:95;7010:38:103;;2765:796:95;;-1:-1:-1;2765:796:95;;-1:-1:-1;;;;2765:796:95;;;;;;-1:-1:-1;;;2765:796:95;;;;;;;;6888:112:103;2765:796:95;;-1:-1:-1;;;6979:10:103;;6664:41;;6979:10;6892:64;-1:-1:-1;2765:796:95;;;;6892:64:103;;:23;;;;;;-1:-1:-1;6892:23:103;;;;;;:::i;:::-;;;;;6659:90;2765:796:95;;-1:-1:-1;;;6728:10:103;;6664:41;;6728:10;6664:41;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;2765:796:95;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:97:-;;2765:796:95;;7686:17:97;7682:83;;2765:796:95;7789:27:97;2765:796:95;7789:27:97;2765:796:95;;7789:27:97;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;2765:796:95;;;;;;;;;;;;;;;;7888:22:97;;;7884:77;;7975:21;-1:-1:-1;7975:84:97;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;2765:796:95;8075:24:97;:::o;7975:84::-;2765:796:95;;;8009:16:97;2765:796:95;;8009:16:97;:::i;:::-;2765:796:95;;;8001:24:97;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:::-;2765:796:95;;;;;8029:29:97;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;2765:796:95;7926:24:97;:::o;7682:83::-;7726:28;;;;:::i;14296:213:69:-;2765:796:95;14374:24:69;;;;14370:103;;2765:796:95;14296:213:69;:::o;14370:103::-;2765:796:95;;;;14421:41:69;;;;;;14452:2;14421:41;;;2765:796:95;;;;;14421:41:69;2765:796:95;;;-1:-1:-1;;;2765:796:95;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;2765:796:95;;;;;;;;;;;;;;;:::i;6893:76:26:-;;;:::i;:::-;;;:::i;:::-;1949:1:30;2499:73;1991:1;6893:76:26:o;2273:218:104:-;-1:-1:-1;2765:796:95;;;;;:::i;:::-;;;;;;2419:30:104;;2765:796:95;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;2419:30:104;2765:796:95;:::i;:::-;;;;2273:218:104;:::o;6999:207:97:-;;2765:796:95;;9737:15:71;-1:-1:-1;9762:18:71;9795:7;9801:1;9795:7;;9791:234;;6999:207:97;10049:53:71;;;;;:::i;:::-;10120:8;;;:63;-1:-1:-1;10120:63:71;;-1:-1:-1;;;;;2765:796:95;;7168:7:97;2765:796:95;;;7178:12:97;;:17;:12;;:17;:::i;10120:63:71:-;10135:41;10168:7;10135:48;10168:7;;:::i;:::-;10135:41;14439:109;;;;;;14289:265;;10135:41;2765:796:95;;;;;10135:48:71;10120:63;;;9791:234;9838:14;;;;;:::i;:::-;2765:796:95;;;;;;;10049:53:71;14439:109;;-1:-1:-1;14439:109:71;2765:796:95;14439:109:71;;;-1:-1:-1;14439:109:71;;2765:796:95;;;;;9870:48:71;9866:149;2765:796:95;;;9938:10:71;9866:149;9791:234;;9866:149;9993:7;;;;;;:::i;:::-;9866:149;9791:234;;2765:796:95;;;;;;;:::i;:::-;-1:-1:-1;2765:796:95;;;;;;;:::o;11486:272:97:-;;2765:796:95;11718:12:97;11452:22:71;11718:31:97;11486:272;2765:796:95;;:::i;:::-;;;;:::i;:::-;;11452:22:71;;:::i;:::-;2765:796:95;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;11718:12:97;:31;:::i;:::-;2765:796:95;;;;;;;;;:::i;:::-;;;;;;;11672:79:97;;2765:796:95;11486:272:97;:::o;10695:389:71:-;2765:796:95;;10871:8:71;;;10895:20;;10833:17;10895:20;10833:17;10895:20;10833:17;10895:20;:::o;10867:211::-;2765:796:95;;;;;;;;;;10833:17:71;14439:109;;10833:17;14439:109;;;2765:796:95;11014:1:71;2765:796:95;;;;;;;11030:37:71;:::o;7084:141:26:-;2765:796:95;-1:-1:-1;;;;;;;;;;;2765:796:95;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;2765:796:95;;-1:-1:-1;;;7191:17:26;;;;;2765:796:95;;;-1:-1:-1;;;2765:796:95;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;2765:796:95;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11657:922:71;2765:796:95;;11657:922:71;;;11864:7;;;;11936;11916:28;11936:7;;:::i;:::-;11916:28;14439:109;;;;;;14289:265;;11916:28;2765:796:95;;;;;;;;;;;;12103:13:71;;;12099:89;;12251:14;;;;;12285:19;;;;2765:796:95;;;;;;;;;;;;;;;;;12285:19:71;2765:796:95;;12423:25:71;;:::o;12247:163::-;2765:796:95;;;12343:52:71;2765:796:95;12353:41:71;2765:796:95;;:::i;:::-;;;;;;;;12353:41:71;-1:-1:-1;;;;;2765:796:95;;12353:41:71;;;2765:796:95;12343:52:71;:::i;:::-;12247:163;;12099:89;2765:796:95;;-1:-1:-1;;;12143:30:71;;;;;11860:713;2765:796:95;;12479:52:71;2765:796:95;12489:41:71;2765:796:95;;:::i;12489:41:71:-;-1:-1:-1;;;;;2765:796:95;;12489:41:71;;;2765:796:95;12343:52:71;:::i;12479:::-;11870:1;12545:17;;:::o;18080:5181:68:-;18246:1;18241:6;;;18237:53;;18246:1;19217:14;-1:-1:-1;;;19278:16:68;;;19274:92;;18080:5181;22827:18;22717;22607;22498;22387;22278;23216:28;19383:15;19898:6;19383:15;-1:-1:-1;;;23237:6:68;19383:15;;;19379:90;;18080:5181;19493:7;19486:15;;;19482:90;;18080:5181;19596:7;19589:15;;;19585:89;;18080:5181;19698:6;19691:14;;;19687:87;;18080:5181;19798:6;19791:14;;;19787:87;;18080:5181;19891:14;;19887:61;;18080:5181;20374:1;2765:796:95;18246:1:68;2765:796:95;22284:6:68;;;;:::i;:::-;2765:796:95;;;;;22278:18:68;22393:6;;;;:::i;22387:18::-;22504:6;;;;:::i;22498:18::-;22613:6;;;;:::i;22607:18::-;22723:6;;;;:::i;22717:18::-;22833:6;;;;:::i;22827:18::-;23237:6;;;:::i;:::-;23232:11;;;2765:796:95;23216:28:68;2765:796:95;;18080:5181:68;:::o;19887:61::-;18246:1;2765:796:95;19887:61:68;;19787:87;2765:796:95;;;;;19787:87:68;;;19687;2765:796:95;;;;;19687:87:68;;;19585:89;2765:796:95;;;;;19585:89:68;;;19482:90;2765:796:95;;;;;19482:90:68;;;19379;2765:796:95;;;;;19379:90:68;;;19274:92;-1:-1:-1;;;;2765:796:95;-1:-1:-1;2765:796:95;;;;19274:92:68;;12929:433:71;;;13112:10;;;;;;13344:11;;;12929:433;:::o;13105:230::-;3721:5:68;;;;;;3731;;;;2765:796:95;;;;;;;;;14439:109:71;-1:-1:-1;14439:109:71;2765:796:95;14439:109:71;;;-1:-1:-1;14439:109:71;;2765:796:95;;;;;-1:-1:-1;13189:136:71;2765:796:95;;;13248:10:71;13189:136;;13105:230;;;;13189:136;13303:7;;;;;;:::i;:::-;13189:136;;","linkReferences":{},"immutableReferences":{"59800":[{"start":1266,"length":32}],"59803":[{"start":2377,"length":32},{"start":4979,"length":32}],"64905":[{"start":1682,"length":32},{"start":3385,"length":32}],"67584":[{"start":797,"length":32},{"start":5795,"length":32}],"67587":[{"start":540,"length":32},{"start":1198,"length":32}]}},"methodIdentifiers":{"BASE_SLASHER_HINTS()":"457821b7","BURNER_GAS_LIMIT()":"d5c24e1a","BURNER_RESERVE()":"2964f8dc","FACTORY()":"2dd31000","NETWORK_MIDDLEWARE_SERVICE()":"2c9d45b3","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","cumulativeSlash(bytes32,address)":"1a2be2c4","cumulativeSlashAt(bytes32,address,uint48,bytes)":"aa8e6489","initialize(bytes)":"439fab91","isBurnerHook()":"34d098ea","latestSlashedCaptureTimestamp(bytes32,address)":"267de1f3","slash(bytes32,address,uint256,uint48,bytes)":"021a8156","slashHints(address,address,bytes32,address,uint256,uint48)":"238ab85f","slashableStake(bytes32,address,uint48,bytes)":"aab3595f","staticDelegateCall(address,bytes)":"9f86fd85","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseSlasherHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBurnerGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientSlash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetworkMiddleware\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"Slash\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_SLASHER_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_MIDDLEWARE_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"cumulativeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"cumulativeSlashAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isBurnerHook\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"latestSlashedCaptureTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"value\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"slashHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slashableStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Slash(bytes32,address,uint256,uint48)\":{\"params\":{\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"operator that is slashed\",\"slashedAmount\":\"virtual amount of the collateral slashed\",\"subnetwork\":\"subnetwork that requested the slash\"}}},\"kind\":\"dev\",\"methods\":{\"cumulativeSlash(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"cumulative slash amount\"}},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the cumulative slash amount until (inclusively)\"},\"returns\":{\"_0\":\"cumulative slash amount until the given timestamp (inclusively)\"}},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"slash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only a network middleware can call this function.\",\"params\":{\"amount\":\"maximum amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"hints\":\"hints for checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"slashedAmount\":\"virtual amount of the collateral slashed\"}},\"slashableStake(bytes32,address,uint48,bytes)\":{\"params\":{\"captureTimestamp\":\"time point to get the stake amount at\",\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"amount\":\"slashable amount of the stake\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Slash(bytes32,address,uint256,uint48)\":{\"notice\":\"Emitted when a slash is performed.\"}},\"kind\":\"user\",\"methods\":{\"BURNER_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the burner.\"},\"BURNER_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the burner's execution.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"NETWORK_MIDDLEWARE_SERVICE()\":{\"notice\":\"Get the network middleware service's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"cumulativeSlash(bytes32,address)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork.\"},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"isBurnerHook()\":{\"notice\":\"Get if the burner is needed to be called on a slashing.\"},\"latestSlashedCaptureTimestamp(bytes32,address)\":{\"notice\":\"Get the latest capture timestamp that was slashed on a subnetwork.\"},\"slash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Perform a slash using a subnetwork for a particular operator by a given amount using hints.\"},\"slashableStake(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a slashable amount of a stake got at a given capture timestamp using hints.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/SlasherHints.sol\":\"SlasherHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf\",\"dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x4aaaf1c0737dd16e81f0d2b9833c549747a5ede6873bf1444bc72aa572d03e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eada27d7668eebaea16c3b890aa1b38ffc53965292e26c96f7c44834623f4710\",\"dweb:/ipfs/QmVSWuLtxyCqNbLyY89ptxkvsk4CLLKDQYigEne5Qj8k1L\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a\",\"dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c\",\"dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e\",\"dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0xbdc3bb48ccedb818cd75a6d74a16df55a822e9f6d3cc54c59f576f10aab67b5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2284f25f2478f419d7781573b17a89d0e7c5589a865d55e2d6ed5163aee23aa8\",\"dweb:/ipfs/QmNsr2625APBQiNKpYnX5VcSnYgfUHR9Uzzp9pRXjoDqK7\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44\",\"dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x303ad40a3de8fa808cc30a6fbd5998633f6a89b982e6db1fa981e0566ab445e7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fa8fb92995ead02798e013190b87b84b44cc68668262f045c9b0b4783940e2bf\",\"dweb:/ipfs/QmV1uKGVLKwWisc714R8fCt71gXUQJpaKvdc6LQ8WtvMpL\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0xd71e9102e99a25ee8b5435779f011a24558f56074aa2b16c18b623b57754ae97\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://29db5552e55dab51bea1ae40ba00ca674cb50fcb10997999a72a94527b6eb591\",\"dweb:/ipfs/QmQrYyTPx73ubNxMhYWJCkprCVFVtuTFcKaabYiKTe71tY\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/SlasherHints.sol\":{\"keccak256\":\"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595\",\"dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/slasher/BaseSlasher.sol\":{\"keccak256\":\"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06\",\"dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF\"]},\"src/contracts/slasher/Slasher.sol\":{\"keccak256\":\"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61\",\"dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3\"]},\"src/contracts/slasher/VetoSlasher.sol\":{\"keccak256\":\"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429\",\"dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x7ee6dbf060c45d6eba95315f4ac0b3b467dd9c4999b84c31d6f66d4d8b53a116\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://301948b8ea522db292aa2722ba42def3911dae95f0b376f7023c3fef470f8676\",\"dweb:/ipfs/QmSDbP2HdzhDAzstr8Zz5isEAcSkma8ABc5UwPsoazaumZ\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/slasher/IBurner.sol\":{\"keccak256\":\"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447\",\"dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW\"]},\"src/interfaces/slasher/ISlasher.sol\":{\"keccak256\":\"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1\",\"dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ\"]},\"src/interfaces/slasher/IVetoSlasher.sol\":{\"keccak256\":\"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508\",\"dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseSlasherHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientBurnerGas"},{"inputs":[],"type":"error","name":"InsufficientSlash"},{"inputs":[],"type":"error","name":"InvalidCaptureTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NoBurner"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetworkMiddleware"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false}],"type":"event","name":"Slash","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_SLASHER_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"cumulativeSlash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"cumulativeSlashAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isBurnerHook","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"latestSlashedCaptureTimestamp","outputs":[{"internalType":"uint48","name":"value","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"slash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"slashHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"slashableStake","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"cumulativeSlash(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"cumulative slash amount"}},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the cumulative slash amount until (inclusively)"},"returns":{"_0":"cumulative slash amount until the given timestamp (inclusively)"}},"initialize(bytes)":{"params":{"data":"some data to use"}},"slash(bytes32,address,uint256,uint48,bytes)":{"details":"Only a network middleware can call this function.","params":{"amount":"maximum amount of the collateral to be slashed","captureTimestamp":"time point when the stake was captured","hints":"hints for checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"slashedAmount":"virtual amount of the collateral slashed"}},"slashableStake(bytes32,address,uint48,bytes)":{"params":{"captureTimestamp":"time point to get the stake amount at","hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"amount":"slashable amount of the stake"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}}},"version":1},"userdoc":{"kind":"user","methods":{"BURNER_GAS_LIMIT()":{"notice":"Get a gas limit for the burner."},"BURNER_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the burner's execution."},"FACTORY()":{"notice":"Get the factory's address."},"NETWORK_MIDDLEWARE_SERVICE()":{"notice":"Get the network middleware service's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"cumulativeSlash(bytes32,address)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork."},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"isBurnerHook()":{"notice":"Get if the burner is needed to be called on a slashing."},"latestSlashedCaptureTimestamp(bytes32,address)":{"notice":"Get the latest capture timestamp that was slashed on a subnetwork."},"slash(bytes32,address,uint256,uint48,bytes)":{"notice":"Perform a slash using a subnetwork for a particular operator by a given amount using hints."},"slashableStake(bytes32,address,uint48,bytes)":{"notice":"Get a slashable amount of a stake got at a given capture timestamp using hints."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/SlasherHints.sol":"SlasherHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866","urls":["bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf","dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab","urls":["bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89","dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606","urls":["bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1","dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x4aaaf1c0737dd16e81f0d2b9833c549747a5ede6873bf1444bc72aa572d03e98","urls":["bzz-raw://eada27d7668eebaea16c3b890aa1b38ffc53965292e26c96f7c44834623f4710","dweb:/ipfs/QmVSWuLtxyCqNbLyY89ptxkvsk4CLLKDQYigEne5Qj8k1L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol":{"keccak256":"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549","urls":["bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a","dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed","urls":["bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0","dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d","urls":["bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c","dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575","urls":["bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e","dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0xbdc3bb48ccedb818cd75a6d74a16df55a822e9f6d3cc54c59f576f10aab67b5f","urls":["bzz-raw://2284f25f2478f419d7781573b17a89d0e7c5589a865d55e2d6ed5163aee23aa8","dweb:/ipfs/QmNsr2625APBQiNKpYnX5VcSnYgfUHR9Uzzp9pRXjoDqK7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f","urls":["bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44","dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x303ad40a3de8fa808cc30a6fbd5998633f6a89b982e6db1fa981e0566ab445e7","urls":["bzz-raw://fa8fb92995ead02798e013190b87b84b44cc68668262f045c9b0b4783940e2bf","dweb:/ipfs/QmV1uKGVLKwWisc714R8fCt71gXUQJpaKvdc6LQ8WtvMpL"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0xd71e9102e99a25ee8b5435779f011a24558f56074aa2b16c18b623b57754ae97","urls":["bzz-raw://29db5552e55dab51bea1ae40ba00ca674cb50fcb10997999a72a94527b6eb591","dweb:/ipfs/QmQrYyTPx73ubNxMhYWJCkprCVFVtuTFcKaabYiKTe71tY"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/SlasherHints.sol":{"keccak256":"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f","urls":["bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595","dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/slasher/BaseSlasher.sol":{"keccak256":"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6","urls":["bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06","dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF"],"license":"BUSL-1.1"},"src/contracts/slasher/Slasher.sol":{"keccak256":"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f","urls":["bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61","dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3"],"license":"BUSL-1.1"},"src/contracts/slasher/VetoSlasher.sol":{"keccak256":"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897","urls":["bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429","dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x7ee6dbf060c45d6eba95315f4ac0b3b467dd9c4999b84c31d6f66d4d8b53a116","urls":["bzz-raw://301948b8ea522db292aa2722ba42def3911dae95f0b376f7023c3fef470f8676","dweb:/ipfs/QmSDbP2HdzhDAzstr8Zz5isEAcSkma8ABc5UwPsoazaumZ"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/slasher/IBurner.sol":{"keccak256":"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b","urls":["bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447","dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW"],"license":"MIT"},"src/interfaces/slasher/ISlasher.sol":{"keccak256":"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625","urls":["bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1","dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ"],"license":"MIT"},"src/interfaces/slasher/IVetoSlasher.sol":{"keccak256":"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9","urls":["bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508","dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":95} \ No newline at end of file diff --git a/out/SlasherHints.sol/VetoSlasherHints.json b/out/SlasherHints.sol/VetoSlasherHints.json index b36fa1ff..71116b45 100644 --- a/out/SlasherHints.sol/VetoSlasherHints.json +++ b/out/SlasherHints.sol/VetoSlasherHints.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"baseSlasherHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_SLASHER_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"BURNER_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BURNER_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"executeSlash","inputs":[{"name":"slashIndex","type":"uint256","internalType":"uint256"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"executeSlashHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isBurnerHook","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestSlashedCaptureTimestamp","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"requestSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"slashIndex","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"requestSlashHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"msgSender","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"resolver","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"resolverAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"resolverHint","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"resolverHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"resolverSetEpochsDelay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"setResolver","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"resolver_","type":"address","internalType":"address"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setResolverHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"slashRequests","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"vetoDeadline","type":"uint48","internalType":"uint48"},{"name":"completed","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"slashRequestsLength","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slashableStake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"vetoDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"vetoSlash","inputs":[{"name":"slashIndex","type":"uint256","internalType":"uint256"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vetoSlashHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"event","name":"ExecuteSlash","inputs":[{"name":"slashIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"RequestSlash","inputs":[{"name":"slashIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"slashAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"vetoDeadline","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"SetResolver","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"resolver","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VetoSlash","inputs":[{"name":"slashIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"resolver","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientBurnerGas","inputs":[]},{"type":"error","name":"InsufficientSlash","inputs":[]},{"type":"error","name":"InvalidCaptureTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidResolverSetEpochsDelay","inputs":[]},{"type":"error","name":"InvalidVetoDuration","inputs":[]},{"type":"error","name":"NoBurner","inputs":[]},{"type":"error","name":"NoResolver","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotNetworkMiddleware","inputs":[]},{"type":"error","name":"NotResolver","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashPeriodEnded","inputs":[]},{"type":"error","name":"SlashRequestCompleted","inputs":[]},{"type":"error","name":"SlashRequestNotExist","inputs":[]},{"type":"error","name":"VetoPeriodEnded","inputs":[]},{"type":"error","name":"VetoPeriodNotEnded","inputs":[]}],"bytecode":{"object":"0x6101603461017c576001600160401b0390601f61370238819003918201601f1916830191848311848410176101805780849260209460405283398101031261017c5751906001600160a01b038216820361017c57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c1661016a578080831603610125575b835f60a0525f60c0525f60e052610100905f8252610120905f82526101409081526040519161356d9384610195853960805184610b68015260a0518461047b015260c05184818161158e0152612c56015260e0518481816102e801526122c2015251838181610437015261244c015251828181610c7a01526115e40152518181816108060152818161191c0152611d110152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8080610091565b60405163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80622a087514610213578063103f29071461020e5780631a2be2c4146102095780631dd5f60014610204578063267de1f3146101ff5780632964f8dc146101fa5780632c9d45b3146101f55780632dd31000146101f057806331ce4dfe146101eb57806334d098ea146101e6578063439fab91146101e1578063457821b7146101dc5780635264679b146101d7578063545ce389146101d257806369f78920146101cd5780638f42f9ab146101c85780638f82f931146101c35780639168f9d2146101be5780639a896551146101b95780639f86fd85146101b4578063a4ef9b4f146101af578063aa8e6489146101aa578063aab3595f146101a5578063b94c386e146101a0578063bb24fe8a1461019b578063bc6eac5b14610196578063c0cd7c3e14610191578063cd05b8a11461018c578063d5c24e1a14610187578063e054e08b14610182578063f9268d181461017d5763fbfa77cf14610178575f80fd5b61181b565b6116ad565b611688565b61166b565b611613565b6115cf565b6115b2565b61156f565b61121d565b6111c5565b611187565b611124565b611090565b611005565b610bda565b610b49565b610b2c565b610ae7565b61084f565b610835565b6107f1565b6106b9565b610668565b6105ff565b610466565b610422565b610406565b6103b1565b610397565b610317565b6102d3565b610261565b6001600160a01b0381160361022957565b5f80fd5b65ffffffffffff81160361022957565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102295760c0366003190112610229576102c56102b160043561028481610218565b61028f602435610218565b60643561029b81610218565b60a435916102a88361022d565b604435906118d1565b60405191829160208352602083019061023d565b0390f35b5f91031261022957565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461022957604036600319011261022957602061036361035e60243561033c81610218565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6120da565b604051908152f35b60609060031901126102295760043561038381610218565b90602435906044356103948161022d565b90565b34610229576102c56102b16103ab3661036b565b916119a8565b3461022957604036600319011261022957602065ffffffffffff6103fc6024356103da81610218565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b34610229575f366003190112610229576020604051614e208152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176104d957604052565b6104aa565b604081019081106001600160401b038211176104d957604052565b606081019081106001600160401b038211176104d957604052565b6001600160401b0381116104d957604052565b608081019081106001600160401b038211176104d957604052565b90601f801991011681019081106001600160401b038211176104d957604052565b6040519060c082018281106001600160401b038211176104d957604052565b6040519061058f826104f9565b565b6040519061058f826104de565b6001600160401b0381116104d957601f01601f191660200190565b81601f82011215610229578035906105d08261059e565b926105de6040519485610542565b8284526020838301011161022957815f926020809301838601378301015290565b346102295760603660031901126102295760243561061c8161022d565b604435906001600160401b0382116102295761065f61064160209336906004016105b9565b6004355f90815260068552604090206001600160a01b039390612152565b16604051908152f35b34610229575f36600319011261022957602060ff5f5460a01c166040519015158152f35b9181601f84011215610229578235916001600160401b038311610229576020838186019501011161022957565b34610229576020366003190112610229576001600160401b03600435818111610229576106ea90369060040161068c565b5f80516020613518833981519152549260ff8460401c16159316801590816107e9575b60011490816107df575b1590816107d6575b506107c4575f80516020613518833981519152805467ffffffffffffffff1916600117905561075291836107a05761228b565b61075857005b5f80516020613518833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020613518833981519152805460ff60401b1916600160401b17905561228b565b60405163f92ee8a960e01b8152600490fd5b9050155f61071f565b303b159150610717565b84915061070d565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576102c56102b16108493661036b565b91611a2c565b346102295760a0366003190112610229576024356004803561087083610218565b604435926064356108808161022d565b6084356001600160401b0381116102295761089e903690860161068c565b94906108a86123f5565b6108b185612424565b6108b9611abe565b9580610ad1575b50506108cb426125f5565b906108e66108df825465ffffffffffff1690565b8093611b1f565b5f5490969061090b906108ff906001600160a01b031681565b6001600160a01b031690565b968260206040998a51928380926327f843b560e11b82525afa8015610acc5761094a9261093f925f92610a9b575b50611a14565b65ffffffffffff1690565b65ffffffffffff8516908110908115610a85575b50610a765761097090518486886127d0565b5096878082109118028088189714610a68576102c5610a41878988887f3cb7f4ff6cecf74cee0eb9ae3ebf8933fa60a53014cce52f96da72a78dba8464896109c08a6109bb426125f5565b611b1f565b92600354978894610a116109d2610563565b8881526001600160a01b0385166020820152808b018a905265ffffffffffff8616606082015265ffffffffffff831660808201525f60a0820152611b61565b885197885265ffffffffffff938416602089015290921660408701526001600160a01b0316949081906060820190565b0390a4610a5a60015f805160206134f883398151915255565b519081529081906020820190565b855163167f871760e31b8152fd5b508551631357ac9160e11b8152fd5b9050610a9361093f426125f5565b11155f61095e565b610abe91925060203d602011610ac5575b610ab68183610542565b810190611b39565b905f610939565b503d610aac565b6118ad565b610adf929650810190611ad1565b935f806108c0565b34610229576080366003190112610229576102c56102b1600435610b0a81610218565b604435610b1681610218565b60643591610b238361022d565b60243590611c97565b34610229575f366003190112610229576020600354604051908152f35b3461022957604036600319011261022957602435610b668161022d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610bc85763ffffffff610bb36040926004355f526006602052835f206124df565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102295760603660031901126102295760048035906bffffffffffffffffffffffff8216820361022957602435610c1181610218565b6044356001600160401b03811161022957610c2f903690840161068c565b90610c386123f5565b610c40611abe565b5081610fa0575b5050604080516302910f8b60e31b8152338185019081526001600160a01b0395929491602091829082908190830103818a7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610acc575f91610f73575b5015610f64575f54610ce5906001600160a01b0316936bffffffffffffffffffffffff166bffffffffffffffffffffffff193360601b161790565b95610d00610cfb885f52600660205260405f2090565b613223565b50949015610efa57610d1461093f426125f5565b65ffffffffffff9586161115610ec457610d3e610d39895f52600660205260405f2090565b6125b6565b505b610d636108ff6108ff6108ff610d5e8c5f52600660205260405f2090565b612e74565b91808716928303610dcf575b505050505050610db4907f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b7570925b516001600160a01b0390911681529081906020820190565b0390a2610dcd60015f805160206134f883398151915255565b005b610de68998959796985f52600660205260405f2090565b911692845163186a323160e21b815281818981885afa908115610acc575f91610ea7575b5081600554958751998a80926327f843b560e11b82525afa908115610acc5789610e6f610e81977f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b75709c610e7695610db49d610e7b985f92610e8a575b50501690611de6565b9116611e07565b6125f5565b9061341a565b82958495610d6f565b610ea09250803d10610ac557610ab68183610542565b5f80610e66565b610ebe9150823d8411610ac557610ab68183610542565b5f610e0a565b610ee26108ff6108ff6108ff610d5e8c5f52600660205260405f2090565b82871603610d4057865163a741a04560e01b81528490fd5b5093949385169250508115610f56575091610db491610f4f7f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b757094610f46875f52600660205260405f2090565b610e7b426125f5565b5050610d9c565b825163a741a04560e01b8152fd5b5083516323d53b9760e21b8152fd5b610f939150823d8411610f99575b610f8b8183610542565b810190611dd2565b5f610caa565b503d610f81565b610fac91810190611ad1565b505f80610c47565b634e487b7160e01b5f52603260045260245ffd5b6003548110156110005760035f5260021b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01905f90565b610fb4565b34610229576020366003190112610229576004356003548110156102295761102c90610fc8565b50805460018201546002830154600390930154604080519384526001600160a01b0390921660208401529082019290925265ffffffffffff808316606080840191909152603084901c90911660808301529190911c60ff16151560a082015260c090f35b34610229576040366003190112610229576004356110ad81610218565b6024356001600160401b038111610229575f916110cf8392369060040161068c565b90816040519283928337810184815203915af461111c6110ed611e14565b9161110e60405193849215156020840152604080840152606083019061023d565b03601f198101835282610542565b805190602001fd5b34610229576102c56102b16111383661036b565b91611e75565b906080600319830112610229576004359160243561115b81610218565b916044356111688161022d565b91606435906001600160401b03821161022957610394916004016105b9565b346102295760206103636111c061119d3661113e565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b61265b565b346102295760206111e16111d83661113e565b929190916127d0565b50604051908152f35b9060406003198301126102295760043591602435906001600160401b038211610229576112199160040161068c565b9091565b346102295761122b366111ea565b91906112356123f5565b61123d611f9a565b9280611559575b50506003548110156115475761125981610fc8565b509081549061126782612424565b6003830180549365ffffffffffff9384861660018060a01b0361128c895183856119bf565b1615158061151c575b80611503575b6114f1576112b1816112ac426125f5565b611a14565b5f546112c7906108ff906001600160a01b031681565b96600460206040998a51928380926327f843b560e11b82525afa8015610acc5782915f916114d2575b50169116116114c157600183018054909861131b93929188906001600160a01b0316910151926127d0565b90611330816002850154818082109118021890565b9687156114b05760601c60ff1661149f579261145861144b89946114236114108b9687876102c59f61141e8f9d8f9e61145e9f61137a86600160601b60ff60601b19825416179055565b8a54855461139c91906001600160a01b0316885465ffffffffffff1691612a06565b8a5485546113b59189916001600160a01b031690612a86565b8a5494546113d3906001600160a01b0316965465ffffffffffff1690565b976113dc610582565b9384526020840152818301525196879160208301919091604080606083019480518452602081015160208501520151910152565b03601f198101875286610542565b612bf2565b61143c611436855465ffffffffffff1690565b86612cfb565b5494546001600160a01b031690565b915465ffffffffffff1690565b92612d78565b81518381527f5cc28df3b54da9d06f805d87616ebf969c81310f2aa8369cb14ca50f815d411190602090a2610a5a60015f805160206134f883398151915255565b8551633428e90760e01b8152600490fd5b865163167f871760e31b8152600490fd5b8551639ea153eb60e01b8152600490fd5b6114eb915060203d602011610ac557610ab68183610542565b5f6112f0565b60405163b62b15c760e01b8152600490fd5b5061151061093f426125f5565b868860301c161161129b565b506115406108ff61153461152f426125f5565b6119f8565b60208b015190856119bf565b1515611295565b604051637822972360e11b8152600490fd5b611567929350810190611fb9565b905f80611244565b34610229575f3660031901126102295760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610229575f366003190112610229576020600554604051908152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576040366003190112610229576024356001600160401b0381116102295761165961164860209236906004016105b9565b611651426125f5565b6004356119bf565b6040516001600160a01b039091168152f35b34610229575f366003190112610229576020604051620249f08152f35b34610229575f36600319011261022957602065ffffffffffff60045416604051908152f35b34610229576116bb366111ea565b906116c46123f5565b6116cc612041565b9180611807575b5050600354821015611547576116e882610fc8565b506003815491019182549165ffffffffffff9160018060a01b036117108251858716856119bf565b169182159182156117de575b50506117cc5733036117ba5761173461093f426125f5565b908260301c1611156117a95760601c60ff1661179757805460ff60601b1916600160601b17905533907f7d3d269c851b72257a5194a401d151902e9be4347d555996dcff3ff86a077e925f80a3610dcd60015f805160206134f883398151915255565b604051633428e90760e01b8152600490fd5b60405162c457e560e81b8152600490fd5b604051635d154fe160e11b8152600490fd5b60405163dd1ebd9d60e01b8152600490fd5b6117ff9250906108ff9160206117f661152f426125f5565b910151916119bf565b155f8061171c565b611814925081019061205a565b5f806116d3565b34610229575f366003190112610229575f546040516001600160a01b039091168152602090f35b81601f82011215610229578051906118598261059e565b926118676040519485610542565b8284526020838301011161022957815f9260208093018386015e8301015290565b906020828203126102295781516001600160401b038111610229576103949201611842565b6040513d5f823e3d90fd5b604061039492602083525191602080820152019061023d565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252909116604482015265ffffffffffff9091166064820152606091905f81806084810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610acc575f91611986575b50805161195e5750565b61110e9192506103949060405190611975826104be565b8152604051928391602083016118b8565b6119a291503d805f833e61199a8183610542565b810190611888565b5f611954565b92916119b691606094611e75565b805161195e5750565b5f9081526006602052604090206001600160a01b03926119e0929091612152565b1690565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9081165f190191908211611a0f57565b6119e4565b65ffffffffffff9182169082160391908211611a0f57565b611a4d90939293611a406060958483611e75565b9261113861152f426125f5565b815115801590611ab4575b611a60575050565b611aa19293509061110e6103949260405192611a7b846104de565b83526020830190815260405194859360208086015251604080860152608085019061023d565b9051838203603f1901606085015261023d565b5080511515611a58565b60405190611acb826104be565b60608252565b906020828203126102295781356001600160401b03928382116102295701906020828203126102295760405192611b07846104be565b823590811161022957611b1a92016105b9565b815290565b91909165ffffffffffff80809416911601918211611a0f57565b9081602091031261022957516103948161022d565b634e487b7160e01b5f525f60045260245ffd5b600354600160401b8110156104d957806001611b809201600355610fc8565b919091611c43578051825560208101516001830180546001600160a01b0319166001600160a01b039290921691909117905561058f91611c299060a090600390604085015160028201550192611bf665ffffffffffff606083015116859065ffffffffffff1665ffffffffffff19825416179055565b60808101516bffffffffffff00000000000085549160301b16906bffffffffffff00000000000019161784550151151590565b815460ff60601b191690151560601b60ff60601b16179055565b611b4e565b906103949160208152611c67825160606020840152608083019061023d565b9060606040611c87602086015194601f199586868303018487015261023d565b940151928285030191015261023d565b919093925f606095611caa838287611e75565b94611d0d611cc4611cbd61152f426125f5565b8484611e75565b604051632751749360e11b81526001600160a01b039384166004820152602481019490945291909516604483015265ffffffffffff909316606482015292839081906084820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa918215610acc575f92611da9575b50825115801590611d9f575b8015611d95575b611d6557505050565b61110e939450906103949291611d79610582565b9283526020830152604082015260405192839160208301611c48565b5081511515611d5c565b5080511515611d55565b611dbe9192503d805f833e61199a8183610542565b905f611d49565b5190811515820361022957565b908160209103126102295761039490611dc5565b81810292918115918404141715611a0f57565b9060018201809211611a0f57565b91908201809211611a0f57565b3d15611e3e573d90611e258261059e565b91611e336040519384610542565b82523d5f602084013e565b606090565b519063ffffffff8216820361022957565b9190826040910312610229576103946020611e6e84611dc5565b9301611e43565b92915f8060609565ffffffffffff60405194602096638f82f93160e01b88880152602487015216604485015260448452611eae84610527565b6040519384611edb87820192639f86fd8560e01b845230602484015260406044840152606483019061023d565b0394611eef601f1996878101835282610542565b51915afa50611f0d611eff611e14565b838082518301019101612627565b9015611f6057808380611f2593518301019101611e54565b9290611f3057505050565b61039492939450611f54604051948592830191909163ffffffff6020820193169052565b03908101835282610542565b809150519182156102295701fd5b5f9081526002602090815260408083206001600160a01b0390941683529290522061039492919061265b565b60405190611fa7826104f9565b60606040838281528260208201520152565b906020828203126102295781356001600160401b03928382116102295701906060828203126102295760405192611fef846104f9565b823581811161022957826120049185016105b9565b84526020830135818111610229578261201e9185016105b9565b602085015260408301359081116102295761203992016105b9565b604082015290565b6040519061204e826104de565b60606020838281520152565b906020828203126102295781356001600160401b03928382116102295701906040828203126102295760405192612090846104de565b823581811161022957826120a59185016105b9565b84526020830135908111610229576120bd92016105b9565b602082015290565b8054821015611000575f5260205f2001905f90565b6120e381612e74565b6001600160d01b038116156121085760016120fe92016120c5565b90549060031b1c90565b50505f90565b908160209103126102295761039490611e43565b5f19810191908211611a0f57565b91908203918211611a0f57565b90600163ffffffff80931601918211611a0f57565b91805115612236578060208061216d9351830101910161210e565b916121788382612eb4565b92612189845165ffffffffffff1690565b9065ffffffffffff808516921682811461221d57821191826121c8575b50506121b6576103949250613319565b5050602001516001600160d01b031690565b9091506121d58354612122565b63ffffffff8316149182156121ee575b50505f806121a6565b61221591925061220961220361093f9261213d565b85612eb4565b5165ffffffffffff1690565b115f806121e5565b50505050602091909101516001600160d01b0316905090565b5061039491613319565b91909160408184031261022957803561225881610218565b9260208201356001600160401b0381116102295761039492016105b9565b90816020910312610229575161039481610218565b61229791810190612240565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610acc575f916123d8575b50156123c65781612328600492612308612f08565b5f80546001600160a01b0319166001600160a01b03891617905586612f95565b94604051928380926313c085b760e11b82525afa918215610acc575f92612399575b505016158061238f575b61237d575161058f9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b5080511515612354565b6123b89250803d106123bf575b6123b08183610542565b810190612276565b5f8061234a565b503d6123a6565b6040516362df054560e01b8152600490fd5b6123ef9150833d8511610f9957610f8b8183610542565b5f6122f3565b5f805160206134f883398151915260028154146124125760029055565b604051633ee5aeb560e01b8152600490fd5b604051635daf681960e11b815260609190911c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa918215610acc575f9261249a575b503391160361248857565b60405163227bf64d60e01b8152600490fd5b6124b491925060203d6020116123bf576123b08183610542565b905f61247d565b906040516124c8816104de565b915465ffffffffffff8116835260301c6020830152565b908154905f829160058411612568575b6124fa9350846131c1565b90811561255c5761251b9061250e83612122565b905f5260205f20016124bb565b9161255561254c6125466020612537875165ffffffffffff1690565b9601516001600160d01b031690565b93612122565b63ffffffff1690565b6001939291565b50505f905f905f905f90565b919261257381613096565b8103908111611a0f576124fa93855f5265ffffffffffff808360205f20015416908516105f146125a45750916124ef565b9291506125b090611df9565b906124ef565b906125c082612e74565b91805480156125e1575f1901906125d782826120c5565b611c43575f905555565b634e487b7160e01b5f52603160045260245ffd5b65ffffffffffff90818111612608571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9190916040818403126102295761263d81611dc5565b9260208201516001600160401b038111610229576103949201611842565b9180511561271d57806020806126769351830101910161210e565b916126818382613267565b92612692845165ffffffffffff1690565b9065ffffffffffff808516921682811461271157821191826126c8575b50506126bf57610394925061325c565b50506020015190565b9091506126d58354612122565b63ffffffff8316149182156126ee575b50505f806126af565b61270991925061220961270361093f9261213d565b85613267565b115f806126e5565b50505050506020015190565b506103949161325c565b906020828203126102295781516001600160401b0392838211610229570190604082820312610229576040519261275d846104de565b82518181116102295782612772918501611842565b84526020830151908111610229576120bd9201611842565b90816020910312610229575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526103949291019061023d565b926127d9612041565b908051806129ec575b50506127ed426125f5565b5f54909490612806906108ff906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa8015610acc5761283a9261093f925f926129d45750611a14565b65ffffffffffff82169081109081156129bd575b811561298c575b50612980578560049560405196878092630ce9b79360e41b82525afa948515610acc576128a79587915f91612963575b50845190604051808099819463e02f693760e01b8352878b8a60048601612799565b03916001600160a01b03165afa938415610acc5761291f955f95612922575b509261290e85936129149361290e96869a61290561035e836128f0875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192611f6e565b90612130565b818082109118021890565b91565b61291492955061290e94919361295061290e928a3d8c1161295c575b6129488183610542565b81019061278a565b969350939194506128c6565b503d61293e565b61297a9150823d84116123bf576123b08183610542565b5f612885565b5050505050505f905f90565b90506129b661093f6129aa876128f0875f52600160205260405f2090565b5465ffffffffffff1690565b115f612855565b90506129cb61093f426125f5565b8110159061284e565b610abe9192508a3d8c11610ac557610ab68183610542565b6129ff9250602080918301019101612727565b5f806127e2565b919091805f52600160205265ffffffffffff80612a368560405f209060018060a01b03165f5260205260405f2090565b541690831611612a4557505050565b61058f92612a6d915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9190825f526002602052612ade61035e612ab38360405f209060018060a01b03165f5260205260405f2090565b92612abd426125f5565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211611a0f576001810190815415612b82575b612afe81613223565b509490835495612b0d846120da565b5081612b6d575b5015612b4c5750505f198301928311611a0f5761058f92612b34916120c5565b90919082549060031b91821b915f19901b1916179055565b61058f94612b66926001600160d01b03909116919061341a565b50506132f6565b65ffffffffffff83811691161490505f612b14565b612b8b826132c9565b612af5565b60606020610394938184526001600160401b0381511682850152015191604080820152019061023d565b919360a093610394969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061023d565b92939060046020612c0f6108ff6108ff5f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa908115610acc5761110e91612c8d915f91612cdc575b506001600160a01b031693612c4c610591565b6001600160401b037f000000000000000000000000000000000000000000000000000000000000000016815290602082015260405192839160208301612b90565b823b15610229575f94612cb886926040519889978896879563724ab0f760e11b875260048701612bba565b03925af18015610acc57612cc95750565b80612cd661058f92610514565b806102c9565b612cf5915060203d6020116123bf576123b08183610542565b5f612c39565b65ffffffffffff9160446020925f60018060a01b038154166040519687958694631c9e38c760e21b865260048601521660248401525af18015610acc57612d3f5750565b612d579060203d60201161295c576129488183610542565b50565b8115612d64570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c16612d90575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa918215610acc575f92612e4d575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff9091166084830152612e1a8260a481015b03601f198101845283610542565b6202a15c5a10612e3b575f928380935192620249f0f1505f80808080612d89565b604051632153f33560e21b8152600490fd5b612e1a9250612e6d612e0c9160203d6020116123bf576123b08183610542565b9250612dc1565b805480612e815750505f90565b5f19918183810111611a0f575f5260205f2001015460301c90565b60405190612ea9826104de565b5f6020838281520152565b612ed991612ed391612ec4612e9c565b50612ecd612e9c565b506120c5565b506124bb565b65ffffffffffff81511690602060018060d01b039101511660405191612efe836104de565b8252602082015290565b612f106133a5565b612f186133a5565b60015f805160206134f883398151915255565b60405190612f38826104be565b5f8252565b809103906060821261022957602060405192612f58846104f9565b12610229576040908151612f6b816104be565b612f7482611dc5565b815283526020810151612f868161022d565b60208401520151604082015290565b90600490612fa1612f2b565b508051612fb8602092838080948301019101612f3d565b6040516327f843b560e11b815290949093849182906001600160a01b03165afa918215610acc575f92613077575b50820190612ffa825165ffffffffffff1690565b65ffffffffffff91821691161015613065576040820160038151106130535761304961302f61304f935165ffffffffffff1690565b65ffffffffffff1665ffffffffffff196004541617600455565b51600555565b5190565b6040516354f778f360e01b8152600490fd5b6040516367d5e3df60e11b8152600490fd5b8161308f9293503d8411610ac557610ab68183610542565b905f612fe6565b600181111561039457600181600160801b8110156131af575b61315761314d61314361313961312f61312561316397600488600160401b61315e9a10156131a2575b640100000000811015613195575b62010000811015613188575b61010081101561317c575b6010811015613170575b1015613168575b60030260011c61311e818b612d5a565b0160011c90565b61311e818a612d5a565b61311e8189612d5a565b61311e8188612d5a565b61311e8187612d5a565b61311e8186612d5a565b8093612d5a565b821190565b900390565b60011b61310e565b811c9160021b91613107565b60081c91811b916130fd565b60101c9160081b916130f2565b60201c9160101b916130e6565b60401c9160201b916130d8565b50600160401b9050608082901c6130af565b91905b8382106131d15750505090565b909192808316906001818518811c8301809311611a0f57855f5265ffffffffffff808460205f20015416908516105f14613210575050925b91906131c4565b909493508101809111611a0f5791613209565b8054806132345750505f905f905f90565b5f19918183810111611a0f575f5260205f2001015460019165ffffffffffff82169160301c90565b906120e39082613319565b9061328a612ed36132ab9261327a612e9c565b50613283612e9c565b50846120c5565b91600165ffffffffffff845116936020828060d01b039101511691016120c5565b905490604051926132bb846104de565b835260031b1c602082015290565b8054600160401b8110156104d9576132e6916001820181556120c5565b8154905f199060031b1b19169055565b90815491600160401b8310156104d95782612b3491600161058f950181556120c5565b908154905f829160058411613357575b6133349350846131c1565b8061333f5750505f90565b61334890612122565b905f5260205f20015460301c90565b919261336281613096565b8103908111611a0f5761333493855f5265ffffffffffff808360205f20015416908516105f14613393575091613329565b92915061339f90611df9565b90613329565b60ff5f805160206135188339815191525460401c16156133c157565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156104d9576133f0916001820181556120c5565b611c4357815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b805492939280156134cd5761343161343c91612122565b825f5260205f200190565b9182549265ffffffffffff918285169281168084116134bb57879303613482575061347b92509065ffffffffffff82549181199060301b169116179055565b60301c9190565b9150506134b6916134a2613494610591565b65ffffffffffff9093168352565b6001600160d01b03861660208301526133d3565b61347b565b604051632520601d60e01b8152600490fd5b50906134f2916134de613494610591565b6001600160d01b03851660208301526133d3565b5f919056fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220a4b36fd2a7f9579b907150ab23cabb9a2ca5c1144cf8a5bb870332bf621d88b664736f6c63430008190033","sourceMap":"3563:3596:97:-:0;;;;-1:-1:-1;;;;;3563:3596:97;;;;;;;;;;-1:-1:-1;;3563:3596:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:97;;;;;;348:4:95;332:21;;8837:64:26;3563:3596:97;;;;;;;;;7896:76:26;;3563:3596:97;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:82;-1:-1:-1;525:17:82;;-1:-1:-1;552:12:82;;-1:-1:-1;2353:28:105;;2391:53;;-1:-1:-1;2391:53:105;;1620:34:107;;-1:-1:-1;1620:34:107;;3901:37:97;;;;3563:3596;;;;;;;;;332:21:95;3563:3596:97;;;;;525:17:82;3563:3596:97;;;;;552:12:82;3563:3596:97;;;;;;;;;;2353:28:105;3563:3596:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;3563:3596:97;;;;;;;;;;;;;8087:29:26;;3563:3596:97;;8087:29:26;7981:146;;;;;7896:76;3563:3596:97;;-1:-1:-1;;;7938:23:26;;;;;3563:3596:97;-1:-1:-1;3563:3596:97;;;;;;-1:-1:-1;3563:3596:97;;;;;-1:-1:-1;3563:3596:97","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80622a087514610213578063103f29071461020e5780631a2be2c4146102095780631dd5f60014610204578063267de1f3146101ff5780632964f8dc146101fa5780632c9d45b3146101f55780632dd31000146101f057806331ce4dfe146101eb57806334d098ea146101e6578063439fab91146101e1578063457821b7146101dc5780635264679b146101d7578063545ce389146101d257806369f78920146101cd5780638f42f9ab146101c85780638f82f931146101c35780639168f9d2146101be5780639a896551146101b95780639f86fd85146101b4578063a4ef9b4f146101af578063aa8e6489146101aa578063aab3595f146101a5578063b94c386e146101a0578063bb24fe8a1461019b578063bc6eac5b14610196578063c0cd7c3e14610191578063cd05b8a11461018c578063d5c24e1a14610187578063e054e08b14610182578063f9268d181461017d5763fbfa77cf14610178575f80fd5b61181b565b6116ad565b611688565b61166b565b611613565b6115cf565b6115b2565b61156f565b61121d565b6111c5565b611187565b611124565b611090565b611005565b610bda565b610b49565b610b2c565b610ae7565b61084f565b610835565b6107f1565b6106b9565b610668565b6105ff565b610466565b610422565b610406565b6103b1565b610397565b610317565b6102d3565b610261565b6001600160a01b0381160361022957565b5f80fd5b65ffffffffffff81160361022957565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102295760c0366003190112610229576102c56102b160043561028481610218565b61028f602435610218565b60643561029b81610218565b60a435916102a88361022d565b604435906118d1565b60405191829160208352602083019061023d565b0390f35b5f91031261022957565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461022957604036600319011261022957602061036361035e60243561033c81610218565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6120da565b604051908152f35b60609060031901126102295760043561038381610218565b90602435906044356103948161022d565b90565b34610229576102c56102b16103ab3661036b565b916119a8565b3461022957604036600319011261022957602065ffffffffffff6103fc6024356103da81610218565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b34610229575f366003190112610229576020604051614e208152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176104d957604052565b6104aa565b604081019081106001600160401b038211176104d957604052565b606081019081106001600160401b038211176104d957604052565b6001600160401b0381116104d957604052565b608081019081106001600160401b038211176104d957604052565b90601f801991011681019081106001600160401b038211176104d957604052565b6040519060c082018281106001600160401b038211176104d957604052565b6040519061058f826104f9565b565b6040519061058f826104de565b6001600160401b0381116104d957601f01601f191660200190565b81601f82011215610229578035906105d08261059e565b926105de6040519485610542565b8284526020838301011161022957815f926020809301838601378301015290565b346102295760603660031901126102295760243561061c8161022d565b604435906001600160401b0382116102295761065f61064160209336906004016105b9565b6004355f90815260068552604090206001600160a01b039390612152565b16604051908152f35b34610229575f36600319011261022957602060ff5f5460a01c166040519015158152f35b9181601f84011215610229578235916001600160401b038311610229576020838186019501011161022957565b34610229576020366003190112610229576001600160401b03600435818111610229576106ea90369060040161068c565b5f80516020613518833981519152549260ff8460401c16159316801590816107e9575b60011490816107df575b1590816107d6575b506107c4575f80516020613518833981519152805467ffffffffffffffff1916600117905561075291836107a05761228b565b61075857005b5f80516020613518833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020613518833981519152805460ff60401b1916600160401b17905561228b565b60405163f92ee8a960e01b8152600490fd5b9050155f61071f565b303b159150610717565b84915061070d565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576102c56102b16108493661036b565b91611a2c565b346102295760a0366003190112610229576024356004803561087083610218565b604435926064356108808161022d565b6084356001600160401b0381116102295761089e903690860161068c565b94906108a86123f5565b6108b185612424565b6108b9611abe565b9580610ad1575b50506108cb426125f5565b906108e66108df825465ffffffffffff1690565b8093611b1f565b5f5490969061090b906108ff906001600160a01b031681565b6001600160a01b031690565b968260206040998a51928380926327f843b560e11b82525afa8015610acc5761094a9261093f925f92610a9b575b50611a14565b65ffffffffffff1690565b65ffffffffffff8516908110908115610a85575b50610a765761097090518486886127d0565b5096878082109118028088189714610a68576102c5610a41878988887f3cb7f4ff6cecf74cee0eb9ae3ebf8933fa60a53014cce52f96da72a78dba8464896109c08a6109bb426125f5565b611b1f565b92600354978894610a116109d2610563565b8881526001600160a01b0385166020820152808b018a905265ffffffffffff8616606082015265ffffffffffff831660808201525f60a0820152611b61565b885197885265ffffffffffff938416602089015290921660408701526001600160a01b0316949081906060820190565b0390a4610a5a60015f805160206134f883398151915255565b519081529081906020820190565b855163167f871760e31b8152fd5b508551631357ac9160e11b8152fd5b9050610a9361093f426125f5565b11155f61095e565b610abe91925060203d602011610ac5575b610ab68183610542565b810190611b39565b905f610939565b503d610aac565b6118ad565b610adf929650810190611ad1565b935f806108c0565b34610229576080366003190112610229576102c56102b1600435610b0a81610218565b604435610b1681610218565b60643591610b238361022d565b60243590611c97565b34610229575f366003190112610229576020600354604051908152f35b3461022957604036600319011261022957602435610b668161022d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610bc85763ffffffff610bb36040926004355f526006602052835f206124df565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102295760603660031901126102295760048035906bffffffffffffffffffffffff8216820361022957602435610c1181610218565b6044356001600160401b03811161022957610c2f903690840161068c565b90610c386123f5565b610c40611abe565b5081610fa0575b5050604080516302910f8b60e31b8152338185019081526001600160a01b0395929491602091829082908190830103818a7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610acc575f91610f73575b5015610f64575f54610ce5906001600160a01b0316936bffffffffffffffffffffffff166bffffffffffffffffffffffff193360601b161790565b95610d00610cfb885f52600660205260405f2090565b613223565b50949015610efa57610d1461093f426125f5565b65ffffffffffff9586161115610ec457610d3e610d39895f52600660205260405f2090565b6125b6565b505b610d636108ff6108ff6108ff610d5e8c5f52600660205260405f2090565b612e74565b91808716928303610dcf575b505050505050610db4907f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b7570925b516001600160a01b0390911681529081906020820190565b0390a2610dcd60015f805160206134f883398151915255565b005b610de68998959796985f52600660205260405f2090565b911692845163186a323160e21b815281818981885afa908115610acc575f91610ea7575b5081600554958751998a80926327f843b560e11b82525afa908115610acc5789610e6f610e81977f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b75709c610e7695610db49d610e7b985f92610e8a575b50501690611de6565b9116611e07565b6125f5565b9061341a565b82958495610d6f565b610ea09250803d10610ac557610ab68183610542565b5f80610e66565b610ebe9150823d8411610ac557610ab68183610542565b5f610e0a565b610ee26108ff6108ff6108ff610d5e8c5f52600660205260405f2090565b82871603610d4057865163a741a04560e01b81528490fd5b5093949385169250508115610f56575091610db491610f4f7f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b757094610f46875f52600660205260405f2090565b610e7b426125f5565b5050610d9c565b825163a741a04560e01b8152fd5b5083516323d53b9760e21b8152fd5b610f939150823d8411610f99575b610f8b8183610542565b810190611dd2565b5f610caa565b503d610f81565b610fac91810190611ad1565b505f80610c47565b634e487b7160e01b5f52603260045260245ffd5b6003548110156110005760035f5260021b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01905f90565b610fb4565b34610229576020366003190112610229576004356003548110156102295761102c90610fc8565b50805460018201546002830154600390930154604080519384526001600160a01b0390921660208401529082019290925265ffffffffffff808316606080840191909152603084901c90911660808301529190911c60ff16151560a082015260c090f35b34610229576040366003190112610229576004356110ad81610218565b6024356001600160401b038111610229575f916110cf8392369060040161068c565b90816040519283928337810184815203915af461111c6110ed611e14565b9161110e60405193849215156020840152604080840152606083019061023d565b03601f198101835282610542565b805190602001fd5b34610229576102c56102b16111383661036b565b91611e75565b906080600319830112610229576004359160243561115b81610218565b916044356111688161022d565b91606435906001600160401b03821161022957610394916004016105b9565b346102295760206103636111c061119d3661113e565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b61265b565b346102295760206111e16111d83661113e565b929190916127d0565b50604051908152f35b9060406003198301126102295760043591602435906001600160401b038211610229576112199160040161068c565b9091565b346102295761122b366111ea565b91906112356123f5565b61123d611f9a565b9280611559575b50506003548110156115475761125981610fc8565b509081549061126782612424565b6003830180549365ffffffffffff9384861660018060a01b0361128c895183856119bf565b1615158061151c575b80611503575b6114f1576112b1816112ac426125f5565b611a14565b5f546112c7906108ff906001600160a01b031681565b96600460206040998a51928380926327f843b560e11b82525afa8015610acc5782915f916114d2575b50169116116114c157600183018054909861131b93929188906001600160a01b0316910151926127d0565b90611330816002850154818082109118021890565b9687156114b05760601c60ff1661149f579261145861144b89946114236114108b9687876102c59f61141e8f9d8f9e61145e9f61137a86600160601b60ff60601b19825416179055565b8a54855461139c91906001600160a01b0316885465ffffffffffff1691612a06565b8a5485546113b59189916001600160a01b031690612a86565b8a5494546113d3906001600160a01b0316965465ffffffffffff1690565b976113dc610582565b9384526020840152818301525196879160208301919091604080606083019480518452602081015160208501520151910152565b03601f198101875286610542565b612bf2565b61143c611436855465ffffffffffff1690565b86612cfb565b5494546001600160a01b031690565b915465ffffffffffff1690565b92612d78565b81518381527f5cc28df3b54da9d06f805d87616ebf969c81310f2aa8369cb14ca50f815d411190602090a2610a5a60015f805160206134f883398151915255565b8551633428e90760e01b8152600490fd5b865163167f871760e31b8152600490fd5b8551639ea153eb60e01b8152600490fd5b6114eb915060203d602011610ac557610ab68183610542565b5f6112f0565b60405163b62b15c760e01b8152600490fd5b5061151061093f426125f5565b868860301c161161129b565b506115406108ff61153461152f426125f5565b6119f8565b60208b015190856119bf565b1515611295565b604051637822972360e11b8152600490fd5b611567929350810190611fb9565b905f80611244565b34610229575f3660031901126102295760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610229575f366003190112610229576020600554604051908152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576040366003190112610229576024356001600160401b0381116102295761165961164860209236906004016105b9565b611651426125f5565b6004356119bf565b6040516001600160a01b039091168152f35b34610229575f366003190112610229576020604051620249f08152f35b34610229575f36600319011261022957602065ffffffffffff60045416604051908152f35b34610229576116bb366111ea565b906116c46123f5565b6116cc612041565b9180611807575b5050600354821015611547576116e882610fc8565b506003815491019182549165ffffffffffff9160018060a01b036117108251858716856119bf565b169182159182156117de575b50506117cc5733036117ba5761173461093f426125f5565b908260301c1611156117a95760601c60ff1661179757805460ff60601b1916600160601b17905533907f7d3d269c851b72257a5194a401d151902e9be4347d555996dcff3ff86a077e925f80a3610dcd60015f805160206134f883398151915255565b604051633428e90760e01b8152600490fd5b60405162c457e560e81b8152600490fd5b604051635d154fe160e11b8152600490fd5b60405163dd1ebd9d60e01b8152600490fd5b6117ff9250906108ff9160206117f661152f426125f5565b910151916119bf565b155f8061171c565b611814925081019061205a565b5f806116d3565b34610229575f366003190112610229575f546040516001600160a01b039091168152602090f35b81601f82011215610229578051906118598261059e565b926118676040519485610542565b8284526020838301011161022957815f9260208093018386015e8301015290565b906020828203126102295781516001600160401b038111610229576103949201611842565b6040513d5f823e3d90fd5b604061039492602083525191602080820152019061023d565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252909116604482015265ffffffffffff9091166064820152606091905f81806084810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610acc575f91611986575b50805161195e5750565b61110e9192506103949060405190611975826104be565b8152604051928391602083016118b8565b6119a291503d805f833e61199a8183610542565b810190611888565b5f611954565b92916119b691606094611e75565b805161195e5750565b5f9081526006602052604090206001600160a01b03926119e0929091612152565b1690565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9081165f190191908211611a0f57565b6119e4565b65ffffffffffff9182169082160391908211611a0f57565b611a4d90939293611a406060958483611e75565b9261113861152f426125f5565b815115801590611ab4575b611a60575050565b611aa19293509061110e6103949260405192611a7b846104de565b83526020830190815260405194859360208086015251604080860152608085019061023d565b9051838203603f1901606085015261023d565b5080511515611a58565b60405190611acb826104be565b60608252565b906020828203126102295781356001600160401b03928382116102295701906020828203126102295760405192611b07846104be565b823590811161022957611b1a92016105b9565b815290565b91909165ffffffffffff80809416911601918211611a0f57565b9081602091031261022957516103948161022d565b634e487b7160e01b5f525f60045260245ffd5b600354600160401b8110156104d957806001611b809201600355610fc8565b919091611c43578051825560208101516001830180546001600160a01b0319166001600160a01b039290921691909117905561058f91611c299060a090600390604085015160028201550192611bf665ffffffffffff606083015116859065ffffffffffff1665ffffffffffff19825416179055565b60808101516bffffffffffff00000000000085549160301b16906bffffffffffff00000000000019161784550151151590565b815460ff60601b191690151560601b60ff60601b16179055565b611b4e565b906103949160208152611c67825160606020840152608083019061023d565b9060606040611c87602086015194601f199586868303018487015261023d565b940151928285030191015261023d565b919093925f606095611caa838287611e75565b94611d0d611cc4611cbd61152f426125f5565b8484611e75565b604051632751749360e11b81526001600160a01b039384166004820152602481019490945291909516604483015265ffffffffffff909316606482015292839081906084820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa918215610acc575f92611da9575b50825115801590611d9f575b8015611d95575b611d6557505050565b61110e939450906103949291611d79610582565b9283526020830152604082015260405192839160208301611c48565b5081511515611d5c565b5080511515611d55565b611dbe9192503d805f833e61199a8183610542565b905f611d49565b5190811515820361022957565b908160209103126102295761039490611dc5565b81810292918115918404141715611a0f57565b9060018201809211611a0f57565b91908201809211611a0f57565b3d15611e3e573d90611e258261059e565b91611e336040519384610542565b82523d5f602084013e565b606090565b519063ffffffff8216820361022957565b9190826040910312610229576103946020611e6e84611dc5565b9301611e43565b92915f8060609565ffffffffffff60405194602096638f82f93160e01b88880152602487015216604485015260448452611eae84610527565b6040519384611edb87820192639f86fd8560e01b845230602484015260406044840152606483019061023d565b0394611eef601f1996878101835282610542565b51915afa50611f0d611eff611e14565b838082518301019101612627565b9015611f6057808380611f2593518301019101611e54565b9290611f3057505050565b61039492939450611f54604051948592830191909163ffffffff6020820193169052565b03908101835282610542565b809150519182156102295701fd5b5f9081526002602090815260408083206001600160a01b0390941683529290522061039492919061265b565b60405190611fa7826104f9565b60606040838281528260208201520152565b906020828203126102295781356001600160401b03928382116102295701906060828203126102295760405192611fef846104f9565b823581811161022957826120049185016105b9565b84526020830135818111610229578261201e9185016105b9565b602085015260408301359081116102295761203992016105b9565b604082015290565b6040519061204e826104de565b60606020838281520152565b906020828203126102295781356001600160401b03928382116102295701906040828203126102295760405192612090846104de565b823581811161022957826120a59185016105b9565b84526020830135908111610229576120bd92016105b9565b602082015290565b8054821015611000575f5260205f2001905f90565b6120e381612e74565b6001600160d01b038116156121085760016120fe92016120c5565b90549060031b1c90565b50505f90565b908160209103126102295761039490611e43565b5f19810191908211611a0f57565b91908203918211611a0f57565b90600163ffffffff80931601918211611a0f57565b91805115612236578060208061216d9351830101910161210e565b916121788382612eb4565b92612189845165ffffffffffff1690565b9065ffffffffffff808516921682811461221d57821191826121c8575b50506121b6576103949250613319565b5050602001516001600160d01b031690565b9091506121d58354612122565b63ffffffff8316149182156121ee575b50505f806121a6565b61221591925061220961220361093f9261213d565b85612eb4565b5165ffffffffffff1690565b115f806121e5565b50505050602091909101516001600160d01b0316905090565b5061039491613319565b91909160408184031261022957803561225881610218565b9260208201356001600160401b0381116102295761039492016105b9565b90816020910312610229575161039481610218565b61229791810190612240565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610acc575f916123d8575b50156123c65781612328600492612308612f08565b5f80546001600160a01b0319166001600160a01b03891617905586612f95565b94604051928380926313c085b760e11b82525afa918215610acc575f92612399575b505016158061238f575b61237d575161058f9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b5080511515612354565b6123b89250803d106123bf575b6123b08183610542565b810190612276565b5f8061234a565b503d6123a6565b6040516362df054560e01b8152600490fd5b6123ef9150833d8511610f9957610f8b8183610542565b5f6122f3565b5f805160206134f883398151915260028154146124125760029055565b604051633ee5aeb560e01b8152600490fd5b604051635daf681960e11b815260609190911c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa918215610acc575f9261249a575b503391160361248857565b60405163227bf64d60e01b8152600490fd5b6124b491925060203d6020116123bf576123b08183610542565b905f61247d565b906040516124c8816104de565b915465ffffffffffff8116835260301c6020830152565b908154905f829160058411612568575b6124fa9350846131c1565b90811561255c5761251b9061250e83612122565b905f5260205f20016124bb565b9161255561254c6125466020612537875165ffffffffffff1690565b9601516001600160d01b031690565b93612122565b63ffffffff1690565b6001939291565b50505f905f905f905f90565b919261257381613096565b8103908111611a0f576124fa93855f5265ffffffffffff808360205f20015416908516105f146125a45750916124ef565b9291506125b090611df9565b906124ef565b906125c082612e74565b91805480156125e1575f1901906125d782826120c5565b611c43575f905555565b634e487b7160e01b5f52603160045260245ffd5b65ffffffffffff90818111612608571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9190916040818403126102295761263d81611dc5565b9260208201516001600160401b038111610229576103949201611842565b9180511561271d57806020806126769351830101910161210e565b916126818382613267565b92612692845165ffffffffffff1690565b9065ffffffffffff808516921682811461271157821191826126c8575b50506126bf57610394925061325c565b50506020015190565b9091506126d58354612122565b63ffffffff8316149182156126ee575b50505f806126af565b61270991925061220961270361093f9261213d565b85613267565b115f806126e5565b50505050506020015190565b506103949161325c565b906020828203126102295781516001600160401b0392838211610229570190604082820312610229576040519261275d846104de565b82518181116102295782612772918501611842565b84526020830151908111610229576120bd9201611842565b90816020910312610229575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526103949291019061023d565b926127d9612041565b908051806129ec575b50506127ed426125f5565b5f54909490612806906108ff906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa8015610acc5761283a9261093f925f926129d45750611a14565b65ffffffffffff82169081109081156129bd575b811561298c575b50612980578560049560405196878092630ce9b79360e41b82525afa948515610acc576128a79587915f91612963575b50845190604051808099819463e02f693760e01b8352878b8a60048601612799565b03916001600160a01b03165afa938415610acc5761291f955f95612922575b509261290e85936129149361290e96869a61290561035e836128f0875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192611f6e565b90612130565b818082109118021890565b91565b61291492955061290e94919361295061290e928a3d8c1161295c575b6129488183610542565b81019061278a565b969350939194506128c6565b503d61293e565b61297a9150823d84116123bf576123b08183610542565b5f612885565b5050505050505f905f90565b90506129b661093f6129aa876128f0875f52600160205260405f2090565b5465ffffffffffff1690565b115f612855565b90506129cb61093f426125f5565b8110159061284e565b610abe9192508a3d8c11610ac557610ab68183610542565b6129ff9250602080918301019101612727565b5f806127e2565b919091805f52600160205265ffffffffffff80612a368560405f209060018060a01b03165f5260205260405f2090565b541690831611612a4557505050565b61058f92612a6d915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9190825f526002602052612ade61035e612ab38360405f209060018060a01b03165f5260205260405f2090565b92612abd426125f5565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211611a0f576001810190815415612b82575b612afe81613223565b509490835495612b0d846120da565b5081612b6d575b5015612b4c5750505f198301928311611a0f5761058f92612b34916120c5565b90919082549060031b91821b915f19901b1916179055565b61058f94612b66926001600160d01b03909116919061341a565b50506132f6565b65ffffffffffff83811691161490505f612b14565b612b8b826132c9565b612af5565b60606020610394938184526001600160401b0381511682850152015191604080820152019061023d565b919360a093610394969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061023d565b92939060046020612c0f6108ff6108ff5f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa908115610acc5761110e91612c8d915f91612cdc575b506001600160a01b031693612c4c610591565b6001600160401b037f000000000000000000000000000000000000000000000000000000000000000016815290602082015260405192839160208301612b90565b823b15610229575f94612cb886926040519889978896879563724ab0f760e11b875260048701612bba565b03925af18015610acc57612cc95750565b80612cd661058f92610514565b806102c9565b612cf5915060203d6020116123bf576123b08183610542565b5f612c39565b65ffffffffffff9160446020925f60018060a01b038154166040519687958694631c9e38c760e21b865260048601521660248401525af18015610acc57612d3f5750565b612d579060203d60201161295c576129488183610542565b50565b8115612d64570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c16612d90575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa918215610acc575f92612e4d575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff9091166084830152612e1a8260a481015b03601f198101845283610542565b6202a15c5a10612e3b575f928380935192620249f0f1505f80808080612d89565b604051632153f33560e21b8152600490fd5b612e1a9250612e6d612e0c9160203d6020116123bf576123b08183610542565b9250612dc1565b805480612e815750505f90565b5f19918183810111611a0f575f5260205f2001015460301c90565b60405190612ea9826104de565b5f6020838281520152565b612ed991612ed391612ec4612e9c565b50612ecd612e9c565b506120c5565b506124bb565b65ffffffffffff81511690602060018060d01b039101511660405191612efe836104de565b8252602082015290565b612f106133a5565b612f186133a5565b60015f805160206134f883398151915255565b60405190612f38826104be565b5f8252565b809103906060821261022957602060405192612f58846104f9565b12610229576040908151612f6b816104be565b612f7482611dc5565b815283526020810151612f868161022d565b60208401520151604082015290565b90600490612fa1612f2b565b508051612fb8602092838080948301019101612f3d565b6040516327f843b560e11b815290949093849182906001600160a01b03165afa918215610acc575f92613077575b50820190612ffa825165ffffffffffff1690565b65ffffffffffff91821691161015613065576040820160038151106130535761304961302f61304f935165ffffffffffff1690565b65ffffffffffff1665ffffffffffff196004541617600455565b51600555565b5190565b6040516354f778f360e01b8152600490fd5b6040516367d5e3df60e11b8152600490fd5b8161308f9293503d8411610ac557610ab68183610542565b905f612fe6565b600181111561039457600181600160801b8110156131af575b61315761314d61314361313961312f61312561316397600488600160401b61315e9a10156131a2575b640100000000811015613195575b62010000811015613188575b61010081101561317c575b6010811015613170575b1015613168575b60030260011c61311e818b612d5a565b0160011c90565b61311e818a612d5a565b61311e8189612d5a565b61311e8188612d5a565b61311e8187612d5a565b61311e8186612d5a565b8093612d5a565b821190565b900390565b60011b61310e565b811c9160021b91613107565b60081c91811b916130fd565b60101c9160081b916130f2565b60201c9160101b916130e6565b60401c9160201b916130d8565b50600160401b9050608082901c6130af565b91905b8382106131d15750505090565b909192808316906001818518811c8301809311611a0f57855f5265ffffffffffff808460205f20015416908516105f14613210575050925b91906131c4565b909493508101809111611a0f5791613209565b8054806132345750505f905f905f90565b5f19918183810111611a0f575f5260205f2001015460019165ffffffffffff82169160301c90565b906120e39082613319565b9061328a612ed36132ab9261327a612e9c565b50613283612e9c565b50846120c5565b91600165ffffffffffff845116936020828060d01b039101511691016120c5565b905490604051926132bb846104de565b835260031b1c602082015290565b8054600160401b8110156104d9576132e6916001820181556120c5565b8154905f199060031b1b19169055565b90815491600160401b8310156104d95782612b3491600161058f950181556120c5565b908154905f829160058411613357575b6133349350846131c1565b8061333f5750505f90565b61334890612122565b905f5260205f20015460301c90565b919261336281613096565b8103908111611a0f5761333493855f5265ffffffffffff808360205f20015416908516105f14613393575091613329565b92915061339f90611df9565b90613329565b60ff5f805160206135188339815191525460401c16156133c157565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156104d9576133f0916001820181556120c5565b611c4357815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b805492939280156134cd5761343161343c91612122565b825f5260205f200190565b9182549265ffffffffffff918285169281168084116134bb57879303613482575061347b92509065ffffffffffff82549181199060301b169116179055565b60301c9190565b9150506134b6916134a2613494610591565b65ffffffffffff9093168352565b6001600160d01b03861660208301526133d3565b61347b565b604051632520601d60e01b8152600490fd5b50906134f2916134de613494610591565b6001600160d01b03851660208301526133d3565b5f919056fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220a4b36fd2a7f9579b907150ab23cabb9a2ca5c1144cf8a5bb870332bf621d88b664736f6c63430008190033","sourceMap":"3563:3596:97:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;-1:-1:-1;;;;;3563:3596:97;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;3563:3596:97;;;;;;;;-1:-1:-1;;3563:3596:97;;;;:::o;:::-;;;;;;-1:-1:-1;;3563:3596:97;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3563:3596:97;;;;;;1435:38:105;-1:-1:-1;;;;;3563:3596:97;;;;;;;;;;;;-1:-1:-1;;3563:3596:97;;;;;2936:47:105;:38;3563:3596:97;;;;;:::i;:::-;;;-1:-1:-1;3563:3596:97;2936:16:105;3563:3596:97;;;-1:-1:-1;3563:3596:97;;;;;;;;;;;;;;;;;2936:38:105;:47;:::i;:::-;3563:3596:97;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;3563:3596:97;;;;;;1788:109:105;3563:3596:97;;;;;:::i;:::-;;;-1:-1:-1;3563:3596:97;1788:109:105;3563:3596:97;;;-1:-1:-1;3563:3596:97;;;;;;;;;;;;;;;;;1788:109:105;3563:3596:97;;;;;;;;;;;;;;-1:-1:-1;;3563:3596:97;;;;;;;1374:6:105;3563:3596:97;;;;;;;;;-1:-1:-1;;3563:3596:97;;;;;;1528:51:105;-1:-1:-1;;;;;3563:3596:97;;;;;;;;;;;;-1:-1:-1;;3563:3596:97;;;;;;322:32:82;-1:-1:-1;;;;;3563:3596:97;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:97;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3563:3596:97;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;3563:3596:97;;;;;;;:::o;:::-;-1:-1:-1;;;;;3563:3596:97;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;3563:3596:97;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:97;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;3563:3596:97;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;3563:3596:97;;;;;;-1:-1:-1;;3563:3596:97;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;3563:3596:97;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3563:3596:97;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;3563:3596:97;;;;2016:56:107;3563:3596:97;;;;;;;;:::i;:::-;;;-1:-1:-1;3563:3596:97;;;2016:9:107;3563:3596:97;;;;;-1:-1:-1;;;;;3563:3596:97;;2016:56:107;:::i;:::-;3563:3596:97;;;;;;;;;;;;;-1:-1:-1;;3563:3596:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:97;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3563:3596:97;;;;-1:-1:-1;;;;;3563:3596:97;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;3563:3596:97;;;;;;;4301:16:26;3563:3596:97;;4726:16:26;;:34;;;;3563:3596:97;4805:1:26;4790:16;:50;;;;3563:3596:97;4855:13:26;:30;;;;3563:3596:97;4851:91:26;;;-1:-1:-1;;;;;;;;;;;3563:3596:97;;-1:-1:-1;;3563:3596:97;;;;;718:4:82;;4951:18:26;4979:67;;718:4:82;:::i;:::-;5066:101:26;;3563:3596:97;5066:101:26;-1:-1:-1;;;;;;;;;;;3563:3596:97;;-1:-1:-1;;;;3563:3596:97;;;;;-1:-1:-1;3563:3596:97;;5142:14:26;;3563:3596:97;;5142:14:26;3563:3596:97;4979:67:26;-1:-1:-1;;;;;;;;;;;3563:3596:97;;-1:-1:-1;;;;3563:3596:97;-1:-1:-1;;;3563:3596:97;;;718:4:82;:::i;4851:91:26:-;3563:3596:97;;-1:-1:-1;;;4908:23:26;;3563:3596:97;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;3563:3596:97;;;;;;-1:-1:-1;;3563:3596:97;;;;;;3726:43;-1:-1:-1;;;;;3563:3596:97;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;3563:3596:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3563:3596:97;;;;;;;;;;;:::i;:::-;3361:103:30;;;;:::i;:::-;2123:10:105;;;:::i;:::-;3563:3596:97;;:::i;:::-;2666:16:107;;2662:105;;3563:3596:97;837:15:75;;819:34;837:15;819:34;:::i;:::-;3563:3596:97;2813:31:107;3563:3596:97;;;;;;;;2813:31:107;;;:::i;:::-;-1:-1:-1;3563:3596:97;;;;2847:27:107;;:13;;-1:-1:-1;;;;;3563:3596:97;2847:13:107;3563:3596:97;;-1:-1:-1;;;;;3563:3596:97;;;2847:27:107;3563:3596:97;;;;;;;;;;;;;;2847:29:107;;;;;;;;2794:82;2847:29;2813:63;2847:29;-1:-1:-1;2847:29:107;;;3563:3596:97;2813:63:107;;:::i;:::-;3563:3596:97;;;;2794:82:107;3563:3596:97;;;2794:82:107;;;:138;;;;;3563:3596:97;2777:223:107;;;3248:62:105;3104:37:107;;3248:62:105;;;;:::i;:::-;3463:5:70;;;;;;3066;;3563:3596:97;3060:42:70;;;3166:11:107;;3162:68;;3563:3596:97;3671:86:107;837:15:75;;;;3671:86:107;837:15:75;3262:31:107;837:15:75;819:34;837:15;819:34;:::i;:::-;3262:31:107;:::i;:::-;3563:3596:97;3317:13:107;3563:3596:97;;;;3347:308:107;3563:3596:97;;:::i;:::-;;;;-1:-1:-1;;;;;3563:3596:97;;;3379:266:107;;3563:3596:97;3379:266:107;;;3563:3596:97;;;;;;;3379:266:107;;3563:3596:97;;;;;3379:266:107;;3563:3596:97;-1:-1:-1;3563:3596:97;3379:266:107;;3563:3596:97;3347:308:107;:::i;:::-;3563:3596:97;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:97;;;;;;;;;;3671:86:107;;;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;3563:3596:97;3860:283:30;3426:1;3563:3596:97;;;;;;;;;;;;3162:68:107;3563:3596:97;;-1:-1:-1;;;3200:19:107;;;2777:223;-1:-1:-1;3563:3596:97;;-1:-1:-1;;;2964:25:107;;;2794:138;837:15:75;;2896:36:107;819:34:75;837:15;819:34;:::i;2896:36:107:-;-1:-1:-1;2896:36:107;2794:138;;;2847:29;;;;;3563:3596:97;2847:29:107;3563:3596:97;2847:29:107;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;2662:105::-;2718:38;;;;;;;;:::i;:::-;2662:105;;;;;3563:3596:97;;;;;;-1:-1:-1;;3563:3596:97;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;3563:3596:97;;;;;1795:13:107;3563:3596:97;;;;;;;;;;;;;-1:-1:-1;;3563:3596:97;;;;;;;;;:::i;:::-;449:5:95;-1:-1:-1;;;;;3563:3596:97;435:10:95;:19;431:71;;3563:3596:97;4136:60;3563:3596;;;;-1:-1:-1;3563:3596:97;4136:9;3563:3596;;;-1:-1:-1;3563:3596:97;4136:60;:::i;:::-;3563:3596;;;;;;;;;;;;;;;;;;;431:71:95;3563:3596:97;;-1:-1:-1;;;477:14:95;;3563:3596:97;;477:14:95;3563:3596:97;;;;;;-1:-1:-1;;3563:3596:97;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3563:3596:97;;;;;;;;;;;:::i;:::-;3361:103:30;;;:::i;:::-;3563:3596:97;;:::i;:::-;;7493:16:107;7489:103;;3563:3596:97;-1:-1:-1;;3563:3596:97;;;-1:-1:-1;;;7607:48:107;;7644:10;7607:48;;;3563:3596:97;;;-1:-1:-1;;;;;3563:3596:97;;;;;;;;;;;;;;7607:48:107;7617:16;;;3563:3596:97;7607:48:107;;;;;;;-1:-1:-1;7607:48:107;;;3563:3596:97;7606:49:107;;7602:99;;-1:-1:-1;3563:3596:97;7764:35:107;;-1:-1:-1;;;;;3563:3596:97;7644:10:107;3563:3596:97;;-1:-1:-1;;7644:10:107;297:2:101;3563:3596:97;;267:46:101;;152:169;7764:35:107;7850:21;5260:30:99;7850:21:107;;3563:3596:97;;7850:9:107;3563:3596:97;;;;;;;7850:21:107;5260:30:99;:::i;:::-;-1:-1:-1;7900:801:107;;;;;7930:34;819::75;837:15;819:34;:::i;7930::107:-;3563:3596:97;;;;7930:34:107;;;;7984:27;:21;;3563:3596:97;;7850:9:107;3563:3596:97;;;;;;;7984:21:107;:27;:::i;:::-;;7926:225;8169:61;8182:48;8190:39;4928:20:99;8198:21:107;;3563:3596:97;;7850:9:107;3563:3596:97;;;;;;;8198:21:107;4928:20:99;:::i;8169:61:107:-;3563:3596:97;;;;8169:61:107;;;8165:336;;7926:225;7900:801;;;;;;8716:34;7900:801;8716:34;7900:801;;3563:3596:97;-1:-1:-1;;;;;3563:3596:97;;;;;;;;;;;;;8716:34:107;;;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;3563:3596:97;3860:283:30;3426:1;3563:3596:97;8165:336:107;8250:21;;;;;;;3563:3596:97;;7850:9:107;3563:3596:97;;;;;;;8250:21:107;3563:3596:97;;;;;;;;8299:34:107;;;;;;;;;;;;;;-1:-1:-1;8299:34:107;;;8165:336;3563:3596:97;;8336:22:107;3563:3596:97;;;;;;;;;;;8361:30:107;;;;;;;;;;8336:55;8310:38:73;8361:30:107;8716:34;8361:30;8299:92;8361:30;8716:34;8361:30;8298:130;8361:30;-1:-1:-1;8361:30:107;;;8165:336;3563:3596:97;;;8336:55:107;;:::i;:::-;3563:3596:97;;8299:92:107;:::i;:::-;8298:130;:::i;:::-;8310:38:73;;:::i;:::-;8165:336:107;;;;;;8361:30;;;;;;-1:-1:-1;8361:30:107;;;;;;:::i;:::-;;;;;8299:34;;;;;;;;;;;;;;:::i;:::-;;;;7926:225;8036:61;8049:48;8057:39;4928:20:99;8065:21:107;;3563:3596:97;;7850:9:107;3563:3596:97;;;;;;;8036:61:107;3563:3596:97;;;8036:61:107;7926:225;8032:119;3563:3596:97;;-1:-1:-1;;;8124:12:107;;3563:3596:97;;8124:12:107;7900:801;-1:-1:-1;3563:3596:97;;;;;;-1:-1:-1;;8535:23:107;;8531:81;;8626:21;;8716:34;8626:21;8310:38:73;8716:34:107;8626:21;;;3563:3596:97;;7850:9:107;3563:3596:97;;;;;;;8626:21:107;819:34:75;837:15;819:34;:::i;8310:38:73:-;7900:801:107;;;;8531:81;3563:3596:97;;-1:-1:-1;;;8585:12:107;;;7602:99;-1:-1:-1;3563:3596:97;;-1:-1:-1;;;7678:12:107;;;7607:48;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;7489:103;7544:37;;;;;;:::i;:::-;;7489:103;;;;3563:3596:97;;;;;;;;;;;;;1050:35:107;3563:3596:97;;;;;;1050:35:107;-1:-1:-1;3563:3596:97;;;;;;-1:-1:-1;3563:3596:97;:::o;:::-;;:::i;:::-;;;;;;-1:-1:-1;;3563:3596:97;;;;;;1050:35:107;3563:3596:97;1050:35:107;;;;;;;;:::i;:::-;-1:-1:-1;3563:3596:97;;;1050:35:107;;3563:3596:97;1050:35:107;;;3563:3596:97;1050:35:107;;;;3563:3596:97;;;;;;;-1:-1:-1;;;;;3563:3596:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3563:3596:97;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3563:3596:97;;;;-1:-1:-1;3563:3596:97;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:88;;;;477:31;416:25;;:::i;:::-;3563:3596:97;;;;;;;;;;477:31:88;;3563:3596:97;;;;;;;;;;;:::i;:::-;477:31:88;3563:3596:97;;477:31:88;;;;;;:::i;:::-;518:79;;;3563:3596:97;518:79:88;;3563:3596:97;;;;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;;3563:3596:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;3563:3596:97;;;;;;;;;:::i;:::-;;;;;2692:73:105;:38;3563:3596:97;;;:::i;:::-;;;;;-1:-1:-1;3563:3596:97;2692:16:105;3563:3596:97;;;-1:-1:-1;3563:3596:97;;;;;;;;;;;;;;;;;2692:38:105;:73;:::i;3563:3596:97:-;;;;;3248:62:105;3563:3596:97;;;:::i;:::-;3248:62:105;;;;;:::i;:::-;3563:3596:97;;;;;;;;;;-1:-1:-1;;3563:3596:97;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:97;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;3361:103:30;;;;:::i;:::-;3563:3596:97;;:::i;:::-;4024:16:107;;4020:105;;3563:3596:97;;;4153:13:107;3563:3596:97;4139:34:107;;;4135:94;;4270:25;;;:::i;:::-;3563:3596:97;;;;4330:18:107;;;;:::i;:::-;4153:13;4408:24;;3563:3596:97;;;;;;;;;;;;;4377:95:107;4434:37;;4377:95;;;:::i;:::-;3563:3596:97;4377:125:107;;:250;;;3563:3596:97;4377:309:107;;;3563:3596:97;4360:389:107;;4763:43;837:15:75;819:34;837:15;819:34;:::i;:::-;4763:43:107;:::i;:::-;-1:-1:-1;3563:3596:97;4809:27:107;;:13;;-1:-1:-1;;;;;3563:3596:97;4809:13:107;3563:3596:97;4809:27:107;3563:3596:97;;4809:29:107;3563:3596:97;;;;;;;;;;;4809:29:107;;;;;;;;;;-1:-1:-1;4809:29:107;;;3563:3596:97;;;;;4763:75:107;4759:131;;4994:16;;;3563:3596:97;;4994:16:107;;4945:140;;4994:16;;3563:3596:97;;-1:-1:-1;;;;;3563:3596:97;5038:37:107;;;4945:140;;:::i;:::-;5120:14;5111:41;5120:14;;;;3563:3596:97;3463:5:70;;;;3066;;3563:3596:97;3060:42:70;3371:111;;5111:41:107;5166:18;;;5162:75;;3563:3596:97;;;;5247:78:107;;5335:24;3563:3596:97;;5335:24:107;;5725:145;;5335:24;;;;3563:3596:97;5335:24:107;5725:145;5335:24;;;;6024;5335;;;3563:3596:97;;;;;;;;;;;;;;5335:24:107;3563:3596:97;;;;5445:24:107;;3563:3596:97;-1:-1:-1;;;;;3563:3596:97;;;;;5445:24:107;;:::i;:::-;3563:3596:97;;;;5542:13:107;;3563:3596:97;;-1:-1:-1;;;;;3563:3596:97;5542:13:107;;:::i;:::-;3563:3596:97;;;;;;-1:-1:-1;;;;;3563:3596:97;;;;;;;;;;;:::i;:::-;;;;4809:29:107;5753:103;;3563:3596:97;5753:103:107;;;3563:3596:97;;5725:145:107;;;4809:29;5725:145;;3563:3596:97;;;;;;;;;;;;;;;;;;;;;;;;;;;5725:145:107;;3563:3596:97;;5725:145:107;;;;;;:::i;:::-;;:::i;:::-;5920:24;3563:3596:97;;;;;;;;5920:24:107;;:::i;:::-;3563:3596:97;;;-1:-1:-1;;;;;3563:3596:97;;;;;;;;;;;6024:24:107;;:::i;:::-;3563:3596:97;;;;;6065:39:107;;3563:3596:97;;6065:39:107;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;3563:3596:97;3860:283:30;5247:78:107;3563:3596:97;;-1:-1:-1;;;5291:23:107;;3563:3596:97;;5291:23:107;5162:75;3563:3596:97;;-1:-1:-1;;;5207:19:107;;3563:3596:97;;5207:19:107;4759:131;3563:3596:97;;-1:-1:-1;;;4861:18:107;;3563:3596:97;;4861:18:107;4809:29;;;;;;;;;;;;;;:::i;:::-;;;;4360:389;3563:3596:97;;-1:-1:-1;;;4718:20:107;;3563:3596:97;;4718:20:107;4377:309;837:15:75;4647:39:107;819:34:75;837:15;819:34;:::i;4647:39:107:-;3563:3596:97;;;;;4647:39:107;4377:309;;:250;837:15:75;4522:105:107;:91;4553:20;819:34:75;837:15;819:34;:::i;:::-;4553:20:107;:::i;:::-;4575:37;;;;4522:91;;;:::i;:105::-;;;4377:250;;4135:94;3563:3596:97;;-1:-1:-1;;;4196:22:107;;3563:3596:97;;4196:22:107;4020:105;4076:38;;;;;;;;:::i;:::-;4020:105;;;;;3563:3596:97;;;;;;-1:-1:-1;;3563:3596:97;;;;;;;-1:-1:-1;;;;;404:28:82;3563:3596:97;;;;;;;;;;-1:-1:-1;;3563:3596:97;;;;;1221:37:107;3563:3596:97;;;;;;;;;;;;;-1:-1:-1;;3563:3596:97;;;;;;954:41:107;-1:-1:-1;;;;;3563:3596:97;;;;;;;;;;;;-1:-1:-1;;3563:3596:97;;;;;;-1:-1:-1;;;;;3563:3596:97;;;;2239:46:107;3563:3596:97;;;;;;;;:::i;:::-;819:34:75;837:15;819:34;:::i;:::-;3563:3596:97;;2239:46:107;:::i;:::-;3563:3596:97;;-1:-1:-1;;;;;3563:3596:97;;;;;;;;;;;;-1:-1:-1;;3563:3596:97;;;;;;;1271:7:105;3563:3596:97;;;;;;;;;-1:-1:-1;;3563:3596:97;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3361:103:30;;;:::i;:::-;3563:3596:97;;:::i;:::-;6308:16:107;;6304:99;;3563:3596:97;;;6431:13:107;3563:3596:97;6417:34:107;;;6413:94;;6548:25;;;:::i;:::-;3563:3596:97;6431:13:107;3563:3596:97;;6653:24:107;;3563:3596:97;;;;;;;;;;;6622:92:107;6679:34;;3563:3596:97;;;6622:92:107;;:::i;:::-;3563:3596:97;6741:29:107;;;:151;;;;;3563:3596:97;6724:223:107;;;;6961:10;:29;6957:80;;7051:40;819:34:75;837:15;819:34;:::i;7051:40:107:-;3563:3596:97;;;;;7051:40:107;;7047:95;;3563:3596:97;;;;7152:78:107;;3563:3596:97;;-1:-1:-1;;;;3563:3596:97;-1:-1:-1;;;3563:3596:97;;;6961:10:107;7280:33;;-1:-1:-1;7280:33:107;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;3563:3596:97;3860:283:30;7152:78:107;3563:3596:97;;-1:-1:-1;;;7196:23:107;;3563:3596:97;;7196:23:107;7047:95;3563:3596:97;;-1:-1:-1;;;7114:17:107;;3563:3596:97;;7114:17:107;6957:80;3563:3596:97;;-1:-1:-1;;;7013:13:107;;3563:3596:97;;7013:13:107;6724:223;3563:3596:97;;-1:-1:-1;;;6924:12:107;;3563:3596:97;;6924:12:107;6741:151;6790:102;837:15:75;;;6790:88:107;837:15:75;6843:34:107;6821:20;819:34:75;837:15;819:34;:::i;6821:20:107:-;6843:34;;;6790:88;;:::i;:102::-;;6741:151;;;;6304:99;6357:35;;;;;;;:::i;:::-;6304:99;;;;3563:3596:97;;;;;;-1:-1:-1;;3563:3596:97;;;;;;;;-1:-1:-1;;;;;3563:3596:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;3563:3596:97;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:97;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4649:553::-;3563:3596;;-1:-1:-1;;;4939:105:97;;-1:-1:-1;;;;;3563:3596:97;;;4939:105;;;3563:3596;;;;;;;;;;;;;;;;;;;;;;;;;4649:553;4939:105;3563:3596;;;;;4939:105;3563:3596;4956:18;-1:-1:-1;;;;;3563:3596:97;4939:105;;;;;;;;;;;4649:553;3563:3596;;;5055:141;;4649:553;:::o;5055:141::-;5112:73;3563:3596;;;5112:73;3563:3596;;;;;;;:::i;:::-;;;;;5112:73;;;3563:3596;5112:73;;;:::i;4939:105::-;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;6788:369;;;6975:44;6788:369;3563:3596;6975:44;;:::i;:::-;3563:3596;;7030:121;;6788:369;:::o;1876:205:107:-;-1:-1:-1;3563:3596:97;;;2016:9:107;3563:3596:97;;;;;-1:-1:-1;;;;;3563:3596:97;2016:56:107;;1876:205;;2016:56;:::i;:::-;3563:3596:97;1876:205:107;:::o;3563:3596:97:-;;;;;;;;;;;;;;;;;-1:-1:-1;;3563:3596:97;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;6172:610::-;6466:55;6172:610;;;;6370:51;3563:3596;6370:51;;;;:::i;:::-;837:15:75;6500:20:97;819:34:75;837:15;819:34;:::i;6466:55:97:-;3563:3596;;6536:30;;;:64;;;6172:610;6532:244;;6172:610;;:::o;6532:244::-;3563:3596;;;;;;6623:142;3563:3596;;;;;;;:::i;:::-;;;6651:100;;;3563:3596;;;;;6623:142;;;6651:100;6623:142;;;3563:3596;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;3563:3596:97;;;;;;:::i;6536:64::-;3563:3596;;;6570:30;;6536:64;;3563:3596;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:97;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3317:13:107;3563:3596:97;-1:-1:-1;;;3563:3596:97;;;;;;;;;;3317:13:107;3563:3596:97;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3563:3596:97;-1:-1:-1;;;;;3563:3596:97;;;;;;;;;;;;;;;;3317:13:107;;3563:3596:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;3563:3596:97;;;;;;-1:-1:-1;;;3563:3596:97;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;5208:958::-;;;;;5643:105;3563:3596;5435:51;;;;;;:::i;:::-;837:15:75;5643:105:97;5531:55;5565:20;819:34:75;837:15;819:34;:::i;5565:20:97:-;5531:55;;;:::i;:::-;3563:3596;;-1:-1:-1;;;5643:105:97;;-1:-1:-1;;;;;3563:3596:97;;;5643:105;;;3563:3596;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5643:105;;3563:3596;5660:18;-1:-1:-1;;;;;3563:3596:97;5643:105;;;;;;;;;;;5208:958;3563:3596;;;5763:30;;;:64;;;5208:958;5763:98;;;;5208:958;5759:401;;5208:958;;;:::o;5759:401::-;5884:265;3563:3596;;;;5884:265;3563:3596;;;;:::i;:::-;;;;5912:223;;;3563:3596;;5912:223;;3563:3596;;;5884:265;;;5912:223;5884:265;;;:::i;5763:98::-;3563:3596;;;5831:30;;5763:98;;:64;3563:3596;;;5797:30;;5763:64;;5643:105;;;;;;;;;;;;;;:::i;:::-;;;;;3563:3596;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;3149:1:99;3563:3596:97;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;3563:3596:97;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;4209:434::-;;;-1:-1:-1;4307:12:97;3563:3596;;;;;4435:78;;;;;;;;;;;;;3563:3596;;;;;;;4435:78;;;;;:::i;:::-;3563:3596;;716:88:95;;3563:3596:97;716:88:95;;;;;;;;;783:4;4435:78:97;716:88:95;;3563:3596:97;;;;;;;;;;;:::i;:::-;716:88:95;3563:3596:97;716:88:95;3563:3596:97;;716:88:95;;;;;;;;:::i;:::-;698:107;;;;;857:45;698:107;;:::i;:::-;3563:3596:97;;;;857:45:95;;;;;;:::i;:::-;916:8;;912:175;;3563:3596:97;;;4361:204;3563:3596;;4361:204;;;;;;:::i;:::-;4576:61;;;;4209:434;;;:::o;4576:61::-;4609:17;3563:3596;;;;4609:17;3563:3596;;4609:17;;;;;3563:3596;;;;;;;;;;;;4609:17;;;;;;;;;:::i;912:175:95:-;3563:3596:97;;;;944:22:95;;;940:36;;990:87;;2505:267:105;-1:-1:-1;3563:3596:97;;;2692:16:105;3563:3596:97;;;;;;;;-1:-1:-1;;;;;3563:3596:97;;;;;;;;;2692:73:105;;2505:267;;2692:73;:::i;3563:3596:97:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:97;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:97;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;3563:3596:97;;-1:-1:-1;3563:3596:97;;;-1:-1:-1;3563:3596:97;:::o;10580:184:99:-;10689:20;;;:::i;:::-;-1:-1:-1;;;;;3563:3596:97;;10726:7:99;3563:3596:97;;10736:12:99;:17;:12;;:17;:::i;:::-;3563:3596:97;;;;;;10580:184:99;:::o;10726:31::-;;;10689:11;10580:184;:::o;3563:3596:97:-;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;3563:3596:97;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;1818:604:99:-;;3563:3596:97;;1946:17:99;1942:83;;3563:3596:97;2049:27:99;3563:3596:97;2049:27:99;3563:3596:97;;2049:27:99;;;;;;:::i;:::-;2120:14;;;;;:::i;:::-;3563:3596:97;;;;;;;;;;;;;;;;2148:22:99;;;2144:77;;2235:21;-1:-1:-1;2235:84:99;;;;1818:604;2231:139;;;;1425:34;;;;:::i;2231:139::-;-1:-1:-1;;2049:27:99;2342:17;3563:3596:97;-1:-1:-1;;;;;3563:3596:97;;:::o;2235:84:99:-;3563:3596:97;;;2269:16:99;3563:3596:97;;2269:16:99;:::i;:::-;3563:3596:97;;;2261:24:99;:57;;;;;2235:84;;;;;;;2261:57;2289:29;2298:8;;;2289:18;2298:8;2289:23;2298:8;;:::i;:::-;2289:18;;:::i;:::-;3563:3596:97;;;;;2289:29:99;;2261:57;;;;2144:77;-1:-1:-1;;;;2049:27:99;2193:17;;;;3563:3596:97;-1:-1:-1;;;;;3563:3596:97;;-1:-1:-1;3563:3596:97;:::o;1942:83:99:-;1425:34;;;;:::i;3563:3596:97:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;3563:3596:97;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;6491:564:105:-;6614:34;6491:564;6614:34;;;;:::i;:::-;3563:3596:97;;-1:-1:-1;;;6664:41:105;;-1:-1:-1;;;;;3563:3596:97;;;6664:41:105;;;3563:3596:97;;;;;6664:41:105;;;3563:3596:97;;;6674:13:105;3563:3596:97;;6664:41:105;;;;;;;-1:-1:-1;6664:41:105;;;6491:564;6663:42;;6659:90;;2684:111:30;6850:27:105;6664:41;2684:111:30;;;:::i;:::-;-1:-1:-1;3563:3596:97;;-1:-1:-1;;;;;;3563:3596:97;-1:-1:-1;;;;;3563:3596:97;;;;;6850:27:105;;:::i;:::-;3563:3596:97;;;;;;;;;;6892:23:105;;;;;;;;;-1:-1:-1;6892:23:105;;;6491:564;3563:3596:97;;;6892:37:105;:64;;;6491:564;6888:112;;3563:3596:97;7010:38:105;;3563:3596:97;;-1:-1:-1;3563:3596:97;;-1:-1:-1;;;;3563:3596:97;;;;;;-1:-1:-1;;;3563:3596:97;;;;;;;;6888:112:105;3563:3596:97;;-1:-1:-1;;;6979:10:105;;6664:41;;6979:10;6892:64;-1:-1:-1;3563:3596:97;;;;6892:64:105;;:23;;;;;;-1:-1:-1;6892:23:105;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;6659:90;3563:3596:97;;-1:-1:-1;;;6728:10:105;;6664:41;;6728:10;6664:41;;;;;;;;;;;;;;:::i;:::-;;;;3470:384:30;-1:-1:-1;;;;;;;;;;;1991:1:30;3563:3596:97;;3670:20:30;3666:88;;1991:1;3563:3596:97;;3470:384:30:o;3666:88::-;3563:3596:97;;-1:-1:-1;;;3713:30:30;;;;;4451:257:105;3563:3596:97;;-1:-1:-1;;;4546:86:105;;467:2:101;3563:3596:97;;;;4546:86:105;;;3563:3596:97;-1:-1:-1;;;;;4546:86:105;3563:3596:97;;;4572:26:105;3563:3596:97;;4546:86:105;;;;;;;-1:-1:-1;4546:86:105;;;4451:257;4636:10;;3563:3596:97;;4546:100:105;4542:160;;4451:257::o;4542:160::-;3563:3596:97;;-1:-1:-1;;;4669:22:105;;4546:86;;4669:22;4546:86;;;;;;;;;;;;;;;:::i;:::-;;;;;3563:3596:97;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;2666:855:99:-;;3563:3596:97;;2880:15:99;2838:11;2905:18;2938:7;2944:1;2938:7;;2934:241;;2666:855;3199:60;;;;;:::i;:::-;3274:8;;;3270:62;;3563:3596:97;3430:7:99;;;;:::i;:::-;13267:109;2838:11;13267:109;;2838:11;13267:109;;3563:3596:97;:::i;:::-;;3498:15:99;3505:7;3563:3596:97;13267:109:99;3563:3596:97;;;;;;;;3479:17:99;;3563:3596:97;-1:-1:-1;;;;;3563:3596:97;;;;3505:7:99;;:::i;:::-;3563:3596:97;;;;3498:15:99;3436:1;;3448:66;;2666:855::o;3270:62::-;3298:23;;2838:11;3298:23;2838:11;3298:23;2838:11;3298:23;2838:11;3298:23;:::o;2934:241::-;2981:14;;;;;:::i;:::-;3563:3596:97;;;;;;;3199:60:99;13267:109;;2838:11;13267:109;3563:3596:97;13267:109:99;;;2838:11;13267:109;;3563:3596:97;;;;;3013:55:99;3009:156;3563:3596:97;;;3088:10:99;3009:156;2934:241;;3009:156;3143:7;;;;;;:::i;:::-;3009:156;2934:241;;5905:168;;6006:20;;;:::i;:::-;3563:3596:97;;;;;;;-1:-1:-1;;3563:3596:97;;;;;;:::i;:::-;;;;;;;5905:168:99:o;3563:3596:97:-;;;;;;;;;;;;14296:213:71;3563:3596:97;14374:24:71;;;;14370:103;;3563:3596:97;14296:213:71;:::o;14370:103::-;3563:3596:97;;;;14421:41:71;;;;;;14452:2;14421:41;;;3563:3596:97;;;;;14421:41:71;3563:3596:97;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;3563:3596:97;;;;;;;;:::i;7558:604:99:-;;3563:3596:97;;7686:17:99;7682:83;;3563:3596:97;7789:27:99;3563:3596:97;7789:27:99;3563:3596:97;;7789:27:99;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;3563:3596:97;;;;;;;;;;;;;;;;7888:22:99;;;7884:77;;7975:21;-1:-1:-1;7975:84:99;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;3563:3596:97;8075:24:99;:::o;7975:84::-;3563:3596:97;;;8009:16:99;3563:3596:97;;8009:16:99;:::i;:::-;3563:3596:97;;;8001:24:99;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:29::-;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;3563:3596:97;7926:24:99;:::o;7682:83::-;7726:28;;;;:::i;3563:3596:97:-;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:97;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;3563:3596:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3323:1122:105:-;;3563:3596:97;;:::i;:::-;;;;3608:16:105;3604:109;;3323:1122;837:15:75;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;3563:3596:97;;;;3778:27:105;;:13;;-1:-1:-1;;;;;3563:3596:97;3778:13:105;3563:3596:97;3778:27:105;3563:3596:97;;;;;;;3778:29:105;;;;;;;;;;;;;;;3740:67;3778:29;3759:48;3778:29;-1:-1:-1;3778:29:105;;;3759:48;;:::i;3740:67::-;3563:3596:97;;;3740:67:105;;;:107;;;;;3323:1122;3740:197;;;;3323:1122;3723:263;;;3563:3596:97;3778:29:105;3563:3596:97;;;;;;;;;;4025:25:105;;;;;;;;;4010:143;4025:25;;;-1:-1:-1;4025:25:105;;;3323:1122;4113:30;;;3563:3596:97;;;;;;;;;;;4010:143:105;;;;;3778:29;4010:143;;;:::i;:::-;;;-1:-1:-1;;;;;3563:3596:97;4010:143:105;;;;;;;4181:257;4010:143;-1:-1:-1;4010:143:105;;;3323:1122;3996:157;;4293:102;3996:157;;4233:162;3996:157;4207:231;3996:157;;2936:28;:47;:38;:28;;;3563:3596:97;;2936:16:105;3563:3596:97;;;;;;;2936:28:105;3563:3596:97;;;;;;;;;;;;;;;;2936:47:105;4351:43;;;4293:102;;:::i;:::-;4233:162;;:::i;:::-;3463:5:70;;;;3066;;3563:3596:97;3060:42:70;3371:111;;4181:257:105;3323:1122;:::o;4010:143::-;4233:162;4010:143;;;4207:231;4010:143;;;;4293:102;4010:143;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;4025:25;;;;;;;;;;;;;;:::i;:::-;;;;3723:263;3962:13;;;;;;-1:-1:-1;3962:13:105;-1:-1:-1;3962:13:105;:::o;3740:197::-;3886:41;;3867:70;3886:51;;:41;;;3563:3596:97;;3886:29:105;3563:3596:97;;;;;;;3886:51:105;3563:3596:97;;;;;3867:70:105;-1:-1:-1;3740:197:105;;;:107;837:15:75;;3811:36:105;819:34:75;837:15;819:34;:::i;3811:36:105:-;;;;3740:107;;;3778:29;;;;;;;;;;;;;;;:::i;3604:109::-;3662:40;;;;;;;;;;;;:::i;:::-;3604:109;;;;4714:335;;;;3563:3596:97;-1:-1:-1;3563:3596:97;4876:29:105;3563:3596:97;;;;4876:51:105;3563:3596:97;;-1:-1:-1;3563:3596:97;;;;;;;;;;;;;;;;;4876:51:105;3563:3596:97;;;;;-1:-1:-1;4872:171:105;;4714:335;;;:::o;4872:171::-;4962:70;3563:3596:97;4962:51:105;3563:3596:97;-1:-1:-1;3563:3596:97;4876:29:105;3563:3596:97;;;-1:-1:-1;3563:3596:97;;;;;;;;;;;;;;;;;4962:51:105;3563:3596:97;;;;;;;;;;;;5055:221:105;;;3563:3596:97;-1:-1:-1;3563:3596:97;5160:16:105;3563:3596:97;;2936:47:105;:38;5160;3563:3596:97;;-1:-1:-1;3563:3596:97;;;;;;;;;;;;;;;;;5160:38:105;837:15:75;819:34;837:15;819:34;:::i;:::-;3563:3596:97;-1:-1:-1;3563:3596:97;5160:16:105;3563:3596:97;;;-1:-1:-1;3563:3596:97;;;;;;;;;;;;;;;;;2936:47:105;3563:3596:97;;;;;;;;6360:12:99;;;3563:3596:97;;;6360:24:99;6356:75;;5055:221:105;6474:30:99;;;:::i;:::-;3563:3596:97;;;;;6578:12:99;;;;:::i;:::-;;6604:24;;;5055:221:105;-1:-1:-1;6600:188:99;;;-1:-1:-1;;;;3563:3596:97;;;;;;;6644:29:99;:21;;;;:::i;:::-;:29;3563:3596:97;;;;;;;;;;;;;;;;;;;;;6600:188:99;6753:24;;8310:38:73;;-1:-1:-1;;;;;3563:3596:97;;;;;8310:38:73;:::i;:::-;6753:24:99;;;:::i;6604:::-;3563:3596:97;;;;;;6614:14:99;;-1:-1:-1;6604:24:99;;;6356:75;6400:20;;;:::i;:::-;6356:75;;3563:3596:97;;;;;;;;-1:-1:-1;;;;;3563:3596:97;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5282:431:105:-;;;;5487:25;;:23;:13;3563:3596:97;5494:5:105;3563:3596:97;;;;;;;;;5487:23:105;3563:3596:97;;-1:-1:-1;;;5487:25:105;;3563:3596:97;;;;;5487:25:105;;;;;;;5631:65;5487:25;5631:65;5487:25;5494:5;5487:25;;;5282:431;-1:-1:-1;;;;;;3563:3596:97;;;;:::i;:::-;-1:-1:-1;;;;;5677:4:105;3563:3596:97;;;5677:4:105;5487:25;5642:53;;3563:3596:97;;;5631:65:105;;;5487:25;5631:65;;;:::i;:::-;5472:234;;;;;5494:5;3563:3596:97;5472:234:105;3563:3596:97;;;;;;;;;;;;;;5472:234:105;;5487:25;5472:234;;;:::i;:::-;;;;;;;;;;;5282:431;:::o;5472:234::-;;;;;;:::i;:::-;;;:::i;5487:25::-;;;;;;;;;;;;;;:::i;:::-;;;;5719:137;3563:3596:97;5719:137:105;3563:3596:97;5802:47:105;5719:137;5809:5;3563:3596:97;;;;;;;;;;;;;;;;;;5802:47:105;;;;;3563:3596:97;;;;;;5802:47:105;;;;;;;;5719:137;:::o;5802:47::-;;;;;;;;;;;;;:::i;:::-;;5719:137::o;3563:3596:97:-;;;;;;;:::o;:::-;;;;;;;;;;;;5862:623:105;;;5988:12;3563:3596:97;;;;;;;5984:495:105;;5862:623;;;;;;:::o;5984:495::-;3563:3596:97;;-1:-1:-1;;;6033:22:105;;3563:3596:97;6033:22:105;;3563:3596:97;;6033:22:105;;3563:3596:97;;-1:-1:-1;;;;;3563:3596:97;6033:22:105;;;;;;;5988:12;6033:22;;;5984:495;-1:-1:-1;3563:3596:97;;-1:-1:-1;;;6033:22:105;6094:81;;;;;;;;3563:3596:97;;;;-1:-1:-1;;;;;3563:3596:97;;;;;;;;;;;;;;;;;;;;;;6094:81:105;3563:3596:97;;;;6094:81:105;;3563:3596:97;;6094:81:105;;;;;;:::i;:::-;3563:3596:97;6194:9:105;:55;6190:124;;5988:12;6328:141;;;;;;1271:7;6328:141;;5984:495;;;;;;;6190:124;3563:3596:97;;-1:-1:-1;;;6276:23:105;;6033:22;;6276:23;6033:22;6094:81;6033:22;;;6094:81;6033:22;;;;;;;;;;;:::i;:::-;;;;;10310:206:73;3563:3596:97;;10446:8:73;;;:63;;10405:17;10310:206;:::o;10446:63::-;3563:3596:97;;;;;;;;;;10405:17:73;13267:109:99;;10405:17:73;13267:109:99;;;3563:3596:97;;;10310:206:73;:::o;3563:3596:97:-;;;;;;;:::i;:::-;-1:-1:-1;3563:3596:97;;;;;;;:::o;5573:258:99:-;3563:3596:97;5573:258:99;11452:22:73;5573:258:99;3563:3596:97;;:::i;:::-;;;;:::i;:::-;;11452:22:73;:::i;:::-;3563:3596:97;;:::i;:::-;;;;;;5805:17:99;3563:3596:97;;;;;5805:17:99;;3563:3596:97;;;;;;;;:::i;:::-;;;5805:17:99;5759:65;;3563:3596:97;5573:258:99;:::o;6893:76:26:-;;;:::i;:::-;;;:::i;:::-;1949:1:30;-1:-1:-1;;;;;;;;;;;3563:3596:97;6893:76:26:o;3563:3596:97:-;;;;;;;:::i;:::-;-1:-1:-1;3563:3596:97;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;8763:604:107:-;;8969:30;8763:604;3563:3596:97;;:::i;:::-;;;;8905:30:107;;;;;;;;;;;;;:::i;:::-;3563:3596:97;;-1:-1:-1;;;8969:30:107;;3563:3596:97;;;;;;;;-1:-1:-1;;;;;3563:3596:97;8969:30:107;;;;;;;;;;;8763:604;9013:19;;;3563:3596:97;;;;;;;;;;;;;;;9013:36:107;;9009:95;;3563:3596:97;9118:29:107;;9150:1;3563:3596:97;;9118:33:107;9114:102;;9226:34;3563:3596:97;9271:54:107;3563:3596:97;;;;;;;;;;;8969:30:107;3563:3596:97;;;8969:30:107;3563:3596:97;;9226:34:107;3563:3596:97;9271:54:107;3563:3596:97;;9271:54:107;9343:17;8763:604;:::o;9114:102::-;3563:3596:97;;-1:-1:-1;;;9174:31:107;;8969:30;;9174:31;9009:95;3563:3596:97;;-1:-1:-1;;;9072:21:107;;8969:30;;9072:21;8969:30;;;;;;;;;;;;;;;:::i;:::-;;;;;18080:5181:70;18246:1;18241:6;;;18237:53;;18246:1;19217:14;-1:-1:-1;;;19278:16:70;;;19274:92;;18080:5181;22827:18;22717;22607;22498;22387;22278;23216:28;19383:15;19898:6;19383:15;-1:-1:-1;;;23237:6:70;19383:15;;;19379:90;;18080:5181;19493:7;19486:15;;;19482:90;;18080:5181;19596:7;19589:15;;;19585:89;;18080:5181;19698:6;19691:14;;;19687:87;;18080:5181;19798:6;19791:14;;;19787:87;;18080:5181;19891:14;;19887:61;;18080:5181;20374:1;3563:3596:97;18246:1:70;3563:3596:97;22284:6:70;;;;:::i;:::-;3563:3596:97;;;;;22278:18:70;22393:6;;;;:::i;22387:18::-;22504:6;;;;:::i;22498:18::-;22613:6;;;;:::i;22607:18::-;22723:6;;;;:::i;22717:18::-;22833:6;;;;:::i;22827:18::-;23237:6;;;:::i;:::-;23232:11;;;3563:3596:97;23216:28:70;3563:3596:97;;18080:5181:70;:::o;19887:61::-;18246:1;3563:3596:97;19887:61:70;;19787:87;3563:3596:97;;;;;19787:87:70;;;19687;3563:3596:97;;;;;19687:87:70;;;19585:89;3563:3596:97;;;;;19585:89:70;;;19482:90;3563:3596:97;;;;;19482:90:70;;;19379;3563:3596:97;;;;;19379:90:70;;;19274:92;-1:-1:-1;;;;3563:3596:97;-1:-1:-1;3563:3596:97;;;;19274:92:70;;12497:447:99;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;3721:5:70;;;;;;3563:3596:97;;3731:5:70;;;3563:3596:97;;;;;;;;;13267:109:99;-1:-1:-1;13267:109:99;3563:3596:97;13267:109:99;;;-1:-1:-1;13267:109:99;;3563:3596:97;;;;;-1:-1:-1;12771:136:99;3563:3596:97;;;12830:10:99;;12771:136;;12687:230;;;;12771:136;3563:3596:97;;;;;;;;;;;12771:136:99;;;10695:389:73;3563:3596:97;;10871:8:73;;;10895:20;;10833:17;10895:20;10833:17;10895:20;10833:17;10895:20;:::o;10867:211::-;3563:3596:97;;;;;;;;;;10833:17:73;13267:109:99;;10833:17:73;13267:109:99;;;3563:3596:97;11014:1:73;3563:3596:97;;;;;;;11030:37:73;:::o;6999:207:99:-;;7117:34;6999:207;7117:34;;:::i;11486:272::-;;3563:3596:97;11452:22:73;11718:31:99;11486:272;3563:3596:97;;:::i;:::-;;;;:::i;:::-;;11452:22:73;;:::i;3563:3596:97:-;;11718:12:99;3563:3596:97;;;;;11731:17:99;3563:3596:97;;;;;11731:17:99;;3563:3596:97;;11718:12:99;;:31;:::i;:::-;3563:3596:97;;;;;;;;;:::i;:::-;;;;;;11731:17:99;11672:79;;3563:3596:97;11486:272:99;:::o;3563:3596:97:-;;;-1:-1:-1;;;3563:3596:97;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;3563:3596:97;;;;;;;;;;;;;;;:::i;9584:606:73:-;;3563:3596:97;;9737:15:73;9702:17;9762:18;9795:7;9801:1;9795:7;;9791:234;;9584:606;10049:53;;;;;:::i;:::-;10120:8;;;:63;;9702:17;9584:606;:::o;10120:63::-;10168:7;;;:::i;:::-;13267:109:99;9702:17:73;13267:109:99;;9702:17:73;13267:109:99;;3563:3596:97;;;9584:606:73;:::o;9791:234::-;9838:14;;;;;:::i;:::-;3563:3596:97;;;;;;;10049:53:73;13267:109:99;;9702:17:73;13267:109:99;3563:3596:97;13267:109:99;;;9702:17:73;13267:109:99;;3563:3596:97;;;;;9870:48:73;9866:149;3563:3596:97;;;9938:10:73;9866:149;9791:234;;9866:149;9993:7;;;;;;:::i;:::-;9866:149;9791:234;;7084:141:26;3563:3596:97;-1:-1:-1;;;;;;;;;;;3563:3596:97;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;3563:3596:97;;-1:-1:-1;;;7191:17:26;;;;;3563:3596:97;;;-1:-1:-1;;;3563:3596:97;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;3563:3596:97;;;;;;;;;;;:::o;11657:922:73:-;3563:3596:97;;11657:922:73;;;11864:7;;;;11936;11916:28;11936:7;;:::i;:::-;11916:28;13267:109:99;;;;;;13089:293;;11916:28:73;3563:3596:97;;;;;;;;;;;;12103:13:73;;;12099:89;;12251:14;;;;;12285:19;;;;3563:3596:97;;;;;;;;;;;;;;;;;12285:19:73;3563:3596:97;;12423:25:73;;:::o;12247:163::-;3563:3596:97;;;12343:52:73;3563:3596:97;12353:41:73;3563:3596:97;;:::i;:::-;;;;;;;;12353:41:73;-1:-1:-1;;;;;3563:3596:97;;12353:41:73;;;3563:3596:97;12343:52:73;:::i;:::-;12247:163;;12099:89;3563:3596:97;;-1:-1:-1;;;12143:30:73;;;;;11860:713;3563:3596:97;;12479:52:73;3563:3596:97;12489:41:73;3563:3596:97;;:::i;12489:41:73:-;-1:-1:-1;;;;;3563:3596:97;;12489:41:73;;;3563:3596:97;12343:52:73;:::i;12479:::-;11870:1;12545:17;;:::o","linkReferences":{},"immutableReferences":{"60120":[{"start":1147,"length":32}],"60123":[{"start":5518,"length":32},{"start":11350,"length":32}],"64680":[{"start":2920,"length":32}],"65310":[{"start":2054,"length":32},{"start":6428,"length":32},{"start":7441,"length":32}],"67904":[{"start":744,"length":32},{"start":8898,"length":32}],"67907":[{"start":1079,"length":32},{"start":9292,"length":32}],"68637":[{"start":3194,"length":32},{"start":5604,"length":32}]}},"methodIdentifiers":{"BASE_SLASHER_HINTS()":"457821b7","BURNER_GAS_LIMIT()":"d5c24e1a","BURNER_RESERVE()":"2964f8dc","FACTORY()":"2dd31000","NETWORK_MIDDLEWARE_SERVICE()":"2c9d45b3","NETWORK_REGISTRY()":"c0cd7c3e","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","cumulativeSlash(bytes32,address)":"1a2be2c4","cumulativeSlashAt(bytes32,address,uint48,bytes)":"aa8e6489","executeSlash(uint256,bytes)":"b94c386e","executeSlashHints(address,bytes32,address,uint48)":"69f78920","initialize(bytes)":"439fab91","isBurnerHook()":"34d098ea","latestSlashedCaptureTimestamp(bytes32,address)":"267de1f3","requestSlash(bytes32,address,uint256,uint48,bytes)":"545ce389","requestSlashHints(address,address,bytes32,address,uint256,uint48)":"002a0875","resolver(bytes32,bytes)":"cd05b8a1","resolverAt(bytes32,uint48,bytes)":"31ce4dfe","resolverHint(address,bytes32,uint48)":"a4ef9b4f","resolverHintInternal(bytes32,uint48)":"8f82f931","resolverSetEpochsDelay()":"bc6eac5b","setResolver(uint96,address,bytes)":"9168f9d2","setResolverHints(address,bytes32,uint48)":"1dd5f600","slashRequests(uint256)":"9a896551","slashRequestsLength()":"8f42f9ab","slashableStake(bytes32,address,uint48,bytes)":"aab3595f","staticDelegateCall(address,bytes)":"9f86fd85","vault()":"fbfa77cf","vetoDuration()":"e054e08b","vetoSlash(uint256,bytes)":"f9268d18","vetoSlashHints(address,bytes32,uint48)":"5264679b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseSlasherHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBurnerGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientSlash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidResolverSetEpochsDelay\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVetoDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoResolver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetworkMiddleware\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotResolver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashPeriodEnded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashRequestCompleted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashRequestNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoPeriodEnded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoPeriodNotEnded\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"name\":\"ExecuteSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"vetoDeadline\",\"type\":\"uint48\"}],\"name\":\"RequestSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"SetResolver\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"VetoSlash\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_SLASHER_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_MIDDLEWARE_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"cumulativeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"cumulativeSlashAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"executeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"executeSlashHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isBurnerHook\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"latestSlashedCaptureTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"value\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"requestSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"requestSlashHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"resolver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"resolverAt\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"resolverHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"resolverHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolverSetEpochsDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"address\",\"name\":\"resolver_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"setResolver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"setResolverHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"slashRequests\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"vetoDeadline\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"completed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slashRequestsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slashableStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vetoDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"vetoSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"vetoSlashHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"ExecuteSlash(uint256,uint256)\":{\"params\":{\"slashIndex\":\"index of the slash request\",\"slashedAmount\":\"virtual amount of the collateral slashed\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RequestSlash(uint256,bytes32,address,uint256,uint48,uint48)\":{\"params\":{\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"operator that could be slashed (if the request is not vetoed)\",\"slashAmount\":\"maximum amount of the collateral to be slashed\",\"slashIndex\":\"index of the slash request\",\"subnetwork\":\"subnetwork that requested the slash\",\"vetoDeadline\":\"deadline for the resolver to veto the slash (exclusively)\"}},\"SetResolver(bytes32,address)\":{\"params\":{\"resolver\":\"address of the resolver\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"VetoSlash(uint256,address)\":{\"params\":{\"resolver\":\"address of the resolver that vetoed the slash\",\"slashIndex\":\"index of the slash request\"}}},\"kind\":\"dev\",\"methods\":{\"cumulativeSlash(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"cumulative slash amount\"}},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the cumulative slash amount until (inclusively)\"},\"returns\":{\"_0\":\"cumulative slash amount until the given timestamp (inclusively)\"}},\"executeSlash(uint256,bytes)\":{\"details\":\"Only a network middleware can call this function.\",\"params\":{\"hints\":\"hints for checkpoints' indexes\",\"slashIndex\":\"index of the slash request\"},\"returns\":{\"slashedAmount\":\"virtual amount of the collateral slashed\"}},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"requestSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only a network middleware can call this function.\",\"params\":{\"amount\":\"maximum amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"hints\":\"hints for checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"slashIndex\":\"index of the slash request\"}},\"resolver(bytes32,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"address of the resolver\"}},\"resolverAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"timestamp to get the resolver at\"},\"returns\":{\"_0\":\"address of the resolver\"}},\"slashRequestsLength()\":{\"returns\":{\"_0\":\"total number of slash requests\"}},\"slashableStake(bytes32,address,uint48,bytes)\":{\"params\":{\"captureTimestamp\":\"time point to get the stake amount at\",\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"amount\":\"slashable amount of the stake\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"vetoSlash(uint256,bytes)\":{\"details\":\"Only a resolver can call this function.\",\"params\":{\"hints\":\"hints for checkpoints' indexes\",\"slashIndex\":\"index of the slash request\"}}},\"version\":1},\"userdoc\":{\"events\":{\"ExecuteSlash(uint256,uint256)\":{\"notice\":\"Emitted when a slash request is executed.\"},\"RequestSlash(uint256,bytes32,address,uint256,uint48,uint48)\":{\"notice\":\"Emitted when a slash request is created.\"},\"SetResolver(bytes32,address)\":{\"notice\":\"Emitted when a resolver is set.\"},\"VetoSlash(uint256,address)\":{\"notice\":\"Emitted when a slash request is vetoed.\"}},\"kind\":\"user\",\"methods\":{\"BURNER_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the burner.\"},\"BURNER_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the burner's execution.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"NETWORK_MIDDLEWARE_SERVICE()\":{\"notice\":\"Get the network middleware service's address.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"cumulativeSlash(bytes32,address)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork.\"},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint.\"},\"executeSlash(uint256,bytes)\":{\"notice\":\"Execute a slash with a given slash index using hints.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"isBurnerHook()\":{\"notice\":\"Get if the burner is needed to be called on a slashing.\"},\"latestSlashedCaptureTimestamp(bytes32,address)\":{\"notice\":\"Get the latest capture timestamp that was slashed on a subnetwork.\"},\"requestSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Request a slash using a subnetwork for a particular operator by a given amount using hints.\"},\"resolver(bytes32,bytes)\":{\"notice\":\"Get a resolver for a given subnetwork using a hint.\"},\"resolverAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a resolver for a given subnetwork at a particular timestamp using a hint.\"},\"resolverSetEpochsDelay()\":{\"notice\":\"Get a delay for networks in epochs to update a resolver.\"},\"slashRequests(uint256)\":{\"notice\":\"Get a particular slash request.\"},\"slashRequestsLength()\":{\"notice\":\"Get a total number of slash requests.\"},\"slashableStake(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a slashable amount of a stake got at a given capture timestamp using hints.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"},\"vetoDuration()\":{\"notice\":\"Get a duration during which resolvers can veto slash requests.\"},\"vetoSlash(uint256,bytes)\":{\"notice\":\"Veto a slash with a given slash index using hints.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/SlasherHints.sol\":\"VetoSlasherHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf\",\"dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x4aaaf1c0737dd16e81f0d2b9833c549747a5ede6873bf1444bc72aa572d03e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eada27d7668eebaea16c3b890aa1b38ffc53965292e26c96f7c44834623f4710\",\"dweb:/ipfs/QmVSWuLtxyCqNbLyY89ptxkvsk4CLLKDQYigEne5Qj8k1L\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a\",\"dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c\",\"dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e\",\"dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0xbdc3bb48ccedb818cd75a6d74a16df55a822e9f6d3cc54c59f576f10aab67b5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2284f25f2478f419d7781573b17a89d0e7c5589a865d55e2d6ed5163aee23aa8\",\"dweb:/ipfs/QmNsr2625APBQiNKpYnX5VcSnYgfUHR9Uzzp9pRXjoDqK7\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44\",\"dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0xd71e9102e99a25ee8b5435779f011a24558f56074aa2b16c18b623b57754ae97\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://29db5552e55dab51bea1ae40ba00ca674cb50fcb10997999a72a94527b6eb591\",\"dweb:/ipfs/QmQrYyTPx73ubNxMhYWJCkprCVFVtuTFcKaabYiKTe71tY\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/SlasherHints.sol\":{\"keccak256\":\"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595\",\"dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/slasher/BaseSlasher.sol\":{\"keccak256\":\"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06\",\"dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF\"]},\"src/contracts/slasher/Slasher.sol\":{\"keccak256\":\"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61\",\"dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3\"]},\"src/contracts/slasher/VetoSlasher.sol\":{\"keccak256\":\"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429\",\"dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/slasher/IBurner.sol\":{\"keccak256\":\"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447\",\"dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW\"]},\"src/interfaces/slasher/ISlasher.sol\":{\"keccak256\":\"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1\",\"dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ\"]},\"src/interfaces/slasher/IVetoSlasher.sol\":{\"keccak256\":\"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508\",\"dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseSlasherHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientBurnerGas"},{"inputs":[],"type":"error","name":"InsufficientSlash"},{"inputs":[],"type":"error","name":"InvalidCaptureTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidResolverSetEpochsDelay"},{"inputs":[],"type":"error","name":"InvalidVetoDuration"},{"inputs":[],"type":"error","name":"NoBurner"},{"inputs":[],"type":"error","name":"NoResolver"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotNetworkMiddleware"},{"inputs":[],"type":"error","name":"NotResolver"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"SlashPeriodEnded"},{"inputs":[],"type":"error","name":"SlashRequestCompleted"},{"inputs":[],"type":"error","name":"SlashRequestNotExist"},{"inputs":[],"type":"error","name":"VetoPeriodEnded"},{"inputs":[],"type":"error","name":"VetoPeriodNotEnded"},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256","indexed":true},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false}],"type":"event","name":"ExecuteSlash","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256","indexed":true},{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"slashAmount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false},{"internalType":"uint48","name":"vetoDeadline","type":"uint48","indexed":false}],"type":"event","name":"RequestSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"resolver","type":"address","indexed":false}],"type":"event","name":"SetResolver","anonymous":false},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256","indexed":true},{"internalType":"address","name":"resolver","type":"address","indexed":true}],"type":"event","name":"VetoSlash","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_SLASHER_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"cumulativeSlash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"cumulativeSlashAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"executeSlash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"executeSlashHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isBurnerHook","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"latestSlashedCaptureTimestamp","outputs":[{"internalType":"uint48","name":"value","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"requestSlash","outputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"requestSlashHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"resolver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"resolverAt","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"resolverHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"resolverHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"resolverSetEpochsDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"address","name":"resolver_","type":"address"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setResolver"},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"setResolverHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"slashRequests","outputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"uint48","name":"vetoDeadline","type":"uint48"},{"internalType":"bool","name":"completed","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"slashRequestsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"slashableStake","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vetoDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"vetoSlash"},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"vetoSlashHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]}],"devdoc":{"kind":"dev","methods":{"cumulativeSlash(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"cumulative slash amount"}},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the cumulative slash amount until (inclusively)"},"returns":{"_0":"cumulative slash amount until the given timestamp (inclusively)"}},"executeSlash(uint256,bytes)":{"details":"Only a network middleware can call this function.","params":{"hints":"hints for checkpoints' indexes","slashIndex":"index of the slash request"},"returns":{"slashedAmount":"virtual amount of the collateral slashed"}},"initialize(bytes)":{"params":{"data":"some data to use"}},"requestSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only a network middleware can call this function.","params":{"amount":"maximum amount of the collateral to be slashed","captureTimestamp":"time point when the stake was captured","hints":"hints for checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"slashIndex":"index of the slash request"}},"resolver(bytes32,bytes)":{"params":{"hint":"hint for the checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"address of the resolver"}},"resolverAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"timestamp to get the resolver at"},"returns":{"_0":"address of the resolver"}},"slashRequestsLength()":{"returns":{"_0":"total number of slash requests"}},"slashableStake(bytes32,address,uint48,bytes)":{"params":{"captureTimestamp":"time point to get the stake amount at","hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"amount":"slashable amount of the stake"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"vetoSlash(uint256,bytes)":{"details":"Only a resolver can call this function.","params":{"hints":"hints for checkpoints' indexes","slashIndex":"index of the slash request"}}},"version":1},"userdoc":{"kind":"user","methods":{"BURNER_GAS_LIMIT()":{"notice":"Get a gas limit for the burner."},"BURNER_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the burner's execution."},"FACTORY()":{"notice":"Get the factory's address."},"NETWORK_MIDDLEWARE_SERVICE()":{"notice":"Get the network middleware service's address."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"cumulativeSlash(bytes32,address)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork."},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint."},"executeSlash(uint256,bytes)":{"notice":"Execute a slash with a given slash index using hints."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"isBurnerHook()":{"notice":"Get if the burner is needed to be called on a slashing."},"latestSlashedCaptureTimestamp(bytes32,address)":{"notice":"Get the latest capture timestamp that was slashed on a subnetwork."},"requestSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Request a slash using a subnetwork for a particular operator by a given amount using hints."},"resolver(bytes32,bytes)":{"notice":"Get a resolver for a given subnetwork using a hint."},"resolverAt(bytes32,uint48,bytes)":{"notice":"Get a resolver for a given subnetwork at a particular timestamp using a hint."},"resolverSetEpochsDelay()":{"notice":"Get a delay for networks in epochs to update a resolver."},"slashRequests(uint256)":{"notice":"Get a particular slash request."},"slashRequestsLength()":{"notice":"Get a total number of slash requests."},"slashableStake(bytes32,address,uint48,bytes)":{"notice":"Get a slashable amount of a stake got at a given capture timestamp using hints."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."},"vetoDuration()":{"notice":"Get a duration during which resolvers can veto slash requests."},"vetoSlash(uint256,bytes)":{"notice":"Veto a slash with a given slash index using hints."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/SlasherHints.sol":"VetoSlasherHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866","urls":["bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf","dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab","urls":["bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89","dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606","urls":["bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1","dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x4aaaf1c0737dd16e81f0d2b9833c549747a5ede6873bf1444bc72aa572d03e98","urls":["bzz-raw://eada27d7668eebaea16c3b890aa1b38ffc53965292e26c96f7c44834623f4710","dweb:/ipfs/QmVSWuLtxyCqNbLyY89ptxkvsk4CLLKDQYigEne5Qj8k1L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol":{"keccak256":"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549","urls":["bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a","dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed","urls":["bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0","dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d","urls":["bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c","dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575","urls":["bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e","dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0xbdc3bb48ccedb818cd75a6d74a16df55a822e9f6d3cc54c59f576f10aab67b5f","urls":["bzz-raw://2284f25f2478f419d7781573b17a89d0e7c5589a865d55e2d6ed5163aee23aa8","dweb:/ipfs/QmNsr2625APBQiNKpYnX5VcSnYgfUHR9Uzzp9pRXjoDqK7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f","urls":["bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44","dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0xd71e9102e99a25ee8b5435779f011a24558f56074aa2b16c18b623b57754ae97","urls":["bzz-raw://29db5552e55dab51bea1ae40ba00ca674cb50fcb10997999a72a94527b6eb591","dweb:/ipfs/QmQrYyTPx73ubNxMhYWJCkprCVFVtuTFcKaabYiKTe71tY"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/SlasherHints.sol":{"keccak256":"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f","urls":["bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595","dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/slasher/BaseSlasher.sol":{"keccak256":"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6","urls":["bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06","dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF"],"license":"BUSL-1.1"},"src/contracts/slasher/Slasher.sol":{"keccak256":"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f","urls":["bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61","dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3"],"license":"BUSL-1.1"},"src/contracts/slasher/VetoSlasher.sol":{"keccak256":"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897","urls":["bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429","dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/slasher/IBurner.sol":{"keccak256":"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b","urls":["bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447","dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW"],"license":"MIT"},"src/interfaces/slasher/ISlasher.sol":{"keccak256":"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625","urls":["bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1","dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ"],"license":"MIT"},"src/interfaces/slasher/IVetoSlasher.sol":{"keccak256":"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9","urls":["bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508","dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":97} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"baseSlasherHints","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BASE_SLASHER_HINTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"BURNER_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BURNER_RESERVE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"TYPE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"cumulativeSlashAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"executeSlash","inputs":[{"name":"slashIndex","type":"uint256","internalType":"uint256"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"executeSlashHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isBurnerHook","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestSlashedCaptureTimestamp","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"requestSlash","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"slashIndex","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"requestSlashHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"msgSender","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"resolver","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"resolverAt","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"resolverHint","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"resolverHintInternal","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"resolverSetEpochsDelay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"setResolver","inputs":[{"name":"identifier","type":"uint96","internalType":"uint96"},{"name":"resolver_","type":"address","internalType":"address"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setResolverHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"slashRequests","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"vetoDeadline","type":"uint48","internalType":"uint48"},{"name":"completed","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"slashRequestsLength","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slashableStake","inputs":[{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"operator","type":"address","internalType":"address"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"vetoDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"vetoSlash","inputs":[{"name":"slashIndex","type":"uint256","internalType":"uint256"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vetoSlashHints","inputs":[{"name":"slasher","type":"address","internalType":"address"},{"name":"subnetwork","type":"bytes32","internalType":"bytes32"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"event","name":"ExecuteSlash","inputs":[{"name":"slashIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"RequestSlash","inputs":[{"name":"slashIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"slashAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"vetoDeadline","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"SetResolver","inputs":[{"name":"subnetwork","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"resolver","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VetoSlash","inputs":[{"name":"slashIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"resolver","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientBurnerGas","inputs":[]},{"type":"error","name":"InsufficientSlash","inputs":[]},{"type":"error","name":"InvalidCaptureTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidResolverSetEpochsDelay","inputs":[]},{"type":"error","name":"InvalidVetoDuration","inputs":[]},{"type":"error","name":"NoBurner","inputs":[]},{"type":"error","name":"NoResolver","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotNetworkMiddleware","inputs":[]},{"type":"error","name":"NotResolver","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlashPeriodEnded","inputs":[]},{"type":"error","name":"SlashRequestCompleted","inputs":[]},{"type":"error","name":"SlashRequestNotExist","inputs":[]},{"type":"error","name":"VetoPeriodEnded","inputs":[]},{"type":"error","name":"VetoPeriodNotEnded","inputs":[]}],"bytecode":{"object":"0x6101603461017c576001600160401b0390601f61370238819003918201601f1916830191848311848410176101805780849260209460405283398101031261017c5751906001600160a01b038216820361017c57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c1661016a578080831603610125575b835f60a0525f60c0525f60e052610100905f8252610120905f82526101409081526040519161356d9384610195853960805184610b68015260a0518461047b015260c05184818161158e0152612c56015260e0518481816102e801526122c2015251838181610437015261244c015251828181610c7a01526115e40152518181816108060152818161191c0152611d110152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8080610091565b60405163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80622a087514610213578063103f29071461020e5780631a2be2c4146102095780631dd5f60014610204578063267de1f3146101ff5780632964f8dc146101fa5780632c9d45b3146101f55780632dd31000146101f057806331ce4dfe146101eb57806334d098ea146101e6578063439fab91146101e1578063457821b7146101dc5780635264679b146101d7578063545ce389146101d257806369f78920146101cd5780638f42f9ab146101c85780638f82f931146101c35780639168f9d2146101be5780639a896551146101b95780639f86fd85146101b4578063a4ef9b4f146101af578063aa8e6489146101aa578063aab3595f146101a5578063b94c386e146101a0578063bb24fe8a1461019b578063bc6eac5b14610196578063c0cd7c3e14610191578063cd05b8a11461018c578063d5c24e1a14610187578063e054e08b14610182578063f9268d181461017d5763fbfa77cf14610178575f80fd5b61181b565b6116ad565b611688565b61166b565b611613565b6115cf565b6115b2565b61156f565b61121d565b6111c5565b611187565b611124565b611090565b611005565b610bda565b610b49565b610b2c565b610ae7565b61084f565b610835565b6107f1565b6106b9565b610668565b6105ff565b610466565b610422565b610406565b6103b1565b610397565b610317565b6102d3565b610261565b6001600160a01b0381160361022957565b5f80fd5b65ffffffffffff81160361022957565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102295760c0366003190112610229576102c56102b160043561028481610218565b61028f602435610218565b60643561029b81610218565b60a435916102a88361022d565b604435906118d1565b60405191829160208352602083019061023d565b0390f35b5f91031261022957565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461022957604036600319011261022957602061036361035e60243561033c81610218565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6120da565b604051908152f35b60609060031901126102295760043561038381610218565b90602435906044356103948161022d565b90565b34610229576102c56102b16103ab3661036b565b916119a8565b3461022957604036600319011261022957602065ffffffffffff6103fc6024356103da81610218565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b34610229575f366003190112610229576020604051614e208152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176104d957604052565b6104aa565b604081019081106001600160401b038211176104d957604052565b606081019081106001600160401b038211176104d957604052565b6001600160401b0381116104d957604052565b608081019081106001600160401b038211176104d957604052565b90601f801991011681019081106001600160401b038211176104d957604052565b6040519060c082018281106001600160401b038211176104d957604052565b6040519061058f826104f9565b565b6040519061058f826104de565b6001600160401b0381116104d957601f01601f191660200190565b81601f82011215610229578035906105d08261059e565b926105de6040519485610542565b8284526020838301011161022957815f926020809301838601378301015290565b346102295760603660031901126102295760243561061c8161022d565b604435906001600160401b0382116102295761065f61064160209336906004016105b9565b6004355f90815260068552604090206001600160a01b039390612152565b16604051908152f35b34610229575f36600319011261022957602060ff5f5460a01c166040519015158152f35b9181601f84011215610229578235916001600160401b038311610229576020838186019501011161022957565b34610229576020366003190112610229576001600160401b03600435818111610229576106ea90369060040161068c565b5f80516020613518833981519152549260ff8460401c16159316801590816107e9575b60011490816107df575b1590816107d6575b506107c4575f80516020613518833981519152805467ffffffffffffffff1916600117905561075291836107a05761228b565b61075857005b5f80516020613518833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020613518833981519152805460ff60401b1916600160401b17905561228b565b60405163f92ee8a960e01b8152600490fd5b9050155f61071f565b303b159150610717565b84915061070d565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576102c56102b16108493661036b565b91611a2c565b346102295760a0366003190112610229576024356004803561087083610218565b604435926064356108808161022d565b6084356001600160401b0381116102295761089e903690860161068c565b94906108a86123f5565b6108b185612424565b6108b9611abe565b9580610ad1575b50506108cb426125f5565b906108e66108df825465ffffffffffff1690565b8093611b1f565b5f5490969061090b906108ff906001600160a01b031681565b6001600160a01b031690565b968260206040998a51928380926327f843b560e11b82525afa8015610acc5761094a9261093f925f92610a9b575b50611a14565b65ffffffffffff1690565b65ffffffffffff8516908110908115610a85575b50610a765761097090518486886127d0565b5096878082109118028088189714610a68576102c5610a41878988887f3cb7f4ff6cecf74cee0eb9ae3ebf8933fa60a53014cce52f96da72a78dba8464896109c08a6109bb426125f5565b611b1f565b92600354978894610a116109d2610563565b8881526001600160a01b0385166020820152808b018a905265ffffffffffff8616606082015265ffffffffffff831660808201525f60a0820152611b61565b885197885265ffffffffffff938416602089015290921660408701526001600160a01b0316949081906060820190565b0390a4610a5a60015f805160206134f883398151915255565b519081529081906020820190565b855163167f871760e31b8152fd5b508551631357ac9160e11b8152fd5b9050610a9361093f426125f5565b11155f61095e565b610abe91925060203d602011610ac5575b610ab68183610542565b810190611b39565b905f610939565b503d610aac565b6118ad565b610adf929650810190611ad1565b935f806108c0565b34610229576080366003190112610229576102c56102b1600435610b0a81610218565b604435610b1681610218565b60643591610b238361022d565b60243590611c97565b34610229575f366003190112610229576020600354604051908152f35b3461022957604036600319011261022957602435610b668161022d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610bc85763ffffffff610bb36040926004355f526006602052835f206124df565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102295760603660031901126102295760048035906bffffffffffffffffffffffff8216820361022957602435610c1181610218565b6044356001600160401b03811161022957610c2f903690840161068c565b90610c386123f5565b610c40611abe565b5081610fa0575b5050604080516302910f8b60e31b8152338185019081526001600160a01b0395929491602091829082908190830103818a7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610acc575f91610f73575b5015610f64575f54610ce5906001600160a01b0316936bffffffffffffffffffffffff166bffffffffffffffffffffffff193360601b161790565b95610d00610cfb885f52600660205260405f2090565b613223565b50949015610efa57610d1461093f426125f5565b65ffffffffffff9586161115610ec457610d3e610d39895f52600660205260405f2090565b6125b6565b505b610d636108ff6108ff6108ff610d5e8c5f52600660205260405f2090565b612e74565b91808716928303610dcf575b505050505050610db4907f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b7570925b516001600160a01b0390911681529081906020820190565b0390a2610dcd60015f805160206134f883398151915255565b005b610de68998959796985f52600660205260405f2090565b911692845163186a323160e21b815281818981885afa908115610acc575f91610ea7575b5081600554958751998a80926327f843b560e11b82525afa908115610acc5789610e6f610e81977f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b75709c610e7695610db49d610e7b985f92610e8a575b50501690611de6565b9116611e07565b6125f5565b9061341a565b82958495610d6f565b610ea09250803d10610ac557610ab68183610542565b5f80610e66565b610ebe9150823d8411610ac557610ab68183610542565b5f610e0a565b610ee26108ff6108ff6108ff610d5e8c5f52600660205260405f2090565b82871603610d4057865163a741a04560e01b81528490fd5b5093949385169250508115610f56575091610db491610f4f7f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b757094610f46875f52600660205260405f2090565b610e7b426125f5565b5050610d9c565b825163a741a04560e01b8152fd5b5083516323d53b9760e21b8152fd5b610f939150823d8411610f99575b610f8b8183610542565b810190611dd2565b5f610caa565b503d610f81565b610fac91810190611ad1565b505f80610c47565b634e487b7160e01b5f52603260045260245ffd5b6003548110156110005760035f5260021b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01905f90565b610fb4565b34610229576020366003190112610229576004356003548110156102295761102c90610fc8565b50805460018201546002830154600390930154604080519384526001600160a01b0390921660208401529082019290925265ffffffffffff808316606080840191909152603084901c90911660808301529190911c60ff16151560a082015260c090f35b34610229576040366003190112610229576004356110ad81610218565b6024356001600160401b038111610229575f916110cf8392369060040161068c565b90816040519283928337810184815203915af461111c6110ed611e14565b9161110e60405193849215156020840152604080840152606083019061023d565b03601f198101835282610542565b805190602001fd5b34610229576102c56102b16111383661036b565b91611e75565b906080600319830112610229576004359160243561115b81610218565b916044356111688161022d565b91606435906001600160401b03821161022957610394916004016105b9565b346102295760206103636111c061119d3661113e565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b61265b565b346102295760206111e16111d83661113e565b929190916127d0565b50604051908152f35b9060406003198301126102295760043591602435906001600160401b038211610229576112199160040161068c565b9091565b346102295761122b366111ea565b91906112356123f5565b61123d611f9a565b9280611559575b50506003548110156115475761125981610fc8565b509081549061126782612424565b6003830180549365ffffffffffff9384861660018060a01b0361128c895183856119bf565b1615158061151c575b80611503575b6114f1576112b1816112ac426125f5565b611a14565b5f546112c7906108ff906001600160a01b031681565b96600460206040998a51928380926327f843b560e11b82525afa8015610acc5782915f916114d2575b50169116116114c157600183018054909861131b93929188906001600160a01b0316910151926127d0565b90611330816002850154818082109118021890565b9687156114b05760601c60ff1661149f579261145861144b89946114236114108b9687876102c59f61141e8f9d8f9e61145e9f61137a86600160601b60ff60601b19825416179055565b8a54855461139c91906001600160a01b0316885465ffffffffffff1691612a06565b8a5485546113b59189916001600160a01b031690612a86565b8a5494546113d3906001600160a01b0316965465ffffffffffff1690565b976113dc610582565b9384526020840152818301525196879160208301919091604080606083019480518452602081015160208501520151910152565b03601f198101875286610542565b612bf2565b61143c611436855465ffffffffffff1690565b86612cfb565b5494546001600160a01b031690565b915465ffffffffffff1690565b92612d78565b81518381527f5cc28df3b54da9d06f805d87616ebf969c81310f2aa8369cb14ca50f815d411190602090a2610a5a60015f805160206134f883398151915255565b8551633428e90760e01b8152600490fd5b865163167f871760e31b8152600490fd5b8551639ea153eb60e01b8152600490fd5b6114eb915060203d602011610ac557610ab68183610542565b5f6112f0565b60405163b62b15c760e01b8152600490fd5b5061151061093f426125f5565b868860301c161161129b565b506115406108ff61153461152f426125f5565b6119f8565b60208b015190856119bf565b1515611295565b604051637822972360e11b8152600490fd5b611567929350810190611fb9565b905f80611244565b34610229575f3660031901126102295760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610229575f366003190112610229576020600554604051908152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576040366003190112610229576024356001600160401b0381116102295761165961164860209236906004016105b9565b611651426125f5565b6004356119bf565b6040516001600160a01b039091168152f35b34610229575f366003190112610229576020604051620249f08152f35b34610229575f36600319011261022957602065ffffffffffff60045416604051908152f35b34610229576116bb366111ea565b906116c46123f5565b6116cc612041565b9180611807575b5050600354821015611547576116e882610fc8565b506003815491019182549165ffffffffffff9160018060a01b036117108251858716856119bf565b169182159182156117de575b50506117cc5733036117ba5761173461093f426125f5565b908260301c1611156117a95760601c60ff1661179757805460ff60601b1916600160601b17905533907f7d3d269c851b72257a5194a401d151902e9be4347d555996dcff3ff86a077e925f80a3610dcd60015f805160206134f883398151915255565b604051633428e90760e01b8152600490fd5b60405162c457e560e81b8152600490fd5b604051635d154fe160e11b8152600490fd5b60405163dd1ebd9d60e01b8152600490fd5b6117ff9250906108ff9160206117f661152f426125f5565b910151916119bf565b155f8061171c565b611814925081019061205a565b5f806116d3565b34610229575f366003190112610229575f546040516001600160a01b039091168152602090f35b81601f82011215610229578051906118598261059e565b926118676040519485610542565b8284526020838301011161022957815f9260208093018386015e8301015290565b906020828203126102295781516001600160401b038111610229576103949201611842565b6040513d5f823e3d90fd5b604061039492602083525191602080820152019061023d565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252909116604482015265ffffffffffff9091166064820152606091905f81806084810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610acc575f91611986575b50805161195e5750565b61110e9192506103949060405190611975826104be565b8152604051928391602083016118b8565b6119a291503d805f833e61199a8183610542565b810190611888565b5f611954565b92916119b691606094611e75565b805161195e5750565b5f9081526006602052604090206001600160a01b03926119e0929091612152565b1690565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9081165f190191908211611a0f57565b6119e4565b65ffffffffffff9182169082160391908211611a0f57565b611a4d90939293611a406060958483611e75565b9261113861152f426125f5565b815115801590611ab4575b611a60575050565b611aa19293509061110e6103949260405192611a7b846104de565b83526020830190815260405194859360208086015251604080860152608085019061023d565b9051838203603f1901606085015261023d565b5080511515611a58565b60405190611acb826104be565b60608252565b906020828203126102295781356001600160401b03928382116102295701906020828203126102295760405192611b07846104be565b823590811161022957611b1a92016105b9565b815290565b91909165ffffffffffff80809416911601918211611a0f57565b9081602091031261022957516103948161022d565b634e487b7160e01b5f525f60045260245ffd5b600354600160401b8110156104d957806001611b809201600355610fc8565b919091611c43578051825560208101516001830180546001600160a01b0319166001600160a01b039290921691909117905561058f91611c299060a090600390604085015160028201550192611bf665ffffffffffff606083015116859065ffffffffffff1665ffffffffffff19825416179055565b60808101516bffffffffffff00000000000085549160301b16906bffffffffffff00000000000019161784550151151590565b815460ff60601b191690151560601b60ff60601b16179055565b611b4e565b906103949160208152611c67825160606020840152608083019061023d565b9060606040611c87602086015194601f199586868303018487015261023d565b940151928285030191015261023d565b919093925f606095611caa838287611e75565b94611d0d611cc4611cbd61152f426125f5565b8484611e75565b604051632751749360e11b81526001600160a01b039384166004820152602481019490945291909516604483015265ffffffffffff909316606482015292839081906084820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa918215610acc575f92611da9575b50825115801590611d9f575b8015611d95575b611d6557505050565b61110e939450906103949291611d79610582565b9283526020830152604082015260405192839160208301611c48565b5081511515611d5c565b5080511515611d55565b611dbe9192503d805f833e61199a8183610542565b905f611d49565b5190811515820361022957565b908160209103126102295761039490611dc5565b81810292918115918404141715611a0f57565b9060018201809211611a0f57565b91908201809211611a0f57565b3d15611e3e573d90611e258261059e565b91611e336040519384610542565b82523d5f602084013e565b606090565b519063ffffffff8216820361022957565b9190826040910312610229576103946020611e6e84611dc5565b9301611e43565b92915f8060609565ffffffffffff60405194602096638f82f93160e01b88880152602487015216604485015260448452611eae84610527565b6040519384611edb87820192639f86fd8560e01b845230602484015260406044840152606483019061023d565b0394611eef601f1996878101835282610542565b51915afa50611f0d611eff611e14565b838082518301019101612627565b9015611f6057808380611f2593518301019101611e54565b9290611f3057505050565b61039492939450611f54604051948592830191909163ffffffff6020820193169052565b03908101835282610542565b809150519182156102295701fd5b5f9081526002602090815260408083206001600160a01b0390941683529290522061039492919061265b565b60405190611fa7826104f9565b60606040838281528260208201520152565b906020828203126102295781356001600160401b03928382116102295701906060828203126102295760405192611fef846104f9565b823581811161022957826120049185016105b9565b84526020830135818111610229578261201e9185016105b9565b602085015260408301359081116102295761203992016105b9565b604082015290565b6040519061204e826104de565b60606020838281520152565b906020828203126102295781356001600160401b03928382116102295701906040828203126102295760405192612090846104de565b823581811161022957826120a59185016105b9565b84526020830135908111610229576120bd92016105b9565b602082015290565b8054821015611000575f5260205f2001905f90565b6120e381612e74565b6001600160d01b038116156121085760016120fe92016120c5565b90549060031b1c90565b50505f90565b908160209103126102295761039490611e43565b5f19810191908211611a0f57565b91908203918211611a0f57565b90600163ffffffff80931601918211611a0f57565b91805115612236578060208061216d9351830101910161210e565b916121788382612eb4565b92612189845165ffffffffffff1690565b9065ffffffffffff808516921682811461221d57821191826121c8575b50506121b6576103949250613319565b5050602001516001600160d01b031690565b9091506121d58354612122565b63ffffffff8316149182156121ee575b50505f806121a6565b61221591925061220961220361093f9261213d565b85612eb4565b5165ffffffffffff1690565b115f806121e5565b50505050602091909101516001600160d01b0316905090565b5061039491613319565b91909160408184031261022957803561225881610218565b9260208201356001600160401b0381116102295761039492016105b9565b90816020910312610229575161039481610218565b61229791810190612240565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610acc575f916123d8575b50156123c65781612328600492612308612f08565b5f80546001600160a01b0319166001600160a01b03891617905586612f95565b94604051928380926313c085b760e11b82525afa918215610acc575f92612399575b505016158061238f575b61237d575161058f9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b5080511515612354565b6123b89250803d106123bf575b6123b08183610542565b810190612276565b5f8061234a565b503d6123a6565b6040516362df054560e01b8152600490fd5b6123ef9150833d8511610f9957610f8b8183610542565b5f6122f3565b5f805160206134f883398151915260028154146124125760029055565b604051633ee5aeb560e01b8152600490fd5b604051635daf681960e11b815260609190911c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa918215610acc575f9261249a575b503391160361248857565b60405163227bf64d60e01b8152600490fd5b6124b491925060203d6020116123bf576123b08183610542565b905f61247d565b906040516124c8816104de565b915465ffffffffffff8116835260301c6020830152565b908154905f829160058411612568575b6124fa9350846131c1565b90811561255c5761251b9061250e83612122565b905f5260205f20016124bb565b9161255561254c6125466020612537875165ffffffffffff1690565b9601516001600160d01b031690565b93612122565b63ffffffff1690565b6001939291565b50505f905f905f905f90565b919261257381613096565b8103908111611a0f576124fa93855f5265ffffffffffff808360205f20015416908516105f146125a45750916124ef565b9291506125b090611df9565b906124ef565b906125c082612e74565b91805480156125e1575f1901906125d782826120c5565b611c43575f905555565b634e487b7160e01b5f52603160045260245ffd5b65ffffffffffff90818111612608571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9190916040818403126102295761263d81611dc5565b9260208201516001600160401b038111610229576103949201611842565b9180511561271d57806020806126769351830101910161210e565b916126818382613267565b92612692845165ffffffffffff1690565b9065ffffffffffff808516921682811461271157821191826126c8575b50506126bf57610394925061325c565b50506020015190565b9091506126d58354612122565b63ffffffff8316149182156126ee575b50505f806126af565b61270991925061220961270361093f9261213d565b85613267565b115f806126e5565b50505050506020015190565b506103949161325c565b906020828203126102295781516001600160401b0392838211610229570190604082820312610229576040519261275d846104de565b82518181116102295782612772918501611842565b84526020830151908111610229576120bd9201611842565b90816020910312610229575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526103949291019061023d565b926127d9612041565b908051806129ec575b50506127ed426125f5565b5f54909490612806906108ff906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa8015610acc5761283a9261093f925f926129d45750611a14565b65ffffffffffff82169081109081156129bd575b811561298c575b50612980578560049560405196878092630ce9b79360e41b82525afa948515610acc576128a79587915f91612963575b50845190604051808099819463e02f693760e01b8352878b8a60048601612799565b03916001600160a01b03165afa938415610acc5761291f955f95612922575b509261290e85936129149361290e96869a61290561035e836128f0875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192611f6e565b90612130565b818082109118021890565b91565b61291492955061290e94919361295061290e928a3d8c1161295c575b6129488183610542565b81019061278a565b969350939194506128c6565b503d61293e565b61297a9150823d84116123bf576123b08183610542565b5f612885565b5050505050505f905f90565b90506129b661093f6129aa876128f0875f52600160205260405f2090565b5465ffffffffffff1690565b115f612855565b90506129cb61093f426125f5565b8110159061284e565b610abe9192508a3d8c11610ac557610ab68183610542565b6129ff9250602080918301019101612727565b5f806127e2565b919091805f52600160205265ffffffffffff80612a368560405f209060018060a01b03165f5260205260405f2090565b541690831611612a4557505050565b61058f92612a6d915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9190825f526002602052612ade61035e612ab38360405f209060018060a01b03165f5260205260405f2090565b92612abd426125f5565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211611a0f576001810190815415612b82575b612afe81613223565b509490835495612b0d846120da565b5081612b6d575b5015612b4c5750505f198301928311611a0f5761058f92612b34916120c5565b90919082549060031b91821b915f19901b1916179055565b61058f94612b66926001600160d01b03909116919061341a565b50506132f6565b65ffffffffffff83811691161490505f612b14565b612b8b826132c9565b612af5565b60606020610394938184526001600160401b0381511682850152015191604080820152019061023d565b919360a093610394969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061023d565b92939060046020612c0f6108ff6108ff5f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa908115610acc5761110e91612c8d915f91612cdc575b506001600160a01b031693612c4c610591565b6001600160401b037f000000000000000000000000000000000000000000000000000000000000000016815290602082015260405192839160208301612b90565b823b15610229575f94612cb886926040519889978896879563724ab0f760e11b875260048701612bba565b03925af18015610acc57612cc95750565b80612cd661058f92610514565b806102c9565b612cf5915060203d6020116123bf576123b08183610542565b5f612c39565b65ffffffffffff9160446020925f60018060a01b038154166040519687958694631c9e38c760e21b865260048601521660248401525af18015610acc57612d3f5750565b612d579060203d60201161295c576129488183610542565b50565b8115612d64570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c16612d90575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa918215610acc575f92612e4d575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff9091166084830152612e1a8260a481015b03601f198101845283610542565b6202a15c5a10612e3b575f928380935192620249f0f1505f80808080612d89565b604051632153f33560e21b8152600490fd5b612e1a9250612e6d612e0c9160203d6020116123bf576123b08183610542565b9250612dc1565b805480612e815750505f90565b5f19918183810111611a0f575f5260205f2001015460301c90565b60405190612ea9826104de565b5f6020838281520152565b612ed991612ed391612ec4612e9c565b50612ecd612e9c565b506120c5565b506124bb565b65ffffffffffff81511690602060018060d01b039101511660405191612efe836104de565b8252602082015290565b612f106133a5565b612f186133a5565b60015f805160206134f883398151915255565b60405190612f38826104be565b5f8252565b809103906060821261022957602060405192612f58846104f9565b12610229576040908151612f6b816104be565b612f7482611dc5565b815283526020810151612f868161022d565b60208401520151604082015290565b90600490612fa1612f2b565b508051612fb8602092838080948301019101612f3d565b6040516327f843b560e11b815290949093849182906001600160a01b03165afa918215610acc575f92613077575b50820190612ffa825165ffffffffffff1690565b65ffffffffffff91821691161015613065576040820160038151106130535761304961302f61304f935165ffffffffffff1690565b65ffffffffffff1665ffffffffffff196004541617600455565b51600555565b5190565b6040516354f778f360e01b8152600490fd5b6040516367d5e3df60e11b8152600490fd5b8161308f9293503d8411610ac557610ab68183610542565b905f612fe6565b600181111561039457600181600160801b8110156131af575b61315761314d61314361313961312f61312561316397600488600160401b61315e9a10156131a2575b640100000000811015613195575b62010000811015613188575b61010081101561317c575b6010811015613170575b1015613168575b60030260011c61311e818b612d5a565b0160011c90565b61311e818a612d5a565b61311e8189612d5a565b61311e8188612d5a565b61311e8187612d5a565b61311e8186612d5a565b8093612d5a565b821190565b900390565b60011b61310e565b811c9160021b91613107565b60081c91811b916130fd565b60101c9160081b916130f2565b60201c9160101b916130e6565b60401c9160201b916130d8565b50600160401b9050608082901c6130af565b91905b8382106131d15750505090565b909192808316906001818518811c8301809311611a0f57855f5265ffffffffffff808460205f20015416908516105f14613210575050925b91906131c4565b909493508101809111611a0f5791613209565b8054806132345750505f905f905f90565b5f19918183810111611a0f575f5260205f2001015460019165ffffffffffff82169160301c90565b906120e39082613319565b9061328a612ed36132ab9261327a612e9c565b50613283612e9c565b50846120c5565b91600165ffffffffffff845116936020828060d01b039101511691016120c5565b905490604051926132bb846104de565b835260031b1c602082015290565b8054600160401b8110156104d9576132e6916001820181556120c5565b8154905f199060031b1b19169055565b90815491600160401b8310156104d95782612b3491600161058f950181556120c5565b908154905f829160058411613357575b6133349350846131c1565b8061333f5750505f90565b61334890612122565b905f5260205f20015460301c90565b919261336281613096565b8103908111611a0f5761333493855f5265ffffffffffff808360205f20015416908516105f14613393575091613329565b92915061339f90611df9565b90613329565b60ff5f805160206135188339815191525460401c16156133c157565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156104d9576133f0916001820181556120c5565b611c4357815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b805492939280156134cd5761343161343c91612122565b825f5260205f200190565b9182549265ffffffffffff918285169281168084116134bb57879303613482575061347b92509065ffffffffffff82549181199060301b169116179055565b60301c9190565b9150506134b6916134a2613494610591565b65ffffffffffff9093168352565b6001600160d01b03861660208301526133d3565b61347b565b604051632520601d60e01b8152600490fd5b50906134f2916134de613494610591565b6001600160d01b03851660208301526133d3565b5f919056fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122083c9d2c27050cb61d0026c4a120151139ad36b1ef086f66b4ca1715f04bbc28864736f6c63430008190033","sourceMap":"3563:3596:95:-:0;;;;-1:-1:-1;;;;;3563:3596:95;;;;;;;;;;-1:-1:-1;;3563:3596:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:95;;;;;;348:4:93;332:21;;8837:64:26;3563:3596:95;;;;;;;;;7896:76:26;;3563:3596:95;;;;7985:34:26;7981:146;;-1:-1:-1;525:17:80;-1:-1:-1;525:17:80;;-1:-1:-1;552:12:80;;-1:-1:-1;2353:28:103;;2391:53;;-1:-1:-1;2391:53:103;;1620:34:105;;-1:-1:-1;1620:34:105;;3901:37:95;;;;3563:3596;;;;;;;;;332:21:93;3563:3596:95;;;;;525:17:80;3563:3596:95;;;;;552:12:80;3563:3596:95;;;;;;;;;;2353:28:103;3563:3596:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;3563:3596:95;;;;;;;;;;;;;8087:29:26;;3563:3596:95;;8087:29:26;7981:146;;;;;7896:76;3563:3596:95;;-1:-1:-1;;;7938:23:26;;;;;3563:3596:95;-1:-1:-1;3563:3596:95;;;;;;-1:-1:-1;3563:3596:95;;;;;-1:-1:-1;3563:3596:95","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80622a087514610213578063103f29071461020e5780631a2be2c4146102095780631dd5f60014610204578063267de1f3146101ff5780632964f8dc146101fa5780632c9d45b3146101f55780632dd31000146101f057806331ce4dfe146101eb57806334d098ea146101e6578063439fab91146101e1578063457821b7146101dc5780635264679b146101d7578063545ce389146101d257806369f78920146101cd5780638f42f9ab146101c85780638f82f931146101c35780639168f9d2146101be5780639a896551146101b95780639f86fd85146101b4578063a4ef9b4f146101af578063aa8e6489146101aa578063aab3595f146101a5578063b94c386e146101a0578063bb24fe8a1461019b578063bc6eac5b14610196578063c0cd7c3e14610191578063cd05b8a11461018c578063d5c24e1a14610187578063e054e08b14610182578063f9268d181461017d5763fbfa77cf14610178575f80fd5b61181b565b6116ad565b611688565b61166b565b611613565b6115cf565b6115b2565b61156f565b61121d565b6111c5565b611187565b611124565b611090565b611005565b610bda565b610b49565b610b2c565b610ae7565b61084f565b610835565b6107f1565b6106b9565b610668565b6105ff565b610466565b610422565b610406565b6103b1565b610397565b610317565b6102d3565b610261565b6001600160a01b0381160361022957565b5f80fd5b65ffffffffffff81160361022957565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346102295760c0366003190112610229576102c56102b160043561028481610218565b61028f602435610218565b60643561029b81610218565b60a435916102a88361022d565b604435906118d1565b60405191829160208352602083019061023d565b0390f35b5f91031261022957565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461022957604036600319011261022957602061036361035e60243561033c81610218565b6004355f526002845260405f209060018060a01b03165f5260205260405f2090565b6120da565b604051908152f35b60609060031901126102295760043561038381610218565b90602435906044356103948161022d565b90565b34610229576102c56102b16103ab3661036b565b916119a8565b3461022957604036600319011261022957602065ffffffffffff6103fc6024356103da81610218565b6004355f526001845260405f209060018060a01b03165f5260205260405f2090565b5416604051908152f35b34610229575f366003190112610229576020604051614e208152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b038211176104d957604052565b6104aa565b604081019081106001600160401b038211176104d957604052565b606081019081106001600160401b038211176104d957604052565b6001600160401b0381116104d957604052565b608081019081106001600160401b038211176104d957604052565b90601f801991011681019081106001600160401b038211176104d957604052565b6040519060c082018281106001600160401b038211176104d957604052565b6040519061058f826104f9565b565b6040519061058f826104de565b6001600160401b0381116104d957601f01601f191660200190565b81601f82011215610229578035906105d08261059e565b926105de6040519485610542565b8284526020838301011161022957815f926020809301838601378301015290565b346102295760603660031901126102295760243561061c8161022d565b604435906001600160401b0382116102295761065f61064160209336906004016105b9565b6004355f90815260068552604090206001600160a01b039390612152565b16604051908152f35b34610229575f36600319011261022957602060ff5f5460a01c166040519015158152f35b9181601f84011215610229578235916001600160401b038311610229576020838186019501011161022957565b34610229576020366003190112610229576001600160401b03600435818111610229576106ea90369060040161068c565b5f80516020613518833981519152549260ff8460401c16159316801590816107e9575b60011490816107df575b1590816107d6575b506107c4575f80516020613518833981519152805467ffffffffffffffff1916600117905561075291836107a05761228b565b61075857005b5f80516020613518833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b5f80516020613518833981519152805460ff60401b1916600160401b17905561228b565b60405163f92ee8a960e01b8152600490fd5b9050155f61071f565b303b159150610717565b84915061070d565b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576102c56102b16108493661036b565b91611a2c565b346102295760a0366003190112610229576024356004803561087083610218565b604435926064356108808161022d565b6084356001600160401b0381116102295761089e903690860161068c565b94906108a86123f5565b6108b185612424565b6108b9611abe565b9580610ad1575b50506108cb426125f5565b906108e66108df825465ffffffffffff1690565b8093611b1f565b5f5490969061090b906108ff906001600160a01b031681565b6001600160a01b031690565b968260206040998a51928380926327f843b560e11b82525afa8015610acc5761094a9261093f925f92610a9b575b50611a14565b65ffffffffffff1690565b65ffffffffffff8516908110908115610a85575b50610a765761097090518486886127d0565b5096878082109118028088189714610a68576102c5610a41878988887f3cb7f4ff6cecf74cee0eb9ae3ebf8933fa60a53014cce52f96da72a78dba8464896109c08a6109bb426125f5565b611b1f565b92600354978894610a116109d2610563565b8881526001600160a01b0385166020820152808b018a905265ffffffffffff8616606082015265ffffffffffff831660808201525f60a0820152611b61565b885197885265ffffffffffff938416602089015290921660408701526001600160a01b0316949081906060820190565b0390a4610a5a60015f805160206134f883398151915255565b519081529081906020820190565b855163167f871760e31b8152fd5b508551631357ac9160e11b8152fd5b9050610a9361093f426125f5565b11155f61095e565b610abe91925060203d602011610ac5575b610ab68183610542565b810190611b39565b905f610939565b503d610aac565b6118ad565b610adf929650810190611ad1565b935f806108c0565b34610229576080366003190112610229576102c56102b1600435610b0a81610218565b604435610b1681610218565b60643591610b238361022d565b60243590611c97565b34610229575f366003190112610229576020600354604051908152f35b3461022957604036600319011261022957602435610b668161022d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610bc85763ffffffff610bb36040926004355f526006602052835f206124df565b91505083929192519215158352166020820152f35b604051637ca475e560e11b8152600490fd5b346102295760603660031901126102295760048035906bffffffffffffffffffffffff8216820361022957602435610c1181610218565b6044356001600160401b03811161022957610c2f903690840161068c565b90610c386123f5565b610c40611abe565b5081610fa0575b5050604080516302910f8b60e31b8152338185019081526001600160a01b0395929491602091829082908190830103818a7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610acc575f91610f73575b5015610f64575f54610ce5906001600160a01b0316936bffffffffffffffffffffffff166bffffffffffffffffffffffff193360601b161790565b95610d00610cfb885f52600660205260405f2090565b613223565b50949015610efa57610d1461093f426125f5565b65ffffffffffff9586161115610ec457610d3e610d39895f52600660205260405f2090565b6125b6565b505b610d636108ff6108ff6108ff610d5e8c5f52600660205260405f2090565b612e74565b91808716928303610dcf575b505050505050610db4907f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b7570925b516001600160a01b0390911681529081906020820190565b0390a2610dcd60015f805160206134f883398151915255565b005b610de68998959796985f52600660205260405f2090565b911692845163186a323160e21b815281818981885afa908115610acc575f91610ea7575b5081600554958751998a80926327f843b560e11b82525afa908115610acc5789610e6f610e81977f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b75709c610e7695610db49d610e7b985f92610e8a575b50501690611de6565b9116611e07565b6125f5565b9061341a565b82958495610d6f565b610ea09250803d10610ac557610ab68183610542565b5f80610e66565b610ebe9150823d8411610ac557610ab68183610542565b5f610e0a565b610ee26108ff6108ff6108ff610d5e8c5f52600660205260405f2090565b82871603610d4057865163a741a04560e01b81528490fd5b5093949385169250508115610f56575091610db491610f4f7f7b0b759b513b299fd2811f51926dca8854222a675557e8d544ce0933bf5b757094610f46875f52600660205260405f2090565b610e7b426125f5565b5050610d9c565b825163a741a04560e01b8152fd5b5083516323d53b9760e21b8152fd5b610f939150823d8411610f99575b610f8b8183610542565b810190611dd2565b5f610caa565b503d610f81565b610fac91810190611ad1565b505f80610c47565b634e487b7160e01b5f52603260045260245ffd5b6003548110156110005760035f5260021b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01905f90565b610fb4565b34610229576020366003190112610229576004356003548110156102295761102c90610fc8565b50805460018201546002830154600390930154604080519384526001600160a01b0390921660208401529082019290925265ffffffffffff808316606080840191909152603084901c90911660808301529190911c60ff16151560a082015260c090f35b34610229576040366003190112610229576004356110ad81610218565b6024356001600160401b038111610229575f916110cf8392369060040161068c565b90816040519283928337810184815203915af461111c6110ed611e14565b9161110e60405193849215156020840152604080840152606083019061023d565b03601f198101835282610542565b805190602001fd5b34610229576102c56102b16111383661036b565b91611e75565b906080600319830112610229576004359160243561115b81610218565b916044356111688161022d565b91606435906001600160401b03821161022957610394916004016105b9565b346102295760206103636111c061119d3661113e565b939190925f526002865260405f209060018060a01b03165f5260205260405f2090565b61265b565b346102295760206111e16111d83661113e565b929190916127d0565b50604051908152f35b9060406003198301126102295760043591602435906001600160401b038211610229576112199160040161068c565b9091565b346102295761122b366111ea565b91906112356123f5565b61123d611f9a565b9280611559575b50506003548110156115475761125981610fc8565b509081549061126782612424565b6003830180549365ffffffffffff9384861660018060a01b0361128c895183856119bf565b1615158061151c575b80611503575b6114f1576112b1816112ac426125f5565b611a14565b5f546112c7906108ff906001600160a01b031681565b96600460206040998a51928380926327f843b560e11b82525afa8015610acc5782915f916114d2575b50169116116114c157600183018054909861131b93929188906001600160a01b0316910151926127d0565b90611330816002850154818082109118021890565b9687156114b05760601c60ff1661149f579261145861144b89946114236114108b9687876102c59f61141e8f9d8f9e61145e9f61137a86600160601b60ff60601b19825416179055565b8a54855461139c91906001600160a01b0316885465ffffffffffff1691612a06565b8a5485546113b59189916001600160a01b031690612a86565b8a5494546113d3906001600160a01b0316965465ffffffffffff1690565b976113dc610582565b9384526020840152818301525196879160208301919091604080606083019480518452602081015160208501520151910152565b03601f198101875286610542565b612bf2565b61143c611436855465ffffffffffff1690565b86612cfb565b5494546001600160a01b031690565b915465ffffffffffff1690565b92612d78565b81518381527f5cc28df3b54da9d06f805d87616ebf969c81310f2aa8369cb14ca50f815d411190602090a2610a5a60015f805160206134f883398151915255565b8551633428e90760e01b8152600490fd5b865163167f871760e31b8152600490fd5b8551639ea153eb60e01b8152600490fd5b6114eb915060203d602011610ac557610ab68183610542565b5f6112f0565b60405163b62b15c760e01b8152600490fd5b5061151061093f426125f5565b868860301c161161129b565b506115406108ff61153461152f426125f5565b6119f8565b60208b015190856119bf565b1515611295565b604051637822972360e11b8152600490fd5b611567929350810190611fb9565b905f80611244565b34610229575f3660031901126102295760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610229575f366003190112610229576020600554604051908152f35b34610229575f366003190112610229576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610229576040366003190112610229576024356001600160401b0381116102295761165961164860209236906004016105b9565b611651426125f5565b6004356119bf565b6040516001600160a01b039091168152f35b34610229575f366003190112610229576020604051620249f08152f35b34610229575f36600319011261022957602065ffffffffffff60045416604051908152f35b34610229576116bb366111ea565b906116c46123f5565b6116cc612041565b9180611807575b5050600354821015611547576116e882610fc8565b506003815491019182549165ffffffffffff9160018060a01b036117108251858716856119bf565b169182159182156117de575b50506117cc5733036117ba5761173461093f426125f5565b908260301c1611156117a95760601c60ff1661179757805460ff60601b1916600160601b17905533907f7d3d269c851b72257a5194a401d151902e9be4347d555996dcff3ff86a077e925f80a3610dcd60015f805160206134f883398151915255565b604051633428e90760e01b8152600490fd5b60405162c457e560e81b8152600490fd5b604051635d154fe160e11b8152600490fd5b60405163dd1ebd9d60e01b8152600490fd5b6117ff9250906108ff9160206117f661152f426125f5565b910151916119bf565b155f8061171c565b611814925081019061205a565b5f806116d3565b34610229575f366003190112610229575f546040516001600160a01b039091168152602090f35b81601f82011215610229578051906118598261059e565b926118676040519485610542565b8284526020838301011161022957815f9260208093018386015e8301015290565b906020828203126102295781516001600160401b038111610229576103949201611842565b6040513d5f823e3d90fd5b604061039492602083525191602080820152019061023d565b604051632751749360e11b81526001600160a01b0391821660048201526024810192909252909116604482015265ffffffffffff9091166064820152606091905f81806084810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610acc575f91611986575b50805161195e5750565b61110e9192506103949060405190611975826104be565b8152604051928391602083016118b8565b6119a291503d805f833e61199a8183610542565b810190611888565b5f611954565b92916119b691606094611e75565b805161195e5750565b5f9081526006602052604090206001600160a01b03926119e0929091612152565b1690565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff9081165f190191908211611a0f57565b6119e4565b65ffffffffffff9182169082160391908211611a0f57565b611a4d90939293611a406060958483611e75565b9261113861152f426125f5565b815115801590611ab4575b611a60575050565b611aa19293509061110e6103949260405192611a7b846104de565b83526020830190815260405194859360208086015251604080860152608085019061023d565b9051838203603f1901606085015261023d565b5080511515611a58565b60405190611acb826104be565b60608252565b906020828203126102295781356001600160401b03928382116102295701906020828203126102295760405192611b07846104be565b823590811161022957611b1a92016105b9565b815290565b91909165ffffffffffff80809416911601918211611a0f57565b9081602091031261022957516103948161022d565b634e487b7160e01b5f525f60045260245ffd5b600354600160401b8110156104d957806001611b809201600355610fc8565b919091611c43578051825560208101516001830180546001600160a01b0319166001600160a01b039290921691909117905561058f91611c299060a090600390604085015160028201550192611bf665ffffffffffff606083015116859065ffffffffffff1665ffffffffffff19825416179055565b60808101516bffffffffffff00000000000085549160301b16906bffffffffffff00000000000019161784550151151590565b815460ff60601b191690151560601b60ff60601b16179055565b611b4e565b906103949160208152611c67825160606020840152608083019061023d565b9060606040611c87602086015194601f199586868303018487015261023d565b940151928285030191015261023d565b919093925f606095611caa838287611e75565b94611d0d611cc4611cbd61152f426125f5565b8484611e75565b604051632751749360e11b81526001600160a01b039384166004820152602481019490945291909516604483015265ffffffffffff909316606482015292839081906084820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa918215610acc575f92611da9575b50825115801590611d9f575b8015611d95575b611d6557505050565b61110e939450906103949291611d79610582565b9283526020830152604082015260405192839160208301611c48565b5081511515611d5c565b5080511515611d55565b611dbe9192503d805f833e61199a8183610542565b905f611d49565b5190811515820361022957565b908160209103126102295761039490611dc5565b81810292918115918404141715611a0f57565b9060018201809211611a0f57565b91908201809211611a0f57565b3d15611e3e573d90611e258261059e565b91611e336040519384610542565b82523d5f602084013e565b606090565b519063ffffffff8216820361022957565b9190826040910312610229576103946020611e6e84611dc5565b9301611e43565b92915f8060609565ffffffffffff60405194602096638f82f93160e01b88880152602487015216604485015260448452611eae84610527565b6040519384611edb87820192639f86fd8560e01b845230602484015260406044840152606483019061023d565b0394611eef601f1996878101835282610542565b51915afa50611f0d611eff611e14565b838082518301019101612627565b9015611f6057808380611f2593518301019101611e54565b9290611f3057505050565b61039492939450611f54604051948592830191909163ffffffff6020820193169052565b03908101835282610542565b809150519182156102295701fd5b5f9081526002602090815260408083206001600160a01b0390941683529290522061039492919061265b565b60405190611fa7826104f9565b60606040838281528260208201520152565b906020828203126102295781356001600160401b03928382116102295701906060828203126102295760405192611fef846104f9565b823581811161022957826120049185016105b9565b84526020830135818111610229578261201e9185016105b9565b602085015260408301359081116102295761203992016105b9565b604082015290565b6040519061204e826104de565b60606020838281520152565b906020828203126102295781356001600160401b03928382116102295701906040828203126102295760405192612090846104de565b823581811161022957826120a59185016105b9565b84526020830135908111610229576120bd92016105b9565b602082015290565b8054821015611000575f5260205f2001905f90565b6120e381612e74565b6001600160d01b038116156121085760016120fe92016120c5565b90549060031b1c90565b50505f90565b908160209103126102295761039490611e43565b5f19810191908211611a0f57565b91908203918211611a0f57565b90600163ffffffff80931601918211611a0f57565b91805115612236578060208061216d9351830101910161210e565b916121788382612eb4565b92612189845165ffffffffffff1690565b9065ffffffffffff808516921682811461221d57821191826121c8575b50506121b6576103949250613319565b5050602001516001600160d01b031690565b9091506121d58354612122565b63ffffffff8316149182156121ee575b50505f806121a6565b61221591925061220961220361093f9261213d565b85612eb4565b5165ffffffffffff1690565b115f806121e5565b50505050602091909101516001600160d01b0316905090565b5061039491613319565b91909160408184031261022957803561225881610218565b9260208201356001600160401b0381116102295761039492016105b9565b90816020910312610229575161039481610218565b61229791810190612240565b6040516302910f8b60e31b81526001600160a01b0392831660048201819052929160209182816024817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610acc575f916123d8575b50156123c65781612328600492612308612f08565b5f80546001600160a01b0319166001600160a01b03891617905586612f95565b94604051928380926313c085b760e11b82525afa918215610acc575f92612399575b505016158061238f575b61237d575161058f9015155f805460ff60a01b191691151560a01b60ff60a01b16919091179055565b60405163d2420f5960e01b8152600490fd5b5080511515612354565b6123b89250803d106123bf575b6123b08183610542565b810190612276565b5f8061234a565b503d6123a6565b6040516362df054560e01b8152600490fd5b6123ef9150833d8511610f9957610f8b8183610542565b5f6122f3565b5f805160206134f883398151915260028154146124125760029055565b604051633ee5aeb560e01b8152600490fd5b604051635daf681960e11b815260609190911c60048201526001600160a01b036020826024817f000000000000000000000000000000000000000000000000000000000000000085165afa918215610acc575f9261249a575b503391160361248857565b60405163227bf64d60e01b8152600490fd5b6124b491925060203d6020116123bf576123b08183610542565b905f61247d565b906040516124c8816104de565b915465ffffffffffff8116835260301c6020830152565b908154905f829160058411612568575b6124fa9350846131c1565b90811561255c5761251b9061250e83612122565b905f5260205f20016124bb565b9161255561254c6125466020612537875165ffffffffffff1690565b9601516001600160d01b031690565b93612122565b63ffffffff1690565b6001939291565b50505f905f905f905f90565b919261257381613096565b8103908111611a0f576124fa93855f5265ffffffffffff808360205f20015416908516105f146125a45750916124ef565b9291506125b090611df9565b906124ef565b906125c082612e74565b91805480156125e1575f1901906125d782826120c5565b611c43575f905555565b634e487b7160e01b5f52603160045260245ffd5b65ffffffffffff90818111612608571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9190916040818403126102295761263d81611dc5565b9260208201516001600160401b038111610229576103949201611842565b9180511561271d57806020806126769351830101910161210e565b916126818382613267565b92612692845165ffffffffffff1690565b9065ffffffffffff808516921682811461271157821191826126c8575b50506126bf57610394925061325c565b50506020015190565b9091506126d58354612122565b63ffffffff8316149182156126ee575b50505f806126af565b61270991925061220961270361093f9261213d565b85613267565b115f806126e5565b50505050506020015190565b506103949161325c565b906020828203126102295781516001600160401b0392838211610229570190604082820312610229576040519261275d846104de565b82518181116102295782612772918501611842565b84526020830151908111610229576120bd9201611842565b90816020910312610229575190565b9081526001600160a01b03909116602082015265ffffffffffff90911660408201526080606082018190526103949291019061023d565b926127d9612041565b908051806129ec575b50506127ed426125f5565b5f54909490612806906108ff906001600160a01b031681565b93604051956327f843b560e11b875260209687816004818a5afa8015610acc5761283a9261093f925f926129d45750611a14565b65ffffffffffff82169081109081156129bd575b811561298c575b50612980578560049560405196878092630ce9b79360e41b82525afa948515610acc576128a79587915f91612963575b50845190604051808099819463e02f693760e01b8352878b8a60048601612799565b03916001600160a01b03165afa938415610acc5761291f955f95612922575b509261290e85936129149361290e96869a61290561035e836128f0875f52600260205260405f2090565b9060018060a01b03165f5260205260405f2090565b95015192611f6e565b90612130565b818082109118021890565b91565b61291492955061290e94919361295061290e928a3d8c1161295c575b6129488183610542565b81019061278a565b969350939194506128c6565b503d61293e565b61297a9150823d84116123bf576123b08183610542565b5f612885565b5050505050505f905f90565b90506129b661093f6129aa876128f0875f52600160205260405f2090565b5465ffffffffffff1690565b115f612855565b90506129cb61093f426125f5565b8110159061284e565b610abe9192508a3d8c11610ac557610ab68183610542565b6129ff9250602080918301019101612727565b5f806127e2565b919091805f52600160205265ffffffffffff80612a368560405f209060018060a01b03165f5260205260405f2090565b541690831611612a4557505050565b61058f92612a6d915f52600160205260405f209060018060a01b03165f5260205260405f2090565b9065ffffffffffff1665ffffffffffff19825416179055565b9190825f526002602052612ade61035e612ab38360405f209060018060a01b03165f5260205260405f2090565b92612abd426125f5565b955f52600260205260405f209060018060a01b03165f5260205260405f2090565b918201809211611a0f576001810190815415612b82575b612afe81613223565b509490835495612b0d846120da565b5081612b6d575b5015612b4c5750505f198301928311611a0f5761058f92612b34916120c5565b90919082549060031b91821b915f19901b1916179055565b61058f94612b66926001600160d01b03909116919061341a565b50506132f6565b65ffffffffffff83811691161490505f612b14565b612b8b826132c9565b612af5565b60606020610394938184526001600160401b0381511682850152015191604080820152019061023d565b919360a093610394969565ffffffffffff938552600180871b031660208501526040840152166060820152816080820152019061023d565b92939060046020612c0f6108ff6108ff5f5460018060a01b031690565b604051630ce9b79360e41b815292839182905afa908115610acc5761110e91612c8d915f91612cdc575b506001600160a01b031693612c4c610591565b6001600160401b037f000000000000000000000000000000000000000000000000000000000000000016815290602082015260405192839160208301612b90565b823b15610229575f94612cb886926040519889978896879563724ab0f760e11b875260048701612bba565b03925af18015610acc57612cc95750565b80612cd661058f92610514565b806102c9565b612cf5915060203d6020116123bf576123b08183610542565b5f612c39565b65ffffffffffff9160446020925f60018060a01b038154166040519687958694631c9e38c760e21b865260048601521660248401525af18015610acc57612d3f5750565b612d579060203d60201161295c576129488183610542565b50565b8115612d64570490565b634e487b7160e01b5f52601260045260245ffd5b92905f549060ff8260a01c16612d90575b5050505050565b6040516313c085b760e11b815291602090839060049082906001600160a01b03165afa918215610acc575f92612e4d575b5060405163065c1e0360e01b6020820190815260248201969096526001600160a01b039091166044820152606481019390935265ffffffffffff9091166084830152612e1a8260a481015b03601f198101845283610542565b6202a15c5a10612e3b575f928380935192620249f0f1505f80808080612d89565b604051632153f33560e21b8152600490fd5b612e1a9250612e6d612e0c9160203d6020116123bf576123b08183610542565b9250612dc1565b805480612e815750505f90565b5f19918183810111611a0f575f5260205f2001015460301c90565b60405190612ea9826104de565b5f6020838281520152565b612ed991612ed391612ec4612e9c565b50612ecd612e9c565b506120c5565b506124bb565b65ffffffffffff81511690602060018060d01b039101511660405191612efe836104de565b8252602082015290565b612f106133a5565b612f186133a5565b60015f805160206134f883398151915255565b60405190612f38826104be565b5f8252565b809103906060821261022957602060405192612f58846104f9565b12610229576040908151612f6b816104be565b612f7482611dc5565b815283526020810151612f868161022d565b60208401520151604082015290565b90600490612fa1612f2b565b508051612fb8602092838080948301019101612f3d565b6040516327f843b560e11b815290949093849182906001600160a01b03165afa918215610acc575f92613077575b50820190612ffa825165ffffffffffff1690565b65ffffffffffff91821691161015613065576040820160038151106130535761304961302f61304f935165ffffffffffff1690565b65ffffffffffff1665ffffffffffff196004541617600455565b51600555565b5190565b6040516354f778f360e01b8152600490fd5b6040516367d5e3df60e11b8152600490fd5b8161308f9293503d8411610ac557610ab68183610542565b905f612fe6565b600181111561039457600181600160801b8110156131af575b61315761314d61314361313961312f61312561316397600488600160401b61315e9a10156131a2575b640100000000811015613195575b62010000811015613188575b61010081101561317c575b6010811015613170575b1015613168575b60030260011c61311e818b612d5a565b0160011c90565b61311e818a612d5a565b61311e8189612d5a565b61311e8188612d5a565b61311e8187612d5a565b61311e8186612d5a565b8093612d5a565b821190565b900390565b60011b61310e565b811c9160021b91613107565b60081c91811b916130fd565b60101c9160081b916130f2565b60201c9160101b916130e6565b60401c9160201b916130d8565b50600160401b9050608082901c6130af565b91905b8382106131d15750505090565b909192808316906001818518811c8301809311611a0f57855f5265ffffffffffff808460205f20015416908516105f14613210575050925b91906131c4565b909493508101809111611a0f5791613209565b8054806132345750505f905f905f90565b5f19918183810111611a0f575f5260205f2001015460019165ffffffffffff82169160301c90565b906120e39082613319565b9061328a612ed36132ab9261327a612e9c565b50613283612e9c565b50846120c5565b91600165ffffffffffff845116936020828060d01b039101511691016120c5565b905490604051926132bb846104de565b835260031b1c602082015290565b8054600160401b8110156104d9576132e6916001820181556120c5565b8154905f199060031b1b19169055565b90815491600160401b8310156104d95782612b3491600161058f950181556120c5565b908154905f829160058411613357575b6133349350846131c1565b8061333f5750505f90565b61334890612122565b905f5260205f20015460301c90565b919261336281613096565b8103908111611a0f5761333493855f5265ffffffffffff808360205f20015416908516105f14613393575091613329565b92915061339f90611df9565b90613329565b60ff5f805160206135188339815191525460401c16156133c157565b604051631afcd79f60e31b8152600490fd5b8054600160401b8110156104d9576133f0916001820181556120c5565b611c4357815160209092015160301b65ffffffffffff191665ffffffffffff909216919091179055565b805492939280156134cd5761343161343c91612122565b825f5260205f200190565b9182549265ffffffffffff918285169281168084116134bb57879303613482575061347b92509065ffffffffffff82549181199060301b169116179055565b60301c9190565b9150506134b6916134a2613494610591565b65ffffffffffff9093168352565b6001600160d01b03861660208301526133d3565b61347b565b604051632520601d60e01b8152600490fd5b50906134f2916134de613494610591565b6001600160d01b03851660208301526133d3565b5f919056fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122083c9d2c27050cb61d0026c4a120151139ad36b1ef086f66b4ca1715f04bbc28864736f6c63430008190033","sourceMap":"3563:3596:95:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;-1:-1:-1;;;;;3563:3596:95;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;3563:3596:95;;;;;;;;-1:-1:-1;;3563:3596:95;;;;:::o;:::-;;;;;;-1:-1:-1;;3563:3596:95;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3563:3596:95;;;;;;1435:38:103;-1:-1:-1;;;;;3563:3596:95;;;;;;;;;;;;-1:-1:-1;;3563:3596:95;;;;;2936:47:103;:38;3563:3596:95;;;;;:::i;:::-;;;-1:-1:-1;3563:3596:95;2936:16:103;3563:3596:95;;;-1:-1:-1;3563:3596:95;;;;;;;;;;;;;;;;;2936:38:103;:47;:::i;:::-;3563:3596:95;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;3563:3596:95;;;;;;1788:109:103;3563:3596:95;;;;;:::i;:::-;;;-1:-1:-1;3563:3596:95;1788:109:103;3563:3596:95;;;-1:-1:-1;3563:3596:95;;;;;;;;;;;;;;;;;1788:109:103;3563:3596:95;;;;;;;;;;;;;;-1:-1:-1;;3563:3596:95;;;;;;;1374:6:103;3563:3596:95;;;;;;;;;-1:-1:-1;;3563:3596:95;;;;;;1528:51:103;-1:-1:-1;;;;;3563:3596:95;;;;;;;;;;;;-1:-1:-1;;3563:3596:95;;;;;;322:32:80;-1:-1:-1;;;;;3563:3596:95;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:95;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3563:3596:95;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;3563:3596:95;;;;;;;:::o;:::-;-1:-1:-1;;;;;3563:3596:95;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;3563:3596:95;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:95;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;3563:3596:95;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;3563:3596:95;;;;;;-1:-1:-1;;3563:3596:95;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;3563:3596:95;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3563:3596:95;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;3563:3596:95;;;;2016:56:105;3563:3596:95;;;;;;;;:::i;:::-;;;-1:-1:-1;3563:3596:95;;;2016:9:105;3563:3596:95;;;;;-1:-1:-1;;;;;3563:3596:95;;2016:56:105;:::i;:::-;3563:3596:95;;;;;;;;;;;;;-1:-1:-1;;3563:3596:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:95;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3563:3596:95;;;;-1:-1:-1;;;;;3563:3596:95;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;3563:3596:95;;;;;;;4301:16:26;3563:3596:95;;4726:16:26;;:34;;;;3563:3596:95;4805:1:26;4790:16;:50;;;;3563:3596:95;4855:13:26;:30;;;;3563:3596:95;4851:91:26;;;-1:-1:-1;;;;;;;;;;;3563:3596:95;;-1:-1:-1;;3563:3596:95;;;;;718:4:80;;4951:18:26;4979:67;;718:4:80;:::i;:::-;5066:101:26;;3563:3596:95;5066:101:26;-1:-1:-1;;;;;;;;;;;3563:3596:95;;-1:-1:-1;;;;3563:3596:95;;;;;-1:-1:-1;3563:3596:95;;5142:14:26;;3563:3596:95;;5142:14:26;3563:3596:95;4979:67:26;-1:-1:-1;;;;;;;;;;;3563:3596:95;;-1:-1:-1;;;;3563:3596:95;-1:-1:-1;;;3563:3596:95;;;718:4:80;:::i;4851:91:26:-;3563:3596:95;;-1:-1:-1;;;4908:23:26;;3563:3596:95;;4908:23:26;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;3563:3596:95;;;;;;-1:-1:-1;;3563:3596:95;;;;;;3726:43;-1:-1:-1;;;;;3563:3596:95;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;3563:3596:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3563:3596:95;;;;;;;;;;;:::i;:::-;3361:103:30;;;;:::i;:::-;2123:10:103;;;:::i;:::-;3563:3596:95;;:::i;:::-;2666:16:105;;2662:105;;3563:3596:95;837:15:73;;819:34;837:15;819:34;:::i;:::-;3563:3596:95;2813:31:105;3563:3596:95;;;;;;;;2813:31:105;;;:::i;:::-;-1:-1:-1;3563:3596:95;;;;2847:27:105;;:13;;-1:-1:-1;;;;;3563:3596:95;2847:13:105;3563:3596:95;;-1:-1:-1;;;;;3563:3596:95;;;2847:27:105;3563:3596:95;;;;;;;;;;;;;;2847:29:105;;;;;;;;2794:82;2847:29;2813:63;2847:29;-1:-1:-1;2847:29:105;;;3563:3596:95;2813:63:105;;:::i;:::-;3563:3596:95;;;;2794:82:105;3563:3596:95;;;2794:82:105;;;:138;;;;;3563:3596:95;2777:223:105;;;3248:62:103;3104:37:105;;3248:62:103;;;;:::i;:::-;3463:5:68;;;;;;3066;;3563:3596:95;3060:42:68;;;3166:11:105;;3162:68;;3563:3596:95;3671:86:105;837:15:73;;;;3671:86:105;837:15:73;3262:31:105;837:15:73;819:34;837:15;819:34;:::i;:::-;3262:31:105;:::i;:::-;3563:3596:95;3317:13:105;3563:3596:95;;;;3347:308:105;3563:3596:95;;:::i;:::-;;;;-1:-1:-1;;;;;3563:3596:95;;;3379:266:105;;3563:3596:95;3379:266:105;;;3563:3596:95;;;;;;;3379:266:105;;3563:3596:95;;;;;3379:266:105;;3563:3596:95;-1:-1:-1;3563:3596:95;3379:266:105;;3563:3596:95;3347:308:105;:::i;:::-;3563:3596:95;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:95;;;;;;;;;;3671:86:105;;;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;3563:3596:95;3860:283:30;3426:1;3563:3596:95;;;;;;;;;;;;3162:68:105;3563:3596:95;;-1:-1:-1;;;3200:19:105;;;2777:223;-1:-1:-1;3563:3596:95;;-1:-1:-1;;;2964:25:105;;;2794:138;837:15:73;;2896:36:105;819:34:73;837:15;819:34;:::i;2896:36:105:-;-1:-1:-1;2896:36:105;2794:138;;;2847:29;;;;;3563:3596:95;2847:29:105;3563:3596:95;2847:29:105;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;2662:105::-;2718:38;;;;;;;;:::i;:::-;2662:105;;;;;3563:3596:95;;;;;;-1:-1:-1;;3563:3596:95;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;3563:3596:95;;;;;1795:13:105;3563:3596:95;;;;;;;;;;;;;-1:-1:-1;;3563:3596:95;;;;;;;;;:::i;:::-;449:5:93;-1:-1:-1;;;;;3563:3596:95;435:10:93;:19;431:71;;3563:3596:95;4136:60;3563:3596;;;;-1:-1:-1;3563:3596:95;4136:9;3563:3596;;;-1:-1:-1;3563:3596:95;4136:60;:::i;:::-;3563:3596;;;;;;;;;;;;;;;;;;;431:71:93;3563:3596:95;;-1:-1:-1;;;477:14:93;;3563:3596:95;;477:14:93;3563:3596:95;;;;;;-1:-1:-1;;3563:3596:95;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3563:3596:95;;;;;;;;;;;:::i;:::-;3361:103:30;;;:::i;:::-;3563:3596:95;;:::i;:::-;;7493:16:105;7489:103;;3563:3596:95;-1:-1:-1;;3563:3596:95;;;-1:-1:-1;;;7607:48:105;;7644:10;7607:48;;;3563:3596:95;;;-1:-1:-1;;;;;3563:3596:95;;;;;;;;;;;;;;7607:48:105;7617:16;;;3563:3596:95;7607:48:105;;;;;;;-1:-1:-1;7607:48:105;;;3563:3596:95;7606:49:105;;7602:99;;-1:-1:-1;3563:3596:95;7764:35:105;;-1:-1:-1;;;;;3563:3596:95;7644:10:105;3563:3596:95;;-1:-1:-1;;7644:10:105;297:2:99;3563:3596:95;;267:46:99;;152:169;7764:35:105;7850:21;5260:30:97;7850:21:105;;3563:3596:95;;7850:9:105;3563:3596:95;;;;;;;7850:21:105;5260:30:97;:::i;:::-;-1:-1:-1;7900:801:105;;;;;7930:34;819::73;837:15;819:34;:::i;7930::105:-;3563:3596:95;;;;7930:34:105;;;;7984:27;:21;;3563:3596:95;;7850:9:105;3563:3596:95;;;;;;;7984:21:105;:27;:::i;:::-;;7926:225;8169:61;8182:48;8190:39;4928:20:97;8198:21:105;;3563:3596:95;;7850:9:105;3563:3596:95;;;;;;;8198:21:105;4928:20:97;:::i;8169:61:105:-;3563:3596:95;;;;8169:61:105;;;8165:336;;7926:225;7900:801;;;;;;8716:34;7900:801;8716:34;7900:801;;3563:3596:95;-1:-1:-1;;;;;3563:3596:95;;;;;;;;;;;;;8716:34:105;;;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;3563:3596:95;3860:283:30;3426:1;3563:3596:95;8165:336:105;8250:21;;;;;;;3563:3596:95;;7850:9:105;3563:3596:95;;;;;;;8250:21:105;3563:3596:95;;;;;;;;8299:34:105;;;;;;;;;;;;;;-1:-1:-1;8299:34:105;;;8165:336;3563:3596:95;;8336:22:105;3563:3596:95;;;;;;;;;;;8361:30:105;;;;;;;;;;8336:55;8310:38:71;8361:30:105;8716:34;8361:30;8299:92;8361:30;8716:34;8361:30;8298:130;8361:30;-1:-1:-1;8361:30:105;;;8165:336;3563:3596:95;;;8336:55:105;;:::i;:::-;3563:3596:95;;8299:92:105;:::i;:::-;8298:130;:::i;:::-;8310:38:71;;:::i;:::-;8165:336:105;;;;;;8361:30;;;;;;-1:-1:-1;8361:30:105;;;;;;:::i;:::-;;;;;8299:34;;;;;;;;;;;;;;:::i;:::-;;;;7926:225;8036:61;8049:48;8057:39;4928:20:97;8065:21:105;;3563:3596:95;;7850:9:105;3563:3596:95;;;;;;;8036:61:105;3563:3596:95;;;8036:61:105;7926:225;8032:119;3563:3596:95;;-1:-1:-1;;;8124:12:105;;3563:3596:95;;8124:12:105;7900:801;-1:-1:-1;3563:3596:95;;;;;;-1:-1:-1;;8535:23:105;;8531:81;;8626:21;;8716:34;8626:21;8310:38:71;8716:34:105;8626:21;;;3563:3596:95;;7850:9:105;3563:3596:95;;;;;;;8626:21:105;819:34:73;837:15;819:34;:::i;8310:38:71:-;7900:801:105;;;;8531:81;3563:3596:95;;-1:-1:-1;;;8585:12:105;;;7602:99;-1:-1:-1;3563:3596:95;;-1:-1:-1;;;7678:12:105;;;7607:48;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;7489:103;7544:37;;;;;;:::i;:::-;;7489:103;;;;3563:3596:95;;;;;;;;;;;;;1050:35:105;3563:3596:95;;;;;;1050:35:105;-1:-1:-1;3563:3596:95;;;;;;-1:-1:-1;3563:3596:95;:::o;:::-;;:::i;:::-;;;;;;-1:-1:-1;;3563:3596:95;;;;;;1050:35:105;3563:3596:95;1050:35:105;;;;;;;;:::i;:::-;-1:-1:-1;3563:3596:95;;;1050:35:105;;3563:3596:95;1050:35:105;;;3563:3596:95;1050:35:105;;;;3563:3596:95;;;;;;;-1:-1:-1;;;;;3563:3596:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3563:3596:95;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3563:3596:95;;;;-1:-1:-1;3563:3596:95;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:86;;;;477:31;416:25;;:::i;:::-;3563:3596:95;;;;;;;;;;477:31:86;;3563:3596:95;;;;;;;;;;;:::i;:::-;477:31:86;3563:3596:95;;477:31:86;;;;;;:::i;:::-;518:79;;;3563:3596:95;518:79:86;;3563:3596:95;;;;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;;3563:3596:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;3563:3596:95;;;;;;;;;:::i;:::-;;;;;2692:73:103;:38;3563:3596:95;;;:::i;:::-;;;;;-1:-1:-1;3563:3596:95;2692:16:103;3563:3596:95;;;-1:-1:-1;3563:3596:95;;;;;;;;;;;;;;;;;2692:38:103;:73;:::i;3563:3596:95:-;;;;;3248:62:103;3563:3596:95;;;:::i;:::-;3248:62:103;;;;;:::i;:::-;3563:3596:95;;;;;;;;;;-1:-1:-1;;3563:3596:95;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:95;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;3361:103:30;;;;:::i;:::-;3563:3596:95;;:::i;:::-;4024:16:105;;4020:105;;3563:3596:95;;;4153:13:105;3563:3596:95;4139:34:105;;;4135:94;;4270:25;;;:::i;:::-;3563:3596:95;;;;4330:18:105;;;;:::i;:::-;4153:13;4408:24;;3563:3596:95;;;;;;;;;;;;;4377:95:105;4434:37;;4377:95;;;:::i;:::-;3563:3596:95;4377:125:105;;:250;;;3563:3596:95;4377:309:105;;;3563:3596:95;4360:389:105;;4763:43;837:15:73;819:34;837:15;819:34;:::i;:::-;4763:43:105;:::i;:::-;-1:-1:-1;3563:3596:95;4809:27:105;;:13;;-1:-1:-1;;;;;3563:3596:95;4809:13:105;3563:3596:95;4809:27:105;3563:3596:95;;4809:29:105;3563:3596:95;;;;;;;;;;;4809:29:105;;;;;;;;;;-1:-1:-1;4809:29:105;;;3563:3596:95;;;;;4763:75:105;4759:131;;4994:16;;;3563:3596:95;;4994:16:105;;4945:140;;4994:16;;3563:3596:95;;-1:-1:-1;;;;;3563:3596:95;5038:37:105;;;4945:140;;:::i;:::-;5120:14;5111:41;5120:14;;;;3563:3596:95;3463:5:68;;;;3066;;3563:3596:95;3060:42:68;3371:111;;5111:41:105;5166:18;;;5162:75;;3563:3596:95;;;;5247:78:105;;5335:24;3563:3596:95;;5335:24:105;;5725:145;;5335:24;;;;3563:3596:95;5335:24:105;5725:145;5335:24;;;;6024;5335;;;3563:3596:95;;;;;;;;;;;;;;5335:24:105;3563:3596:95;;;;5445:24:105;;3563:3596:95;-1:-1:-1;;;;;3563:3596:95;;;;;5445:24:105;;:::i;:::-;3563:3596:95;;;;5542:13:105;;3563:3596:95;;-1:-1:-1;;;;;3563:3596:95;5542:13:105;;:::i;:::-;3563:3596:95;;;;;;-1:-1:-1;;;;;3563:3596:95;;;;;;;;;;;:::i;:::-;;;;4809:29:105;5753:103;;3563:3596:95;5753:103:105;;;3563:3596:95;;5725:145:105;;;4809:29;5725:145;;3563:3596:95;;;;;;;;;;;;;;;;;;;;;;;;;;;5725:145:105;;3563:3596:95;;5725:145:105;;;;;;:::i;:::-;;:::i;:::-;5920:24;3563:3596:95;;;;;;;;5920:24:105;;:::i;:::-;3563:3596:95;;;-1:-1:-1;;;;;3563:3596:95;;;;;;;;;;;6024:24:105;;:::i;:::-;3563:3596:95;;;;;6065:39:105;;3563:3596:95;;6065:39:105;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;3563:3596:95;3860:283:30;5247:78:105;3563:3596:95;;-1:-1:-1;;;5291:23:105;;3563:3596:95;;5291:23:105;5162:75;3563:3596:95;;-1:-1:-1;;;5207:19:105;;3563:3596:95;;5207:19:105;4759:131;3563:3596:95;;-1:-1:-1;;;4861:18:105;;3563:3596:95;;4861:18:105;4809:29;;;;;;;;;;;;;;:::i;:::-;;;;4360:389;3563:3596:95;;-1:-1:-1;;;4718:20:105;;3563:3596:95;;4718:20:105;4377:309;837:15:73;4647:39:105;819:34:73;837:15;819:34;:::i;4647:39:105:-;3563:3596:95;;;;;4647:39:105;4377:309;;:250;837:15:73;4522:105:105;:91;4553:20;819:34:73;837:15;819:34;:::i;:::-;4553:20:105;:::i;:::-;4575:37;;;;4522:91;;;:::i;:105::-;;;4377:250;;4135:94;3563:3596:95;;-1:-1:-1;;;4196:22:105;;3563:3596:95;;4196:22:105;4020:105;4076:38;;;;;;;;:::i;:::-;4020:105;;;;;3563:3596:95;;;;;;-1:-1:-1;;3563:3596:95;;;;;;;-1:-1:-1;;;;;404:28:80;3563:3596:95;;;;;;;;;;-1:-1:-1;;3563:3596:95;;;;;1221:37:105;3563:3596:95;;;;;;;;;;;;;-1:-1:-1;;3563:3596:95;;;;;;954:41:105;-1:-1:-1;;;;;3563:3596:95;;;;;;;;;;;;-1:-1:-1;;3563:3596:95;;;;;;-1:-1:-1;;;;;3563:3596:95;;;;2239:46:105;3563:3596:95;;;;;;;;:::i;:::-;819:34:73;837:15;819:34;:::i;:::-;3563:3596:95;;2239:46:105;:::i;:::-;3563:3596:95;;-1:-1:-1;;;;;3563:3596:95;;;;;;;;;;;;-1:-1:-1;;3563:3596:95;;;;;;;1271:7:103;3563:3596:95;;;;;;;;;-1:-1:-1;;3563:3596:95;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3361:103:30;;;:::i;:::-;3563:3596:95;;:::i;:::-;6308:16:105;;6304:99;;3563:3596:95;;;6431:13:105;3563:3596:95;6417:34:105;;;6413:94;;6548:25;;;:::i;:::-;3563:3596:95;6431:13:105;3563:3596:95;;6653:24:105;;3563:3596:95;;;;;;;;;;;6622:92:105;6679:34;;3563:3596:95;;;6622:92:105;;:::i;:::-;3563:3596:95;6741:29:105;;;:151;;;;;3563:3596:95;6724:223:105;;;;6961:10;:29;6957:80;;7051:40;819:34:73;837:15;819:34;:::i;7051:40:105:-;3563:3596:95;;;;;7051:40:105;;7047:95;;3563:3596:95;;;;7152:78:105;;3563:3596:95;;-1:-1:-1;;;;3563:3596:95;-1:-1:-1;;;3563:3596:95;;;6961:10:105;7280:33;;-1:-1:-1;7280:33:105;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;3563:3596:95;3860:283:30;7152:78:105;3563:3596:95;;-1:-1:-1;;;7196:23:105;;3563:3596:95;;7196:23:105;7047:95;3563:3596:95;;-1:-1:-1;;;7114:17:105;;3563:3596:95;;7114:17:105;6957:80;3563:3596:95;;-1:-1:-1;;;7013:13:105;;3563:3596:95;;7013:13:105;6724:223;3563:3596:95;;-1:-1:-1;;;6924:12:105;;3563:3596:95;;6924:12:105;6741:151;6790:102;837:15:73;;;6790:88:105;837:15:73;6843:34:105;6821:20;819:34:73;837:15;819:34;:::i;6821:20:105:-;6843:34;;;6790:88;;:::i;:102::-;;6741:151;;;;6304:99;6357:35;;;;;;;:::i;:::-;6304:99;;;;3563:3596:95;;;;;;-1:-1:-1;;3563:3596:95;;;;;;;;-1:-1:-1;;;;;3563:3596:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;3563:3596:95;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:95;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4649:553::-;3563:3596;;-1:-1:-1;;;4939:105:95;;-1:-1:-1;;;;;3563:3596:95;;;4939:105;;;3563:3596;;;;;;;;;;;;;;;;;;;;;;;;;4649:553;4939:105;3563:3596;;;;;4939:105;3563:3596;4956:18;-1:-1:-1;;;;;3563:3596:95;4939:105;;;;;;;;;;;4649:553;3563:3596;;;5055:141;;4649:553;:::o;5055:141::-;5112:73;3563:3596;;;5112:73;3563:3596;;;;;;;:::i;:::-;;;;;5112:73;;;3563:3596;5112:73;;;:::i;4939:105::-;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;6788:369;;;6975:44;6788:369;3563:3596;6975:44;;:::i;:::-;3563:3596;;7030:121;;6788:369;:::o;1876:205:105:-;-1:-1:-1;3563:3596:95;;;2016:9:105;3563:3596:95;;;;;-1:-1:-1;;;;;3563:3596:95;2016:56:105;;1876:205;;2016:56;:::i;:::-;3563:3596:95;1876:205:105;:::o;3563:3596:95:-;;;;;;;;;;;;;;;;;-1:-1:-1;;3563:3596:95;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;6172:610::-;6466:55;6172:610;;;;6370:51;3563:3596;6370:51;;;;:::i;:::-;837:15:73;6500:20:95;819:34:73;837:15;819:34;:::i;6466:55:95:-;3563:3596;;6536:30;;;:64;;;6172:610;6532:244;;6172:610;;:::o;6532:244::-;3563:3596;;;;;;6623:142;3563:3596;;;;;;;:::i;:::-;;;6651:100;;;3563:3596;;;;;6623:142;;;6651:100;6623:142;;;3563:3596;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;3563:3596:95;;;;;;:::i;6536:64::-;3563:3596;;;6570:30;;6536:64;;3563:3596;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:95;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3317:13:105;3563:3596:95;-1:-1:-1;;;3563:3596:95;;;;;;;;;;3317:13:105;3563:3596:95;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3563:3596:95;-1:-1:-1;;;;;3563:3596:95;;;;;;;;;;;;;;;;3317:13:105;;3563:3596:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;3563:3596:95;;;;;;-1:-1:-1;;;3563:3596:95;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;5208:958::-;;;;;5643:105;3563:3596;5435:51;;;;;;:::i;:::-;837:15:73;5643:105:95;5531:55;5565:20;819:34:73;837:15;819:34;:::i;5565:20:95:-;5531:55;;;:::i;:::-;3563:3596;;-1:-1:-1;;;5643:105:95;;-1:-1:-1;;;;;3563:3596:95;;;5643:105;;;3563:3596;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5643:105;;3563:3596;5660:18;-1:-1:-1;;;;;3563:3596:95;5643:105;;;;;;;;;;;5208:958;3563:3596;;;5763:30;;;:64;;;5208:958;5763:98;;;;5208:958;5759:401;;5208:958;;;:::o;5759:401::-;5884:265;3563:3596;;;;5884:265;3563:3596;;;;:::i;:::-;;;;5912:223;;;3563:3596;;5912:223;;3563:3596;;;5884:265;;;5912:223;5884:265;;;:::i;5763:98::-;3563:3596;;;5831:30;;5763:98;;:64;3563:3596;;;5797:30;;5763:64;;5643:105;;;;;;;;;;;;;;:::i;:::-;;;;;3563:3596;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;3149:1:97;3563:3596:95;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;3563:3596:95;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;4209:434::-;;;-1:-1:-1;4307:12:95;3563:3596;;;;;4435:78;;;;;;;;;;;;;3563:3596;;;;;;;4435:78;;;;;:::i;:::-;3563:3596;;716:88:93;;3563:3596:95;716:88:93;;;;;;;;;783:4;4435:78:95;716:88:93;;3563:3596:95;;;;;;;;;;;:::i;:::-;716:88:93;3563:3596:95;716:88:93;3563:3596:95;;716:88:93;;;;;;;;:::i;:::-;698:107;;;;;857:45;698:107;;:::i;:::-;3563:3596:95;;;;857:45:93;;;;;;:::i;:::-;916:8;;912:175;;3563:3596:95;;;4361:204;3563:3596;;4361:204;;;;;;:::i;:::-;4576:61;;;;4209:434;;;:::o;4576:61::-;4609:17;3563:3596;;;;4609:17;3563:3596;;4609:17;;;;;3563:3596;;;;;;;;;;;;4609:17;;;;;;;;;:::i;912:175:93:-;3563:3596:95;;;;944:22:93;;;940:36;;990:87;;2505:267:103;-1:-1:-1;3563:3596:95;;;2692:16:103;3563:3596:95;;;;;;;;-1:-1:-1;;;;;3563:3596:95;;;;;;;;;2692:73:103;;2505:267;;2692:73;:::i;3563:3596:95:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:95;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:95;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;3563:3596:95;;-1:-1:-1;3563:3596:95;;;-1:-1:-1;3563:3596:95;:::o;10580:184:97:-;10689:20;;;:::i;:::-;-1:-1:-1;;;;;3563:3596:95;;10726:7:97;3563:3596:95;;10736:12:97;:17;:12;;:17;:::i;:::-;3563:3596:95;;;;;;10580:184:97;:::o;10726:31::-;;;10689:11;10580:184;:::o;3563:3596:95:-;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;3563:3596:95;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;1818:604:97:-;;3563:3596:95;;1946:17:97;1942:83;;3563:3596:95;2049:27:97;3563:3596:95;2049:27:97;3563:3596:95;;2049:27:97;;;;;;:::i;:::-;2120:14;;;;;:::i;:::-;3563:3596:95;;;;;;;;;;;;;;;;2148:22:97;;;2144:77;;2235:21;-1:-1:-1;2235:84:97;;;;1818:604;2231:139;;;;1425:34;;;;:::i;2231:139::-;-1:-1:-1;;2049:27:97;2342:17;3563:3596:95;-1:-1:-1;;;;;3563:3596:95;;:::o;2235:84:97:-;3563:3596:95;;;2269:16:97;3563:3596:95;;2269:16:97;:::i;:::-;3563:3596:95;;;2261:24:97;:57;;;;;2235:84;;;;;;;2261:57;2289:29;2298:8;;;2289:18;2298:8;2289:23;2298:8;;:::i;:::-;2289:18;;:::i;:::-;3563:3596:95;;;;;2289:29:97;;2261:57;;;;2144:77;-1:-1:-1;;;;2049:27:97;2193:17;;;;3563:3596:95;-1:-1:-1;;;;;3563:3596:95;;-1:-1:-1;3563:3596:95;:::o;1942:83:97:-;1425:34;;;;:::i;3563:3596:95:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;3563:3596:95;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;6491:564:103:-;6614:34;6491:564;6614:34;;;;:::i;:::-;3563:3596:95;;-1:-1:-1;;;6664:41:103;;-1:-1:-1;;;;;3563:3596:95;;;6664:41:103;;;3563:3596:95;;;;;6664:41:103;;;3563:3596:95;;;6674:13:103;3563:3596:95;;6664:41:103;;;;;;;-1:-1:-1;6664:41:103;;;6491:564;6663:42;;6659:90;;2684:111:30;6850:27:103;6664:41;2684:111:30;;;:::i;:::-;-1:-1:-1;3563:3596:95;;-1:-1:-1;;;;;;3563:3596:95;-1:-1:-1;;;;;3563:3596:95;;;;;6850:27:103;;:::i;:::-;3563:3596:95;;;;;;;;;;6892:23:103;;;;;;;;;-1:-1:-1;6892:23:103;;;6491:564;3563:3596:95;;;6892:37:103;:64;;;6491:564;6888:112;;3563:3596:95;7010:38:103;;3563:3596:95;;-1:-1:-1;3563:3596:95;;-1:-1:-1;;;;3563:3596:95;;;;;;-1:-1:-1;;;3563:3596:95;;;;;;;;6888:112:103;3563:3596:95;;-1:-1:-1;;;6979:10:103;;6664:41;;6979:10;6892:64;-1:-1:-1;3563:3596:95;;;;6892:64:103;;:23;;;;;;-1:-1:-1;6892:23:103;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;6659:90;3563:3596:95;;-1:-1:-1;;;6728:10:103;;6664:41;;6728:10;6664:41;;;;;;;;;;;;;;:::i;:::-;;;;3470:384:30;-1:-1:-1;;;;;;;;;;;1991:1:30;3563:3596:95;;3670:20:30;3666:88;;1991:1;3563:3596:95;;3470:384:30:o;3666:88::-;3563:3596:95;;-1:-1:-1;;;3713:30:30;;;;;4451:257:103;3563:3596:95;;-1:-1:-1;;;4546:86:103;;467:2:99;3563:3596:95;;;;4546:86:103;;;3563:3596:95;-1:-1:-1;;;;;4546:86:103;3563:3596:95;;;4572:26:103;3563:3596:95;;4546:86:103;;;;;;;-1:-1:-1;4546:86:103;;;4451:257;4636:10;;3563:3596:95;;4546:100:103;4542:160;;4451:257::o;4542:160::-;3563:3596:95;;-1:-1:-1;;;4669:22:103;;4546:86;;4669:22;4546:86;;;;;;;;;;;;;;;:::i;:::-;;;;;3563:3596:95;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;2666:855:97:-;;3563:3596:95;;2880:15:97;2838:11;2905:18;2938:7;2944:1;2938:7;;2934:241;;2666:855;3199:60;;;;;:::i;:::-;3274:8;;;3270:62;;3563:3596:95;3430:7:97;;;;:::i;:::-;13267:109;2838:11;13267:109;;2838:11;13267:109;;3563:3596:95;:::i;:::-;;3498:15:97;3505:7;3563:3596:95;13267:109:97;3563:3596:95;;;;;;;;3479:17:97;;3563:3596:95;-1:-1:-1;;;;;3563:3596:95;;;;3505:7:97;;:::i;:::-;3563:3596:95;;;;3498:15:97;3436:1;;3448:66;;2666:855::o;3270:62::-;3298:23;;2838:11;3298:23;2838:11;3298:23;2838:11;3298:23;2838:11;3298:23;:::o;2934:241::-;2981:14;;;;;:::i;:::-;3563:3596:95;;;;;;;3199:60:97;13267:109;;2838:11;13267:109;3563:3596:95;13267:109:97;;;2838:11;13267:109;;3563:3596:95;;;;;3013:55:97;3009:156;3563:3596:95;;;3088:10:97;3009:156;2934:241;;3009:156;3143:7;;;;;;:::i;:::-;3009:156;2934:241;;5905:168;;6006:20;;;:::i;:::-;3563:3596:95;;;;;;;-1:-1:-1;;3563:3596:95;;;;;;:::i;:::-;;;;;;;5905:168:97:o;3563:3596:95:-;;;;;;;;;;;;14296:213:69;3563:3596:95;14374:24:69;;;;14370:103;;3563:3596:95;14296:213:69;:::o;14370:103::-;3563:3596:95;;;;14421:41:69;;;;;;14452:2;14421:41;;;3563:3596:95;;;;;14421:41:69;3563:3596:95;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;3563:3596:95;;;;;;;;:::i;7558:604:97:-;;3563:3596:95;;7686:17:97;7682:83;;3563:3596:95;7789:27:97;3563:3596:95;7789:27:97;3563:3596:95;;7789:27:97;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;3563:3596:95;;;;;;;;;;;;;;;;7888:22:97;;;7884:77;;7975:21;-1:-1:-1;7975:84:97;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;3563:3596:95;8075:24:97;:::o;7975:84::-;3563:3596:95;;;8009:16:97;3563:3596:95;;8009:16:97;:::i;:::-;3563:3596:95;;;8001:24:97;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:29::-;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;3563:3596:95;7926:24:97;:::o;7682:83::-;7726:28;;;;:::i;3563:3596:95:-;;;;;;;;;;;-1:-1:-1;;;;;3563:3596:95;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;3563:3596:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3323:1122:103:-;;3563:3596:95;;:::i;:::-;;;;3608:16:103;3604:109;;3323:1122;837:15:73;;819:34;837:15;819:34;:::i;:::-;-1:-1:-1;3563:3596:95;;;;3778:27:103;;:13;;-1:-1:-1;;;;;3563:3596:95;3778:13:103;3563:3596:95;3778:27:103;3563:3596:95;;;;;;;3778:29:103;;;;;;;;;;;;;;;3740:67;3778:29;3759:48;3778:29;-1:-1:-1;3778:29:103;;;3759:48;;:::i;3740:67::-;3563:3596:95;;;3740:67:103;;;:107;;;;;3323:1122;3740:197;;;;3323:1122;3723:263;;;3563:3596:95;3778:29:103;3563:3596:95;;;;;;;;;;4025:25:103;;;;;;;;;4010:143;4025:25;;;-1:-1:-1;4025:25:103;;;3323:1122;4113:30;;;3563:3596:95;;;;;;;;;;;4010:143:103;;;;;3778:29;4010:143;;;:::i;:::-;;;-1:-1:-1;;;;;3563:3596:95;4010:143:103;;;;;;;4181:257;4010:143;-1:-1:-1;4010:143:103;;;3323:1122;3996:157;;4293:102;3996:157;;4233:162;3996:157;4207:231;3996:157;;2936:28;:47;:38;:28;;;3563:3596:95;;2936:16:103;3563:3596:95;;;;;;;2936:28:103;3563:3596:95;;;;;;;;;;;;;;;;2936:47:103;4351:43;;;4293:102;;:::i;:::-;4233:162;;:::i;:::-;3463:5:68;;;;3066;;3563:3596:95;3060:42:68;3371:111;;4181:257:103;3323:1122;:::o;4010:143::-;4233:162;4010:143;;;4207:231;4010:143;;;;4293:102;4010:143;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;4025:25;;;;;;;;;;;;;;:::i;:::-;;;;3723:263;3962:13;;;;;;-1:-1:-1;3962:13:103;-1:-1:-1;3962:13:103;:::o;3740:197::-;3886:41;;3867:70;3886:51;;:41;;;3563:3596:95;;3886:29:103;3563:3596:95;;;;;;;3886:51:103;3563:3596:95;;;;;3867:70:103;-1:-1:-1;3740:197:103;;;:107;837:15:73;;3811:36:103;819:34:73;837:15;819:34;:::i;3811:36:103:-;;;;3740:107;;;3778:29;;;;;;;;;;;;;;;:::i;3604:109::-;3662:40;;;;;;;;;;;;:::i;:::-;3604:109;;;;4714:335;;;;3563:3596:95;-1:-1:-1;3563:3596:95;4876:29:103;3563:3596:95;;;;4876:51:103;3563:3596:95;;-1:-1:-1;3563:3596:95;;;;;;;;;;;;;;;;;4876:51:103;3563:3596:95;;;;;-1:-1:-1;4872:171:103;;4714:335;;;:::o;4872:171::-;4962:70;3563:3596:95;4962:51:103;3563:3596:95;-1:-1:-1;3563:3596:95;4876:29:103;3563:3596:95;;;-1:-1:-1;3563:3596:95;;;;;;;;;;;;;;;;;4962:51:103;3563:3596:95;;;;;;;;;;;;5055:221:103;;;3563:3596:95;-1:-1:-1;3563:3596:95;5160:16:103;3563:3596:95;;2936:47:103;:38;5160;3563:3596:95;;-1:-1:-1;3563:3596:95;;;;;;;;;;;;;;;;;5160:38:103;837:15:73;819:34;837:15;819:34;:::i;:::-;3563:3596:95;-1:-1:-1;3563:3596:95;5160:16:103;3563:3596:95;;;-1:-1:-1;3563:3596:95;;;;;;;;;;;;;;;;;2936:47:103;3563:3596:95;;;;;;;;6360:12:97;;;3563:3596:95;;;6360:24:97;6356:75;;5055:221:103;6474:30:97;;;:::i;:::-;3563:3596:95;;;;;6578:12:97;;;;:::i;:::-;;6604:24;;;5055:221:103;-1:-1:-1;6600:188:97;;;-1:-1:-1;;;;3563:3596:95;;;;;;;6644:29:97;:21;;;;:::i;:::-;:29;3563:3596:95;;;;;;;;;;;;;;;;;;;;;6600:188:97;6753:24;;8310:38:71;;-1:-1:-1;;;;;3563:3596:95;;;;;8310:38:71;:::i;:::-;6753:24:97;;;:::i;6604:::-;3563:3596:95;;;;;;6614:14:97;;-1:-1:-1;6604:24:97;;;6356:75;6400:20;;;:::i;:::-;6356:75;;3563:3596:95;;;;;;;;-1:-1:-1;;;;;3563:3596:95;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5282:431:103:-;;;;5487:25;;:23;:13;3563:3596:95;5494:5:103;3563:3596:95;;;;;;;;;5487:23:103;3563:3596:95;;-1:-1:-1;;;5487:25:103;;3563:3596:95;;;;;5487:25:103;;;;;;;5631:65;5487:25;5631:65;5487:25;5494:5;5487:25;;;5282:431;-1:-1:-1;;;;;;3563:3596:95;;;;:::i;:::-;-1:-1:-1;;;;;5677:4:103;3563:3596:95;;;5677:4:103;5487:25;5642:53;;3563:3596:95;;;5631:65:103;;;5487:25;5631:65;;;:::i;:::-;5472:234;;;;;5494:5;3563:3596:95;5472:234:103;3563:3596:95;;;;;;;;;;;;;;5472:234:103;;5487:25;5472:234;;;:::i;:::-;;;;;;;;;;;5282:431;:::o;5472:234::-;;;;;;:::i;:::-;;;:::i;5487:25::-;;;;;;;;;;;;;;:::i;:::-;;;;5719:137;3563:3596:95;5719:137:103;3563:3596:95;5802:47:103;5719:137;5809:5;3563:3596:95;;;;;;;;;;;;;;;;;;5802:47:103;;;;;3563:3596:95;;;;;;5802:47:103;;;;;;;;5719:137;:::o;5802:47::-;;;;;;;;;;;;;:::i;:::-;;5719:137::o;3563:3596:95:-;;;;;;;:::o;:::-;;;;;;;;;;;;5862:623:103;;;5988:12;3563:3596:95;;;;;;;5984:495:103;;5862:623;;;;;;:::o;5984:495::-;3563:3596:95;;-1:-1:-1;;;6033:22:103;;3563:3596:95;6033:22:103;;3563:3596:95;;6033:22:103;;3563:3596:95;;-1:-1:-1;;;;;3563:3596:95;6033:22:103;;;;;;;5988:12;6033:22;;;5984:495;-1:-1:-1;3563:3596:95;;-1:-1:-1;;;6033:22:103;6094:81;;;;;;;;3563:3596:95;;;;-1:-1:-1;;;;;3563:3596:95;;;;;;;;;;;;;;;;;;;;;;6094:81:103;3563:3596:95;;;;6094:81:103;;3563:3596:95;;6094:81:103;;;;;;:::i;:::-;3563:3596:95;6194:9:103;:55;6190:124;;5988:12;6328:141;;;;;;1271:7;6328:141;;5984:495;;;;;;;6190:124;3563:3596:95;;-1:-1:-1;;;6276:23:103;;6033:22;;6276:23;6033:22;6094:81;6033:22;;;6094:81;6033:22;;;;;;;;;;;:::i;:::-;;;;;10310:206:71;3563:3596:95;;10446:8:71;;;:63;;10405:17;10310:206;:::o;10446:63::-;3563:3596:95;;;;;;;;;;10405:17:71;13267:109:97;;10405:17:71;13267:109:97;;;3563:3596:95;;;10310:206:71;:::o;3563:3596:95:-;;;;;;;:::i;:::-;-1:-1:-1;3563:3596:95;;;;;;;:::o;5573:258:97:-;3563:3596:95;5573:258:97;11452:22:71;5573:258:97;3563:3596:95;;:::i;:::-;;;;:::i;:::-;;11452:22:71;:::i;:::-;3563:3596:95;;:::i;:::-;;;;;;5805:17:97;3563:3596:95;;;;;5805:17:97;;3563:3596:95;;;;;;;;:::i;:::-;;;5805:17:97;5759:65;;3563:3596:95;5573:258:97;:::o;6893:76:26:-;;;:::i;:::-;;;:::i;:::-;1949:1:30;-1:-1:-1;;;;;;;;;;;3563:3596:95;6893:76:26:o;3563:3596:95:-;;;;;;;:::i;:::-;-1:-1:-1;3563:3596:95;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;8763:604:105:-;;8969:30;8763:604;3563:3596:95;;:::i;:::-;;;;8905:30:105;;;;;;;;;;;;;:::i;:::-;3563:3596:95;;-1:-1:-1;;;8969:30:105;;3563:3596:95;;;;;;;;-1:-1:-1;;;;;3563:3596:95;8969:30:105;;;;;;;;;;;8763:604;9013:19;;;3563:3596:95;;;;;;;;;;;;;;;9013:36:105;;9009:95;;3563:3596:95;9118:29:105;;9150:1;3563:3596:95;;9118:33:105;9114:102;;9226:34;3563:3596:95;9271:54:105;3563:3596:95;;;;;;;;;;;8969:30:105;3563:3596:95;;;8969:30:105;3563:3596:95;;9226:34:105;3563:3596:95;9271:54:105;3563:3596:95;;9271:54:105;9343:17;8763:604;:::o;9114:102::-;3563:3596:95;;-1:-1:-1;;;9174:31:105;;8969:30;;9174:31;9009:95;3563:3596:95;;-1:-1:-1;;;9072:21:105;;8969:30;;9072:21;8969:30;;;;;;;;;;;;;;;:::i;:::-;;;;;18080:5181:68;18246:1;18241:6;;;18237:53;;18246:1;19217:14;-1:-1:-1;;;19278:16:68;;;19274:92;;18080:5181;22827:18;22717;22607;22498;22387;22278;23216:28;19383:15;19898:6;19383:15;-1:-1:-1;;;23237:6:68;19383:15;;;19379:90;;18080:5181;19493:7;19486:15;;;19482:90;;18080:5181;19596:7;19589:15;;;19585:89;;18080:5181;19698:6;19691:14;;;19687:87;;18080:5181;19798:6;19791:14;;;19787:87;;18080:5181;19891:14;;19887:61;;18080:5181;20374:1;3563:3596:95;18246:1:68;3563:3596:95;22284:6:68;;;;:::i;:::-;3563:3596:95;;;;;22278:18:68;22393:6;;;;:::i;22387:18::-;22504:6;;;;:::i;22498:18::-;22613:6;;;;:::i;22607:18::-;22723:6;;;;:::i;22717:18::-;22833:6;;;;:::i;22827:18::-;23237:6;;;:::i;:::-;23232:11;;;3563:3596:95;23216:28:68;3563:3596:95;;18080:5181:68;:::o;19887:61::-;18246:1;3563:3596:95;19887:61:68;;19787:87;3563:3596:95;;;;;19787:87:68;;;19687;3563:3596:95;;;;;19687:87:68;;;19585:89;3563:3596:95;;;;;19585:89:68;;;19482:90;3563:3596:95;;;;;19482:90:68;;;19379;3563:3596:95;;;;;19379:90:68;;;19274:92;-1:-1:-1;;;;3563:3596:95;-1:-1:-1;3563:3596:95;;;;19274:92:68;;12497:447:97;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;3721:5:68;;;;;;3563:3596:95;;3731:5:68;;;3563:3596:95;;;;;;;;;13267:109:97;-1:-1:-1;13267:109:97;3563:3596:95;13267:109:97;;;-1:-1:-1;13267:109:97;;3563:3596:95;;;;;-1:-1:-1;12771:136:97;3563:3596:95;;;12830:10:97;;12771:136;;12687:230;;;;12771:136;3563:3596:95;;;;;;;;;;;12771:136:97;;;10695:389:71;3563:3596:95;;10871:8:71;;;10895:20;;10833:17;10895:20;10833:17;10895:20;10833:17;10895:20;:::o;10867:211::-;3563:3596:95;;;;;;;;;;10833:17:71;13267:109:97;;10833:17:71;13267:109:97;;;3563:3596:95;11014:1:71;3563:3596:95;;;;;;;11030:37:71;:::o;6999:207:97:-;;7117:34;6999:207;7117:34;;:::i;11486:272::-;;3563:3596:95;11452:22:71;11718:31:97;11486:272;3563:3596:95;;:::i;:::-;;;;:::i;:::-;;11452:22:71;;:::i;3563:3596:95:-;;11718:12:97;3563:3596:95;;;;;11731:17:97;3563:3596:95;;;;;11731:17:97;;3563:3596:95;;11718:12:97;;:31;:::i;:::-;3563:3596:95;;;;;;;;;:::i;:::-;;;;;;11731:17:97;11672:79;;3563:3596:95;11486:272:97;:::o;3563:3596:95:-;;;-1:-1:-1;;;3563:3596:95;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;3563:3596:95;;;;;;;;;;;;;;;:::i;9584:606:71:-;;3563:3596:95;;9737:15:71;9702:17;9762:18;9795:7;9801:1;9795:7;;9791:234;;9584:606;10049:53;;;;;:::i;:::-;10120:8;;;:63;;9702:17;9584:606;:::o;10120:63::-;10168:7;;;:::i;:::-;13267:109:97;9702:17:71;13267:109:97;;9702:17:71;13267:109:97;;3563:3596:95;;;9584:606:71;:::o;9791:234::-;9838:14;;;;;:::i;:::-;3563:3596:95;;;;;;;10049:53:71;13267:109:97;;9702:17:71;13267:109:97;3563:3596:95;13267:109:97;;;9702:17:71;13267:109:97;;3563:3596:95;;;;;9870:48:71;9866:149;3563:3596:95;;;9938:10:71;9866:149;9791:234;;9866:149;9993:7;;;;;;:::i;:::-;9866:149;9791:234;;7084:141:26;3563:3596:95;-1:-1:-1;;;;;;;;;;;3563:3596:95;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;3563:3596:95;;-1:-1:-1;;;7191:17:26;;;;;3563:3596:95;;;-1:-1:-1;;;3563:3596:95;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;3563:3596:95;;;;;;;;;;;:::o;11657:922:71:-;3563:3596:95;;11657:922:71;;;11864:7;;;;11936;11916:28;11936:7;;:::i;:::-;11916:28;13267:109:97;;;;;;13089:293;;11916:28:71;3563:3596:95;;;;;;;;;;;;12103:13:71;;;12099:89;;12251:14;;;;;12285:19;;;;3563:3596:95;;;;;;;;;;;;;;;;;12285:19:71;3563:3596:95;;12423:25:71;;:::o;12247:163::-;3563:3596:95;;;12343:52:71;3563:3596:95;12353:41:71;3563:3596:95;;:::i;:::-;;;;;;;;12353:41:71;-1:-1:-1;;;;;3563:3596:95;;12353:41:71;;;3563:3596:95;12343:52:71;:::i;:::-;12247:163;;12099:89;3563:3596:95;;-1:-1:-1;;;12143:30:71;;;;;11860:713;3563:3596:95;;12479:52:71;3563:3596:95;12489:41:71;3563:3596:95;;:::i;12489:41:71:-;-1:-1:-1;;;;;3563:3596:95;;12489:41:71;;;3563:3596:95;12343:52:71;:::i;12479:::-;11870:1;12545:17;;:::o","linkReferences":{},"immutableReferences":{"59800":[{"start":1147,"length":32}],"59803":[{"start":5518,"length":32},{"start":11350,"length":32}],"64360":[{"start":2920,"length":32}],"64990":[{"start":2054,"length":32},{"start":6428,"length":32},{"start":7441,"length":32}],"67584":[{"start":744,"length":32},{"start":8898,"length":32}],"67587":[{"start":1079,"length":32},{"start":9292,"length":32}],"68317":[{"start":3194,"length":32},{"start":5604,"length":32}]}},"methodIdentifiers":{"BASE_SLASHER_HINTS()":"457821b7","BURNER_GAS_LIMIT()":"d5c24e1a","BURNER_RESERVE()":"2964f8dc","FACTORY()":"2dd31000","NETWORK_MIDDLEWARE_SERVICE()":"2c9d45b3","NETWORK_REGISTRY()":"c0cd7c3e","TYPE()":"bb24fe8a","VAULT_FACTORY()":"103f2907","cumulativeSlash(bytes32,address)":"1a2be2c4","cumulativeSlashAt(bytes32,address,uint48,bytes)":"aa8e6489","executeSlash(uint256,bytes)":"b94c386e","executeSlashHints(address,bytes32,address,uint48)":"69f78920","initialize(bytes)":"439fab91","isBurnerHook()":"34d098ea","latestSlashedCaptureTimestamp(bytes32,address)":"267de1f3","requestSlash(bytes32,address,uint256,uint48,bytes)":"545ce389","requestSlashHints(address,address,bytes32,address,uint256,uint48)":"002a0875","resolver(bytes32,bytes)":"cd05b8a1","resolverAt(bytes32,uint48,bytes)":"31ce4dfe","resolverHint(address,bytes32,uint48)":"a4ef9b4f","resolverHintInternal(bytes32,uint48)":"8f82f931","resolverSetEpochsDelay()":"bc6eac5b","setResolver(uint96,address,bytes)":"9168f9d2","setResolverHints(address,bytes32,uint48)":"1dd5f600","slashRequests(uint256)":"9a896551","slashRequestsLength()":"8f42f9ab","slashableStake(bytes32,address,uint48,bytes)":"aab3595f","staticDelegateCall(address,bytes)":"9f86fd85","vault()":"fbfa77cf","vetoDuration()":"e054e08b","vetoSlash(uint256,bytes)":"f9268d18","vetoSlashHints(address,bytes32,uint48)":"5264679b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseSlasherHints\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBurnerGas\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientSlash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidResolverSetEpochsDelay\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVetoDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoResolver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetworkMiddleware\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotResolver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashPeriodEnded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashRequestCompleted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlashRequestNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoPeriodEnded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoPeriodNotEnded\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"name\":\"ExecuteSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"vetoDeadline\",\"type\":\"uint48\"}],\"name\":\"RequestSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"SetResolver\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"VetoSlash\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASE_SLASHER_HINTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BURNER_RESERVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_MIDDLEWARE_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"cumulativeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"cumulativeSlashAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"executeSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"executeSlashHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isBurnerHook\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"latestSlashedCaptureTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"value\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"requestSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"requestSlashHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"resolver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"resolverAt\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"resolverHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"resolverHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolverSetEpochsDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"identifier\",\"type\":\"uint96\"},{\"internalType\":\"address\",\"name\":\"resolver_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"setResolver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"setResolverHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"slashRequests\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"vetoDeadline\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"completed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slashRequestsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"slashableStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vetoDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"slashIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"vetoSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subnetwork\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"vetoSlashHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"ExecuteSlash(uint256,uint256)\":{\"params\":{\"slashIndex\":\"index of the slash request\",\"slashedAmount\":\"virtual amount of the collateral slashed\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RequestSlash(uint256,bytes32,address,uint256,uint48,uint48)\":{\"params\":{\"captureTimestamp\":\"time point when the stake was captured\",\"operator\":\"operator that could be slashed (if the request is not vetoed)\",\"slashAmount\":\"maximum amount of the collateral to be slashed\",\"slashIndex\":\"index of the slash request\",\"subnetwork\":\"subnetwork that requested the slash\",\"vetoDeadline\":\"deadline for the resolver to veto the slash (exclusively)\"}},\"SetResolver(bytes32,address)\":{\"params\":{\"resolver\":\"address of the resolver\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"}},\"VetoSlash(uint256,address)\":{\"params\":{\"resolver\":\"address of the resolver that vetoed the slash\",\"slashIndex\":\"index of the slash request\"}}},\"kind\":\"dev\",\"methods\":{\"cumulativeSlash(bytes32,address)\":{\"params\":{\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"cumulative slash amount\"}},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"time point to get the cumulative slash amount until (inclusively)\"},\"returns\":{\"_0\":\"cumulative slash amount until the given timestamp (inclusively)\"}},\"executeSlash(uint256,bytes)\":{\"details\":\"Only a network middleware can call this function.\",\"params\":{\"hints\":\"hints for checkpoints' indexes\",\"slashIndex\":\"index of the slash request\"},\"returns\":{\"slashedAmount\":\"virtual amount of the collateral slashed\"}},\"initialize(bytes)\":{\"params\":{\"data\":\"some data to use\"}},\"requestSlash(bytes32,address,uint256,uint48,bytes)\":{\"details\":\"Only a network middleware can call this function.\",\"params\":{\"amount\":\"maximum amount of the collateral to be slashed\",\"captureTimestamp\":\"time point when the stake was captured\",\"hints\":\"hints for checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"slashIndex\":\"index of the slash request\"}},\"resolver(bytes32,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"_0\":\"address of the resolver\"}},\"resolverAt(bytes32,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\",\"timestamp\":\"timestamp to get the resolver at\"},\"returns\":{\"_0\":\"address of the resolver\"}},\"slashRequestsLength()\":{\"returns\":{\"_0\":\"total number of slash requests\"}},\"slashableStake(bytes32,address,uint48,bytes)\":{\"params\":{\"captureTimestamp\":\"time point to get the stake amount at\",\"hints\":\"hints for the checkpoints' indexes\",\"operator\":\"address of the operator\",\"subnetwork\":\"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)\"},\"returns\":{\"amount\":\"slashable amount of the stake\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"vetoSlash(uint256,bytes)\":{\"details\":\"Only a resolver can call this function.\",\"params\":{\"hints\":\"hints for checkpoints' indexes\",\"slashIndex\":\"index of the slash request\"}}},\"version\":1},\"userdoc\":{\"events\":{\"ExecuteSlash(uint256,uint256)\":{\"notice\":\"Emitted when a slash request is executed.\"},\"RequestSlash(uint256,bytes32,address,uint256,uint48,uint48)\":{\"notice\":\"Emitted when a slash request is created.\"},\"SetResolver(bytes32,address)\":{\"notice\":\"Emitted when a resolver is set.\"},\"VetoSlash(uint256,address)\":{\"notice\":\"Emitted when a slash request is vetoed.\"}},\"kind\":\"user\",\"methods\":{\"BURNER_GAS_LIMIT()\":{\"notice\":\"Get a gas limit for the burner.\"},\"BURNER_RESERVE()\":{\"notice\":\"Get a reserve gas between the gas limit check and the burner's execution.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"NETWORK_MIDDLEWARE_SERVICE()\":{\"notice\":\"Get the network middleware service's address.\"},\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"TYPE()\":{\"notice\":\"Get the entity's type.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"cumulativeSlash(bytes32,address)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork.\"},\"cumulativeSlashAt(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint.\"},\"executeSlash(uint256,bytes)\":{\"notice\":\"Execute a slash with a given slash index using hints.\"},\"initialize(bytes)\":{\"notice\":\"Initialize this entity contract by using a given data.\"},\"isBurnerHook()\":{\"notice\":\"Get if the burner is needed to be called on a slashing.\"},\"latestSlashedCaptureTimestamp(bytes32,address)\":{\"notice\":\"Get the latest capture timestamp that was slashed on a subnetwork.\"},\"requestSlash(bytes32,address,uint256,uint48,bytes)\":{\"notice\":\"Request a slash using a subnetwork for a particular operator by a given amount using hints.\"},\"resolver(bytes32,bytes)\":{\"notice\":\"Get a resolver for a given subnetwork using a hint.\"},\"resolverAt(bytes32,uint48,bytes)\":{\"notice\":\"Get a resolver for a given subnetwork at a particular timestamp using a hint.\"},\"resolverSetEpochsDelay()\":{\"notice\":\"Get a delay for networks in epochs to update a resolver.\"},\"slashRequests(uint256)\":{\"notice\":\"Get a particular slash request.\"},\"slashRequestsLength()\":{\"notice\":\"Get a total number of slash requests.\"},\"slashableStake(bytes32,address,uint48,bytes)\":{\"notice\":\"Get a slashable amount of a stake got at a given capture timestamp using hints.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"vault()\":{\"notice\":\"Get the vault's address.\"},\"vetoDuration()\":{\"notice\":\"Get a duration during which resolvers can veto slash requests.\"},\"vetoSlash(uint256,bytes)\":{\"notice\":\"Veto a slash with a given slash index using hints.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/SlasherHints.sol\":\"VetoSlasherHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf\",\"dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x4aaaf1c0737dd16e81f0d2b9833c549747a5ede6873bf1444bc72aa572d03e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eada27d7668eebaea16c3b890aa1b38ffc53965292e26c96f7c44834623f4710\",\"dweb:/ipfs/QmVSWuLtxyCqNbLyY89ptxkvsk4CLLKDQYigEne5Qj8k1L\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a\",\"dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c\",\"dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e\",\"dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0xbdc3bb48ccedb818cd75a6d74a16df55a822e9f6d3cc54c59f576f10aab67b5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2284f25f2478f419d7781573b17a89d0e7c5589a865d55e2d6ed5163aee23aa8\",\"dweb:/ipfs/QmNsr2625APBQiNKpYnX5VcSnYgfUHR9Uzzp9pRXjoDqK7\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44\",\"dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x303ad40a3de8fa808cc30a6fbd5998633f6a89b982e6db1fa981e0566ab445e7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fa8fb92995ead02798e013190b87b84b44cc68668262f045c9b0b4783940e2bf\",\"dweb:/ipfs/QmV1uKGVLKwWisc714R8fCt71gXUQJpaKvdc6LQ8WtvMpL\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/delegator/BaseDelegator.sol\":{\"keccak256\":\"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10\",\"dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3\"]},\"src/contracts/delegator/FullRestakeDelegator.sol\":{\"keccak256\":\"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f\",\"dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE\"]},\"src/contracts/delegator/NetworkRestakeDelegator.sol\":{\"keccak256\":\"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3\",\"dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw\"]},\"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5\",\"dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY\"]},\"src/contracts/delegator/OperatorSpecificDelegator.sol\":{\"keccak256\":\"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa\",\"dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA\"]},\"src/contracts/hints/DelegatorHints.sol\":{\"keccak256\":\"0xd71e9102e99a25ee8b5435779f011a24558f56074aa2b16c18b623b57754ae97\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://29db5552e55dab51bea1ae40ba00ca674cb50fcb10997999a72a94527b6eb591\",\"dweb:/ipfs/QmQrYyTPx73ubNxMhYWJCkprCVFVtuTFcKaabYiKTe71tY\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/OptInServiceHints.sol\":{\"keccak256\":\"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42\",\"dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5\"]},\"src/contracts/hints/SlasherHints.sol\":{\"keccak256\":\"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595\",\"dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/contracts/slasher/BaseSlasher.sol\":{\"keccak256\":\"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06\",\"dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF\"]},\"src/contracts/slasher/Slasher.sol\":{\"keccak256\":\"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61\",\"dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3\"]},\"src/contracts/slasher/VetoSlasher.sol\":{\"keccak256\":\"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429\",\"dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x7ee6dbf060c45d6eba95315f4ac0b3b467dd9c4999b84c31d6f66d4d8b53a116\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://301948b8ea522db292aa2722ba42def3911dae95f0b376f7023c3fef470f8676\",\"dweb:/ipfs/QmSDbP2HdzhDAzstr8Zz5isEAcSkma8ABc5UwPsoazaumZ\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/delegator/IDelegatorHook.sol\":{\"keccak256\":\"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780\",\"dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW\"]},\"src/interfaces/delegator/IFullRestakeDelegator.sol\":{\"keccak256\":\"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e\",\"dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A\"]},\"src/interfaces/delegator/INetworkRestakeDelegator.sol\":{\"keccak256\":\"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad\",\"dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z\"]},\"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol\":{\"keccak256\":\"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20\",\"dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ\"]},\"src/interfaces/delegator/IOperatorSpecificDelegator.sol\":{\"keccak256\":\"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441\",\"dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/slasher/IBurner.sol\":{\"keccak256\":\"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447\",\"dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW\"]},\"src/interfaces/slasher/ISlasher.sol\":{\"keccak256\":\"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1\",\"dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ\"]},\"src/interfaces/slasher/IVetoSlasher.sol\":{\"keccak256\":\"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508\",\"dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"baseSlasherHints","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientBurnerGas"},{"inputs":[],"type":"error","name":"InsufficientSlash"},{"inputs":[],"type":"error","name":"InvalidCaptureTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidResolverSetEpochsDelay"},{"inputs":[],"type":"error","name":"InvalidVetoDuration"},{"inputs":[],"type":"error","name":"NoBurner"},{"inputs":[],"type":"error","name":"NoResolver"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotNetworkMiddleware"},{"inputs":[],"type":"error","name":"NotResolver"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"SlashPeriodEnded"},{"inputs":[],"type":"error","name":"SlashRequestCompleted"},{"inputs":[],"type":"error","name":"SlashRequestNotExist"},{"inputs":[],"type":"error","name":"VetoPeriodEnded"},{"inputs":[],"type":"error","name":"VetoPeriodNotEnded"},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256","indexed":true},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false}],"type":"event","name":"ExecuteSlash","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256","indexed":true},{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"slashAmount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false},{"internalType":"uint48","name":"vetoDeadline","type":"uint48","indexed":false}],"type":"event","name":"RequestSlash","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32","indexed":true},{"internalType":"address","name":"resolver","type":"address","indexed":false}],"type":"event","name":"SetResolver","anonymous":false},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256","indexed":true},{"internalType":"address","name":"resolver","type":"address","indexed":true}],"type":"event","name":"VetoSlash","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASE_SLASHER_HINTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_GAS_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BURNER_RESERVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TYPE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"cumulativeSlash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"cumulativeSlashAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"executeSlash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"executeSlashHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isBurnerHook","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"latestSlashedCaptureTimestamp","outputs":[{"internalType":"uint48","name":"value","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"requestSlash","outputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"requestSlashHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"resolver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"resolverAt","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"resolverHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"resolverHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"resolverSetEpochsDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint96","name":"identifier","type":"uint96"},{"internalType":"address","name":"resolver_","type":"address"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setResolver"},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"setResolverHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"slashRequests","outputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"uint48","name":"vetoDeadline","type":"uint48"},{"internalType":"bool","name":"completed","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"slashRequestsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"slashableStake","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vetoDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"uint256","name":"slashIndex","type":"uint256"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"vetoSlash"},{"inputs":[{"internalType":"address","name":"slasher","type":"address"},{"internalType":"bytes32","name":"subnetwork","type":"bytes32"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"vetoSlashHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]}],"devdoc":{"kind":"dev","methods":{"cumulativeSlash(bytes32,address)":{"params":{"operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"cumulative slash amount"}},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"time point to get the cumulative slash amount until (inclusively)"},"returns":{"_0":"cumulative slash amount until the given timestamp (inclusively)"}},"executeSlash(uint256,bytes)":{"details":"Only a network middleware can call this function.","params":{"hints":"hints for checkpoints' indexes","slashIndex":"index of the slash request"},"returns":{"slashedAmount":"virtual amount of the collateral slashed"}},"initialize(bytes)":{"params":{"data":"some data to use"}},"requestSlash(bytes32,address,uint256,uint48,bytes)":{"details":"Only a network middleware can call this function.","params":{"amount":"maximum amount of the collateral to be slashed","captureTimestamp":"time point when the stake was captured","hints":"hints for checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"slashIndex":"index of the slash request"}},"resolver(bytes32,bytes)":{"params":{"hint":"hint for the checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"_0":"address of the resolver"}},"resolverAt(bytes32,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)","timestamp":"timestamp to get the resolver at"},"returns":{"_0":"address of the resolver"}},"slashRequestsLength()":{"returns":{"_0":"total number of slash requests"}},"slashableStake(bytes32,address,uint48,bytes)":{"params":{"captureTimestamp":"time point to get the stake amount at","hints":"hints for the checkpoints' indexes","operator":"address of the operator","subnetwork":"full identifier of the subnetwork (address of the network concatenated with the uint96 identifier)"},"returns":{"amount":"slashable amount of the stake"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"vetoSlash(uint256,bytes)":{"details":"Only a resolver can call this function.","params":{"hints":"hints for checkpoints' indexes","slashIndex":"index of the slash request"}}},"version":1},"userdoc":{"kind":"user","methods":{"BURNER_GAS_LIMIT()":{"notice":"Get a gas limit for the burner."},"BURNER_RESERVE()":{"notice":"Get a reserve gas between the gas limit check and the burner's execution."},"FACTORY()":{"notice":"Get the factory's address."},"NETWORK_MIDDLEWARE_SERVICE()":{"notice":"Get the network middleware service's address."},"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"TYPE()":{"notice":"Get the entity's type."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"cumulativeSlash(bytes32,address)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork."},"cumulativeSlashAt(bytes32,address,uint48,bytes)":{"notice":"Get a cumulative slash amount for an operator on a subnetwork until a given timestamp (inclusively) using a hint."},"executeSlash(uint256,bytes)":{"notice":"Execute a slash with a given slash index using hints."},"initialize(bytes)":{"notice":"Initialize this entity contract by using a given data."},"isBurnerHook()":{"notice":"Get if the burner is needed to be called on a slashing."},"latestSlashedCaptureTimestamp(bytes32,address)":{"notice":"Get the latest capture timestamp that was slashed on a subnetwork."},"requestSlash(bytes32,address,uint256,uint48,bytes)":{"notice":"Request a slash using a subnetwork for a particular operator by a given amount using hints."},"resolver(bytes32,bytes)":{"notice":"Get a resolver for a given subnetwork using a hint."},"resolverAt(bytes32,uint48,bytes)":{"notice":"Get a resolver for a given subnetwork at a particular timestamp using a hint."},"resolverSetEpochsDelay()":{"notice":"Get a delay for networks in epochs to update a resolver."},"slashRequests(uint256)":{"notice":"Get a particular slash request."},"slashRequestsLength()":{"notice":"Get a total number of slash requests."},"slashableStake(bytes32,address,uint48,bytes)":{"notice":"Get a slashable amount of a stake got at a given capture timestamp using hints."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"vault()":{"notice":"Get the vault's address."},"vetoDuration()":{"notice":"Get a duration during which resolvers can veto slash requests."},"vetoSlash(uint256,bytes)":{"notice":"Veto a slash with a given slash index using hints."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/SlasherHints.sol":"VetoSlasherHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866","urls":["bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf","dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab","urls":["bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89","dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606","urls":["bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1","dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x4aaaf1c0737dd16e81f0d2b9833c549747a5ede6873bf1444bc72aa572d03e98","urls":["bzz-raw://eada27d7668eebaea16c3b890aa1b38ffc53965292e26c96f7c44834623f4710","dweb:/ipfs/QmVSWuLtxyCqNbLyY89ptxkvsk4CLLKDQYigEne5Qj8k1L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol":{"keccak256":"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549","urls":["bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a","dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed","urls":["bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0","dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d","urls":["bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c","dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575","urls":["bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e","dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0xbdc3bb48ccedb818cd75a6d74a16df55a822e9f6d3cc54c59f576f10aab67b5f","urls":["bzz-raw://2284f25f2478f419d7781573b17a89d0e7c5589a865d55e2d6ed5163aee23aa8","dweb:/ipfs/QmNsr2625APBQiNKpYnX5VcSnYgfUHR9Uzzp9pRXjoDqK7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f","urls":["bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44","dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x303ad40a3de8fa808cc30a6fbd5998633f6a89b982e6db1fa981e0566ab445e7","urls":["bzz-raw://fa8fb92995ead02798e013190b87b84b44cc68668262f045c9b0b4783940e2bf","dweb:/ipfs/QmV1uKGVLKwWisc714R8fCt71gXUQJpaKvdc6LQ8WtvMpL"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/delegator/BaseDelegator.sol":{"keccak256":"0x7c54d491fdd4415b764a9c8defa068e56d4c0c8c9419be0053a1d377669290e8","urls":["bzz-raw://9238bfbad0f6eeb0dc7727724de14380f1980b395902269703d5e2ef07e52e10","dweb:/ipfs/QmPJn1V4HNXcEghYvogGuSTF24dSQUPosR5qtsXcmNqRm3"],"license":"BUSL-1.1"},"src/contracts/delegator/FullRestakeDelegator.sol":{"keccak256":"0x0a81c4f8e72914563a9cb771e93acf889c71ea36b7bec040e4eb562b199d5af1","urls":["bzz-raw://6fc66b6ba02da77046a0bbbd1dd407a62c08f52e04486c9cbd2cb1cca3da555f","dweb:/ipfs/QmZQivK1ZnMxfRQQ5aLpV9co5u55wQVNev5Rg1hzAqxhkE"],"license":"BUSL-1.1"},"src/contracts/delegator/NetworkRestakeDelegator.sol":{"keccak256":"0xd3a8e6522f9c6fdcc2da837c9023afd6bdff2bce45a35590320c475519e3636d","urls":["bzz-raw://58b17a87f6554f08376f9ea7fedf486a4aa75801bf0ad8b23ff5a46959b6b7a3","dweb:/ipfs/QmSTmNh67tYt8CmjVZb57r8N3qX5yeYdMApKPJm3qvQgQw"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorNetworkSpecificDelegator.sol":{"keccak256":"0x031a10722b9ec49048f0952710401131290adb87e71caf294e864e7ac3b98a16","urls":["bzz-raw://72428febc875134b2f29205e6f294634a1c22a7d5c78d6a9cb2f8196f107c9b5","dweb:/ipfs/QmTPwXR6h5oytckmkLrHdKeEMdphJxceDhYUR4zvQeWAwY"],"license":"BUSL-1.1"},"src/contracts/delegator/OperatorSpecificDelegator.sol":{"keccak256":"0x630ce62fa30b9f3349ab7a8cf8dbf041319febc6dd757be2f94d3d25944ed328","urls":["bzz-raw://c2ac59d47ce57d2a6819ae9833e1a618a371eccff93eb5ab367b201b01f42bfa","dweb:/ipfs/QmdBpGMBivpNPv2WbH8vnCUy5xkVeaxQvGgqi33vKCz1kA"],"license":"BUSL-1.1"},"src/contracts/hints/DelegatorHints.sol":{"keccak256":"0xd71e9102e99a25ee8b5435779f011a24558f56074aa2b16c18b623b57754ae97","urls":["bzz-raw://29db5552e55dab51bea1ae40ba00ca674cb50fcb10997999a72a94527b6eb591","dweb:/ipfs/QmQrYyTPx73ubNxMhYWJCkprCVFVtuTFcKaabYiKTe71tY"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/OptInServiceHints.sol":{"keccak256":"0x95d9407900d27b9f4a1233b772aeed809c07b2dc5b31cfc9fa77ca26514c49e5","urls":["bzz-raw://a13a8877e312d7e6b8b85bde3668c5d84ff5ecc83f762cd573f2b7104c64eb42","dweb:/ipfs/QmYV2J55acuGzCNnS3juABuUHY5U1xc8g8o9jwEyFFdeG5"],"license":"BUSL-1.1"},"src/contracts/hints/SlasherHints.sol":{"keccak256":"0xd77c5f3bbb0265af8ecd947df88f6f9684e136d80052b5292f5b29aaa3566a3f","urls":["bzz-raw://484a26504bf6706202ec82a9a4cfa7d196bbc552b5b78ced25bf7130c2842595","dweb:/ipfs/QmaQqmkoZoUWEam4R94vmajzH3gKqFqpZQwFbrHDsN1peV"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/contracts/slasher/BaseSlasher.sol":{"keccak256":"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6","urls":["bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06","dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF"],"license":"BUSL-1.1"},"src/contracts/slasher/Slasher.sol":{"keccak256":"0xeee0cb25fad58d496fdcc641d852d11bae06e6ceed5230ae21150964175c494f","urls":["bzz-raw://34aa27d21246a1bcee0b6a2afa8d9d613441156362430392f75d176511d58c61","dweb:/ipfs/Qmf53Y3zdGfH4PU2zpSGeHZ8mMLzLXCtmkQrG5mnVJECQ3"],"license":"BUSL-1.1"},"src/contracts/slasher/VetoSlasher.sol":{"keccak256":"0xeccc8128de5e1ad499c067feac1c526638fbbac1a18b96726fc7507969fd5897","urls":["bzz-raw://cdfcf281338423625acbccdf8810115b258ef7cfe4aa3c10b8911ead1aa85429","dweb:/ipfs/QmZFsDvZXpkFkx4PHcDXAVPN3ZCAahbSVfYpSVrMBvbt4k"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x7ee6dbf060c45d6eba95315f4ac0b3b467dd9c4999b84c31d6f66d4d8b53a116","urls":["bzz-raw://301948b8ea522db292aa2722ba42def3911dae95f0b376f7023c3fef470f8676","dweb:/ipfs/QmSDbP2HdzhDAzstr8Zz5isEAcSkma8ABc5UwPsoazaumZ"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/delegator/IDelegatorHook.sol":{"keccak256":"0xc51aa8d7d1f6c8043ee819b7aeb86da0e993912e1442098df897e299f01f9f46","urls":["bzz-raw://adddf5cb2ba282aeb576b26efb28640f865a1721cc9b6eee8b3ee0457a2c9780","dweb:/ipfs/QmNYgAmnLRwWZbhTuQhZs9rx4zcme1df5mEepkrniorSoW"],"license":"MIT"},"src/interfaces/delegator/IFullRestakeDelegator.sol":{"keccak256":"0xa3c8cb2e45d4d8ce90e95263bea40c01dc400f05ad65bc29597d878606be5e7d","urls":["bzz-raw://782cf5e201aa4cca037ebafd3807a68ff1cc721d5b8416a35244db0d0607369e","dweb:/ipfs/QmQkJks6x7CKndeTPa9LxgTNygD5uEi7obhADhpq1Lsr9A"],"license":"MIT"},"src/interfaces/delegator/INetworkRestakeDelegator.sol":{"keccak256":"0xe7030fe30389a147fd710e3436ec346b4842695fd3e65a81b95375c9f1d633fc","urls":["bzz-raw://739c7e66d301778054f5c90bee45ec9438f68afba8a03eaaac52064c73b115ad","dweb:/ipfs/QmfZ2ytKcTykAc76nxhg8ikUXV8NdBpetqb8W4YWPcox1Z"],"license":"MIT"},"src/interfaces/delegator/IOperatorNetworkSpecificDelegator.sol":{"keccak256":"0x74b95e64d29769202d45dd277bb830f623ff3d41ce77b80ce3ee4e318a5c71ec","urls":["bzz-raw://e512b903aae5c1b8a028c6e3f4f6223b5cb5d704503cfa6bd37b5346868f5c20","dweb:/ipfs/QmZim9YExsPWtyxyeui993HTKAEmrg8MUcSkZ77Gp2JcuZ"],"license":"MIT"},"src/interfaces/delegator/IOperatorSpecificDelegator.sol":{"keccak256":"0x72075cab585dc17240cc3e32bc99b92f0d5627ddd988fed680e3e1a52d5a01e4","urls":["bzz-raw://7448bc90699409ae61d85216b5efc2143a37f0f73354be2aea993bc54afca441","dweb:/ipfs/QmXE4gAxM8pHosZK8mcTcj17puBx484meDCcmrDePskGHZ"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/slasher/IBurner.sol":{"keccak256":"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b","urls":["bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447","dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW"],"license":"MIT"},"src/interfaces/slasher/ISlasher.sol":{"keccak256":"0x34d226d67a3d5e16571f2fac91a8b9773551bcc41c88a96279669dd78d192625","urls":["bzz-raw://7a6e8c1462ee4a1b0f745414be043c09012ea676613790aba004b06c85c980d1","dweb:/ipfs/QmadjNEbHKRthtA1EeNy3Kg2sXpejH2KBeHm8QZtBPvXbJ"],"license":"MIT"},"src/interfaces/slasher/IVetoSlasher.sol":{"keccak256":"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9","urls":["bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508","dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":95} \ No newline at end of file diff --git a/out/Vault.sol/Vault.json b/out/Vault.sol/Vault.json index daec43f8..adb89262 100644 --- a/out/Vault.sol/Vault.json +++ b/out/Vault.sol/Vault.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"slasherFactory","type":"address","internalType":"address"},{"name":"vaultFactory","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DELEGATOR_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEPOSITOR_WHITELIST_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeShares","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStakeAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimBatch","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epochs","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"currentEpoch","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"currentEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"delegator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"onBehalfOf","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"depositedAmount","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"depositLimit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"depositWhitelist","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"epochAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"epochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"epochDurationInit","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialVersion","type":"uint64","internalType":"uint64"},{"name":"owner_","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isDelegatorInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositLimit","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositorWhitelisted","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSlasherInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isWithdrawalsClaimed","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"migrate","inputs":[{"name":"newVersion","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nextEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"previousEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"redeem","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"withdrawnAssets","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegator","inputs":[{"name":"delegator_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositLimit","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositWhitelist","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setIsDepositLimit","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSlasher","inputs":[{"name":"slasher_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slashableBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slasher","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"totalStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"burnedShares","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawalShares","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalSharesOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawals","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalsOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"Claim","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epoch","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ClaimBatch","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epochs","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"onBehalfOf","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"slashedAmount","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":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDelegator","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDepositLimit","inputs":[{"name":"limit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetDepositWhitelist","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetIsDepositLimit","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetSlasher","inputs":[{"name":"slasher","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"withdrawer","type":"address","indexed":true,"internalType":"address"},{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"burnedShares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"mintedShares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadyClaimed","inputs":[]},{"type":"error","name":"AlreadyInitialized","inputs":[]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DelegatorAlreadyInitialized","inputs":[]},{"type":"error","name":"DepositLimitReached","inputs":[]},{"type":"error","name":"InsufficientClaim","inputs":[]},{"type":"error","name":"InsufficientDeposit","inputs":[]},{"type":"error","name":"InsufficientRedemption","inputs":[]},{"type":"error","name":"InsufficientWithdrawal","inputs":[]},{"type":"error","name":"InvalidAccount","inputs":[]},{"type":"error","name":"InvalidCaptureEpoch","inputs":[]},{"type":"error","name":"InvalidClaimer","inputs":[]},{"type":"error","name":"InvalidCollateral","inputs":[]},{"type":"error","name":"InvalidDelegator","inputs":[]},{"type":"error","name":"InvalidEpoch","inputs":[]},{"type":"error","name":"InvalidEpochDuration","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidLengthEpochs","inputs":[]},{"type":"error","name":"InvalidOnBehalfOf","inputs":[]},{"type":"error","name":"InvalidRecipient","inputs":[]},{"type":"error","name":"InvalidSlasher","inputs":[]},{"type":"error","name":"InvalidTimestamp","inputs":[]},{"type":"error","name":"MissingRoles","inputs":[]},{"type":"error","name":"NoPreviousEpoch","inputs":[]},{"type":"error","name":"NotDelegator","inputs":[]},{"type":"error","name":"NotFactory","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotWhitelistedDepositor","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SlasherAlreadyInitialized","inputs":[]},{"type":"error","name":"TooMuchRedeem","inputs":[]},{"type":"error","name":"TooMuchWithdraw","inputs":[]}],"bytecode":{"object":"0x60e03461013c57601f614a7f38819003918201601f1916830192916001600160401b03918285118486101761014057816060928592604097885283398101031261013c5761004c82610154565b916100648461005d60208401610154565b9201610154565b9260805260a0527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82861c1661012b5780808316036100e7575b50505060c05251614916908161016982396080518181816111a001526116d3015260a05181818161183c0152611d25015260c05181818161077001526109a30152f35b6001600160401b0319909116811790915582519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a4565b845163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361013c5756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104345780631415519b1461042f5780631b66c9e11461042a5780631e9a695014610425578063248a9ca31461042057806327810b6e1461041b578063281f5752146104165780632abe3048146104115780632d73c69c1461040c5780632dd31000146104075780632f2ff15d1461040257806336568abe146103fd578063392e53cd146103f85780634105a7dd146103f357806346361671146103ee57806347e7ef24146103e957806348d3b775146103e45780634ff0876a146103df57806350861adc146103da57806350f22068146103d55780635346e34f146103d057806354fd4d50146103cb57806357ec83cc146103c657806359f769a9146103c15780635cc07076146103bc57806361a8c8c4146103b75780636da3e06d146103b25780636ec1e3f8146103ad578063715018a6146103a85780637278e31c146103a357806373790ab31461039e5780637667180814610399578063794b15b7146103945780637953b33b1461038f5780637c04c80a1461038a578063810da75d1461038557806383cd9cc31461038057806387df07881461037b5780638b0e9f3f146103765780638da5cb5b1461037157806391d148541461036c5780639d66201b146103675780639f86fd8514610362578063a1b122021461035d578063a217fddf14610358578063a21a1df914610353578063a28614661461034e578063a3b5417214610349578063a5d0322314610344578063aabc24961461033f578063aad3ec961461033a578063afba70ad14610335578063b134427114610330578063bd49c35f1461032b578063bdc8144b14610326578063bfefcd7b14610321578063c31e8dd71461031c578063ce9b793014610317578063d547741f14610312578063d8dfeb451461030d578063db38871514610308578063ecf7085814610303578063efb559d6146102fe578063f2fde38b146102f9578063f3fef3a3146102f45763f5e7ee0f146102ef575f80fd5b6123c2565b61231c565b6122ef565b6121a0565b612183565b612149565b61211e565b6120d2565b6120aa565b612040565b612026565b611f48565b611f2e565b611f06565b611edc565b611e1b565b611c64565b611c1e565b611bd1565b611ade565b611aa4565b611a8a565b611a66565b611999565b61195f565b611901565b6118cd565b61186b565b611827565b61166e565b611655565b6115ef565b6115c8565b611588565b61156e565b61152d565b61125b565b6111f4565b6111cf565b61118b565b611138565b61110e565b6110e7565b610faf565b610f7d565b610ee8565b610ecf565b610e72565b610e52565b610e31565b610b73565b610b4b565b610ab0565b610a6b565b610a20565b6109d2565b61098e565b61091a565b61072b565b61065d565b610635565b6105fc565b610513565b6104c8565b61048e565b3461048a57602036600319011261048a5760043563ffffffff60e01b811680910361048a57602090637965db0b60e01b8114908115610479575b506040519015158152f35b6301ffc9a760e01b1490505f61046e565b5f80fd5b3461048a575f36600319011261048a5760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b3461048a575f36600319011261048a5760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b6001600160a01b0381160361048a57565b3461048a57604036600319011261048a5760043561053081610502565b6024359061053c612be7565b6001600160a01b038116156105eb57335f908152600e6020526040902061056790613c65565b613c65565b82116105d957610587610578613b78565b610580613bf1565b9084613cb2565b9182156105c4578261059892612c16565b906105af60015f805160206148a183398151915255565b604080519182526020820192909252f35b0390f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b3461048a57602036600319011261048a576004355f525f805160206148818339815191526020526020600160405f200154604051908152f35b3461048a575f36600319011261048a576001546040516001600160a01b039091168152602090f35b3461048a575f36600319011261048a5761067561293b565b80156106d65760015465ffffffffffff8160a01c16915f1981019081116106d1576106a39160d01c9061241b565b81018091116106d1576106b86105c091612d90565b60405165ffffffffffff90911681529081906020820190565b6123ec565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b038216820361048a57565b9181601f8401121561048a578235916001600160401b03831161048a576020838186019501011161048a57565b3461048a57604036600319011261048a576107446106e8565b6001600160401b0360243581811161048a576107649036906004016106fe565b505061076e612be7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036107ea575f805160206148c1833981519152549060ff8260401c169283156107da575b5050506107c8575f80fd5b60405163f92ee8a960e01b8152600490fd5b81169116101590505f80806107bd565b604051631966391b60e11b8152600490fd5b65ffffffffffff81160361048a57565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761083b57604052565b61080c565b604081019081106001600160401b0382111761083b57604052565b90601f801991011681019081106001600160401b0382111761083b57604052565b6040519061016082018281106001600160401b0382111761083b57604052565b604051906108a982610840565b565b6001600160401b03811161083b57601f01601f191660200190565b9291926108d2826108ab565b916108e0604051938461085b565b82948184528183011161048a578281602093845f960137010152565b9080601f8301121561048a57816020610917933591016108c6565b90565b3461048a57606036600319011261048a5760043561093781610502565b60243590610944826107fc565b604435906001600160401b03821161048a5760209261096a6109869336906004016108fc565b6001600160a01b039092165f908152600e855260409020612f7d565b604051908152f35b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a57604036600319011261048a57610a1e6024356004356109f582610502565b805f525f80516020614881833981519152602052610a19600160405f200154613154565b613454565b005b3461048a57604036600319011261048a57602435610a3d81610502565b336001600160a01b03821603610a5957610a1e9060043561348a565b60405163334bd91960e11b8152600490fd5b3461048a575f36600319011261048a5760ff60025460a01c1680610a97575b6020906040519015158152f35b5060035460a01c60ff16610a8a565b8015150361048a57565b3461048a57602036600319011261048a57600435610acd81610aa6565b610ad5612be7565b610add613049565b5f54901515908160ff8216151514610b395760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f805160206148a183398151915255005b60405163a741a04560e01b8152600490fd5b3461048a575f36600319011261048a57602065ffffffffffff60015460a01c16604051908152f35b3461048a5760408060031936011261048a576004803591610b9383610502565b610b9b612be7565b6001600160a01b0391838316908115610e23575f5460ff811680610e0a575b610dfb5783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610dd3575f93610dd8575b50610c0f90602435903090339061351c565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610dd357610c4e935f92610da6575b505061240e565b938415610d975760081c60ff1680610d82575b610d745750906105c091610d12610c76613b78565b95610cbf610c82613bf1565b610caa610c908a838b613cb2565b99610ca48a610c9e42612d90565b9261243c565b90613670565b5050610cb989610c9e42612d90565b90613750565b50506001600160a01b0381165f908152600e6020526040902090610d0c88610d07610562610cec42612d90565b6001600160a01b039095165f908152600e6020526040902090565b61243c565b9161382c565b505081518481526020810186905233907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a3610d5e60015f805160206148a183398151915255565b5191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50610d8f84610d07613b78565b815410610c61565b50825163070f6eed60e11b8152fd5b610dc59250803d10610dcc575b610dbd818361085b565b81019061246a565b5f80610c47565b503d610db3565b612479565b610c0f919350610df490853d8711610dcc57610dbd818361085b565b9290610bfd565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610bba565b8251630d534ce360e11b8152fd5b3461048a575f36600319011261048a57602060ff5f54166040519015158152f35b3461048a575f36600319011261048a57602060015460d01c604051908152f35b3461048a575f36600319011261048a57602060ff60025460a01c166040519015158152f35b90604060031983011261048a57600435610eb0816107fc565b91602435906001600160401b03821161048a57610917916004016108fc565b3461048a576020610986610ee236610e97565b90612df3565b3461048a57602036600319011261048a57600435610f0581610aa6565b610f0d612be7565b610f156130a6565b5f54901515908160ff8260081c16151514610b395761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610a1e60015f805160206148a183398151915255565b3461048a575f36600319011261048a5760206001600160401b035f805160206148c18339815191525416604051908152f35b3461048a57606036600319011261048a57610fc86106e8565b602435610fd481610502565b6001600160401b039160443583811161048a57610ff59036906004016106fe565b5f805160206148c18339815191529491855494838616806110d65760ff8760401c169081156110c9575b506107c8577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966110c49661108c958716906001600160401b0319161790556110875f805160206148c1833981519152600160401b68ff000000000000000019825416179055565b612484565b5f805160206148c1833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f61101f565b60405162dc149f60e41b8152600490fd5b3461048a57602036600319011261048a57602061098660043561110981610502565b6128a4565b3461048a57602036600319011261048a576004355f526006602052602060405f2054604051908152f35b3461048a575f36600319011261048a5760015465ffffffffffff61116e818360a01c169261116461293b565b9060d01c9061241b565b82018092116106d157611182602092612d90565b60405191168152f35b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a575f36600319011261048a57602060ff60035460a01c166040519015158152f35b3461048a575f36600319011261048a5761120c6139be565b5f8051602061482183398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461048a57604036600319011261048a5760043560243561127b816107fc565b611283612be7565b6003546112a0906001600160a01b03165b6001600160a01b031690565b330361151b576112ae61293b565b906112b88161296f565b908215158061150a575b8015611501575b6114ef576105c0937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c7926112fb613b78565b946113166113088261242e565b5f52600660205260405f2090565b5490828103611409575061132a818761243c565b8381188185100281189687806113c2575b50505050505b8361138e575b6040805191825265ffffffffffff929092166020820152908101839052606090a161137e60015f805160206148a183398151915255565b6040519081529081906020820190565b5f546113bd9085906113ab9060101c6001600160a01b0316611294565b6001546001600160a01b031690613a8d565b611347565b6113fe93610c4783610ca46113e86113e1611308986113f89888613a00565b809661240e565b946113f242612d90565b9261240e565b9261242e565b555f8080808761133b565b915061141d825f52600660205260405f2090565b549061142d81610d07848a61243c565b908482188286100282189788611448575b5050505050611341565b6114bd93836114709361147d8c6114786114666114ae998884613a00565b9788958584613a00565b94859261240e565b61240e565b938484106114c8575b610c4790610ca461149c9596976113f242612d90565b6114a86113088761242e565b5561240e565b915f52600660205260405f2090565b555f8080808061143e565b916114e4610c47916114de8661149c979861240e565b9061243c565b859450929050611486565b604051635e18d2a560e01b8152600490fd5b508282116112c9565b5061151483612400565b82106112c2565b60405163dabc4ad960e01b8152600490fd5b3461048a575f36600319011261048a5760015465ffffffffffff808260a01c169161155661293b565b600181018091116106d15761116e9160d01c9061241b565b3461048a575f36600319011261048a57602061098661293b565b3461048a57602036600319011261048a576004356115a581610502565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b3461048a57602036600319011261048a5760206109866004356115ea816107fc565b61296f565b3461048a57604036600319011261048a5760043561160c81610502565b6024356001600160401b0380821161048a573660238301121561048a57816004013590811161048a573660248260051b8401011161048a576105c092602461137e9301906129aa565b3461048a57602061098661166836610e97565b90612ec8565b3461048a5760208060031936011261048a57600480359061168e82610502565b611696612be7565b60025460a01c60ff16611818576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f916117eb575b50156117db5760405163fbfa77cf60e01b8152838516949082818581895afa928315610dd3575f936117ac575b50503091160361179d5750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610a1e60015f805160206148a183398151915255565b60405163b9f0f17160e01b8152fd5b6117cc929350803d106117d4575b6117c4818361085b565b810190612b03565b905f80611730565b503d6117ba565b506040516324e5af8d60e21b8152fd5b61180b9150823d8411611811575b611803818361085b565b810190612ae3565b5f611703565b503d6117f9565b604051631380833b60e01b8152fd5b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a575f36600319011261048a5761188361293b565b61188b613b78565b90805f52600660205260405f205482018092116106d157600181018091116106d1575f52600660205260405f205481018091116106d157602090604051908152f35b3461048a575f36600319011261048a575f80516020614821833981519152546040516001600160a01b039091168152602090f35b3461048a57604036600319011261048a57602060ff61195360243561192581610502565b6004355f525f80516020614881833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461048a57602036600319011261048a5760043561197c81610502565b60018060a01b03165f52600e602052602061098660405f20613c65565b3461048a5760408060031936011261048a576004356119b781610502565b6024356001600160401b03811161048a575f80611a55936119de60809436906004016106fe565b908188519283928337810184815203915af43d15611a5d5760203d611a02816108ab565b90611a0f8751928361085b565b81523d5f8383013e5b8551958693151583850152808401528051918291826060860152018484015e5f838284010152601f8019910116810103606081018452018261085b565b805190602001fd5b60206060611a18565b3461048a575f36600319011261048a57602060ff5f5460081c166040519015158152f35b3461048a575f36600319011261048a5760206040515f8152f35b3461048a575f36600319011261048a5760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b3461048a57604036600319011261048a57600435611afb81610502565b602435611b0781610aa6565b611b0f612be7565b611b176130fd565b6001600160a01b038216918215611bbf575f8381526005602052604090205460ff16151582151514610b39576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a6291611ba691611b94908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610a1e60015f805160206148a183398151915255565b604051630da30f6560e31b8152600490fd5b3461048a57604036600319011261048a576020611c15602435611bf381610502565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b3461048a57604036600319011261048a57602060ff611953602435611c4281610502565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b3461048a5760208060031936011261048a576004803590611c8482610502565b611c8c612be7565b60035460a01c60ff16611e0c576001600160a01b03828116939084611cfa575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610a1e60015f805160206148a183398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f91611def575b5015611dde5760405163fbfa77cf60e01b815282818581895afa928315610dd3575f93611dbf575b505030911603611db05750600380546001600160a01b0319166001600160a01b039092169190911790555f808080611cac565b604051633f3e089160e21b8152fd5b611dd6929350803d106117d4576117c4818361085b565b905f80611d7d565b60405163dabc4ad960e01b81528390fd5b611e069150833d851161181157611803818361085b565b5f611d55565b60405163703fe2e560e01b8152fd5b3461048a57604036600319011261048a57600435611e3881610502565b60243590611e44612be7565b6001600160a01b0391818316908115611eca57611e756105c094611e6783613adc565b9485915f5460101c16613a8d565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f805160206148a1833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b3461048a57602036600319011261048a576004355f526007602052602060405f2054604051908152f35b3461048a575f36600319011261048a576003546040516001600160a01b039091168152602090f35b3461048a575f36600319011261048a576020610986613b78565b3461048a57602036600319011261048a57600435611f64612be7565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff161561200857508060045414610b39576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f805160206148a183398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461048a575f36600319011261048a576020610986613bf1565b3461048a57602036600319011261048a5760043561205d81610502565b61206561293b565b61206e826128a4565b916120798183612b89565b83018093116106d157600182018092116106d15761209691612b89565b81018091116106d157602090604051908152f35b3461048a575f36600319011261048a576002546040516001600160a01b039091168152602090f35b3461048a57604036600319011261048a57610a1e6024356004356120f582610502565b805f525f80516020614881833981519152602052612119600160405f200154613154565b61348a565b3461048a575f36600319011261048a575f5460405160109190911c6001600160a01b03168152602090f35b3461048a575f36600319011261048a5760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b3461048a575f36600319011261048a576020600454604051908152f35b3461048a57606036600319011261048a576004356121bd81610502565b602435906121ca826107fc565b6001600160401b039160443583811161048a576121eb9036906004016106fe565b909260409384516121fb81610820565b6060815260606020820152606086820152928061225a575b6105c08661224b878761224561222c8984845191612449565b928561223c602085015183612ec8565b93015190612df3565b91613cb2565b90519081529081906020820190565b810193925060208185031261048a5780359086821161048a57019260608482031261048a5784519561228b87610820565b843581811161048a57826122a09187016108fc565b8752602085013581811161048a57826122ba9187016108fc565b60208801528585013590811161048a576105c0966122e36122459361222c9361224b98016108fc565b87820152939450612213565b3461048a57602036600319011261048a57610a1e60043561230f81610502565b6123176139be565b612b18565b3461048a57604036600319011261048a5760043561233981610502565b602435612344612be7565b6001600160a01b038216156105eb5780156123b057612373612364613bf1565b61236c613b78565b90836140f5565b335f908152600e6020526040902090929061238d90613c65565b831161239e57610598918391612c16565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b3461048a57604036600319011261048a5760206109866024356123e481610502565b600435612b89565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116106d157565b919082039182116106d157565b818102929181159184041417156106d157565b90600182018092116106d157565b919082018092116106d157565b6001600160a01b03165f908152600e60205260409020610917929190612f7d565b9081602091031261048a575190565b6040513d5f823e3d90fd5b916124d6916124c791612495614211565b61249d614211565b60015f805160206148a1833981519152556001600160a01b039480861661288a575b5036916108c6565b602080825183010191016138f5565b805182166001600160a01b03161561287857604080820165ffffffffffff612504825165ffffffffffff1690565b16156128675760c083018051909290612525906001600160a01b0316611294565b15612718575b5091612664610140926126036125de6126c296612579612551875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b039092169190911790556125d26125a942612d90565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b5165ffffffffffff1690565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b6126236126136060850151151590565b60ff80195f541691151516175f55565b61264a6126336080850151151590565b61ff005f5491151560081b169061ff001916175f55565b61265760a0840151600455565b516001600160a01b031690565b848116612708575b5060e08101516001600160a01b03168481166126f8575b506101008101516001600160a01b03168481166126e8575b506101208101516001600160a01b03168481166126d8575b5001516001600160a01b031690565b9081166126cc5750565b6126d5906133e5565b50565b6126e190613376565b505f6126b3565b6126f190613307565b505f61269b565b61270190613231565b505f612683565b61271190613180565b505f61266c565b60e084015161272f906001600160a01b0316611294565b15612804575b61012084015161274d906001600160a01b0316611294565b61252b576080840151156127ba5760a0840151158061279b575b61278b575091612664610140926126036125de6126c2965b9496505050925061252b565b5163183c854560e21b8152600490fd5b506101408401516127b4906001600160a01b0316611294565b15612767565b60a0840151158015906127e4575b61278b575091612664610140926126036125de6126c29661277f565b506101408401516127fd906001600160a01b0316611294565b15156127c8565b60608401511561283a57610100840151612826906001600160a01b0316611294565b612735575163183c854560e21b8152600490fd5b610100840151612852906001600160a01b0316611294565b15612735575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b61289e90612896614211565b612317614211565b5f6124bf565b6001600160a01b03165f908152600e602052604090206128c390613c65565b6128cb613b78565b6128d3613bf1565b90600181018091116106d157600182018092116106d15761091792613a00565b65ffffffffffff91821690821603919082116106d157565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff80911691821561293657160490565b61290b565b61294442612d90565b61296b60015461296165ffffffffffff93848360a01c16906128f3565b9060d01c9061291f565b1690565b6001549065ffffffffffff91828160a01c169182848216106129985761296b92612961916128f3565b60405163b7d0949760e01b8152600490fd5b906129b3612be7565b5f926001600160a01b038316928315611eca578115612a6b575f5b828110612a4957505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d279286929091612a1e918491612a199060101c6001600160a01b0316611294565b613a8d565b612a2f604051928392339684612aa6565b0390a3906108a960015f805160206148a183398151915255565b94612a646001916114de612a5e898789612a91565b35613adc565b95016129ce565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612aa15760051b0190565b612a7d565b604080825281018390529392916001600160fb1b03811161048a5760209160609160051b809183880137850101930152565b51906108a982610aa6565b9081602091031261048a575161091781610aa6565b51906108a982610502565b9081602091031261048a575161091781610502565b6001600160a01b03908116908115612b71575f8051602061482183398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612baf90825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116106d157600182018092116106d15761091792613a00565b5f805160206148a18339815191526002815414612c045760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e6020526040902093929190612c3142612d90565b335f908152600e60205260409020612c4890613c65565b918483039283116106d157612c837febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f938593612d0e9961382c565b5050612c9d612c9142612d90565b610cb987611478613bf1565b5050612cb7612cab42612d90565b610ca484611478613b78565b5050612d5c81612d47612cd0612ccb61293b565b61242e565b612d26612ce5825f52600660205260405f2090565b54612cf8835f52600760205260405f2090565b54612d0482828b613cb2565b9d8e998a9361243c565b612d20855f52600660205260405f2090565b5561243c565b612d38825f52600760205260405f2090565b555f52600860205260405f2090565b9060018060a01b03165f5260205260405f2090565b612d6783825461243c565b9055604080519485526020850195909552938301526001600160a01b03909216913391606090a3565b65ffffffffffff90818111612da3571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9081602091031261048a575163ffffffff8116810361048a5790565b90600163ffffffff809316019182116106d157565b90805115612ebe5780602080612e0e93518301019101612dc2565b612e1781613f23565b90612e28825165ffffffffffff1690565b9065ffffffffffff8085169216828114612eb25782119182612e5e575b5050612e55575061091790613cd3565b60209150015190565b909150612e6c600a54612400565b63ffffffff831614918215612e85575b50505f80612e45565b612eaa9192506125d2612e9a612e9f92612dde565b613f23565b65ffffffffffff1690565b115f80612e7c565b50505060209150015190565b5061091790613cd3565b90805115612f735780602080612ee393518301019101612dc2565b612eec81613fad565b90612efd825165ffffffffffff1690565b9065ffffffffffff8085169216828114612eb25782119182612f2a575b5050612e55575061091790613d9a565b909150612f38600c54612400565b63ffffffff831614918215612f51575b50505f80612f1a565b612f6b9192506125d2612f66612e9f92612dde565b613fad565b115f80612f48565b5061091790613d9a565b9180511561303f5780602080612f9893518301019101612dc2565b91612fa3838261402d565b92612fb4845165ffffffffffff1690565b9065ffffffffffff80851692168281146130335782119182612fea575b5050612fe1576109179250613e5a565b50506020015190565b909150612ff78354612400565b63ffffffff831614918215613010575b50505f80612fd1565b61302b9192506125d2613025612e9f92612dde565b8561402d565b115f80613007565b50505050506020015190565b5061091791613e5a565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b5416156120085750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff9061309c565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff9061309c565b5f8181525f8051602061488183398151915260209081526040808320338452909152902060ff9061309c565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206148818339815191529060ff1661322b575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f805160206148818339815191529060ff905b5416613300575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f805160206148818339815191529060ff9061329c565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f805160206148818339815191529060ff9061329c565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f805160206148818339815191529060ff9061329c565b5f8181525f80516020614881833981519152602081815260408084206001600160a01b038716855290915290912060ff9061329c565b5f8181525f80516020614881833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615613300575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b0384111761083b576108a99260405261409b565b600b54811015612aa157600b5f525f8051602061486183398151915201905f90565b600d54811015612aa157600d5f525f8051602061484183398151915201905f90565b8054821015612aa1575f5260205f2001905f90565b600d54600160401b81101561083b576001810180600d55811015612aa157600d5f525f805160206148418339815191520155565b600b54600160401b81101561083b576001810180600b55811015612aa157600b5f525f805160206148618339815191520155565b90815491600160401b83101561083b57826136589160016108a9950181556135b8565b90919082549060031b91821b915f19901b1916179055565b919091600d908154801561371b575b5061368861412e565b50929091815492613697613b78565b9481613706575b50156136e357505f1982018281116106d15781541115612aa1575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b6136f7926001600160d01b03169150614358565b5050613702836135cd565b9190565b65ffffffffffff83811691161490505f61369e565b600160401b81101561083b5760018101808455811015612aa1575f908382525f8051602061484183398151915201555f61367f565b919091600b90815480156137f7575b50613768614183565b50929091815492613777613bf1565b94816137e2575b50156137c357505f1982018281116106d15781541115612aa1575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b6137d7926001600160d01b03169150614428565b505061370283613601565b65ffffffffffff83811691161490505f61377e565b600160401b81101561083b5760018101808455811015612aa1575f908382525f8051602061486183398151915201555f61375f565b909291926001820190815480156138ba575b5084613849846141d8565b5094909284549361385983613c65565b96816138a5575b5015613882575050505f1981019081116106d1576136588591613702936135b8565b61370294929361389e926001600160d01b0390911691906144c7565b5050613635565b65ffffffffffff83811691161490505f613860565b600160401b81101561083b578060016138d692018455836135b8565b8154905f199060031b1b191690555f61383e565b51906108a9826107fc565b908161016091031261048a5761390961087c565b9061391381612af8565b825261392160208201612af8565b6020830152613932604082016138ea565b604083015261394360608201612ad8565b606083015261395460808201612ad8565b608083015260a081015160a083015261396f60c08201612af8565b60c083015261398060e08201612af8565b60e0830152610100613993818301612af8565b908301526101206139a5818301612af8565b908301526139b7610140809201612af8565b9082015290565b5f80516020614821833981519152546001600160a01b031633036139de57565b60405163118cdaa760e01b8152336004820152602490fd5b8115612936570490565b91818302915f1981850993838086109503948086039514613a805784831115613a735790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b821560030260111861423f565b50509061091792506139f6565b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815260808101916001600160401b0383118284101761083b576108a99260405261409b565b90613ae561293b565b821015613b66575f82815260096020908152604080832033845290915290205460ff16613b5457613b163383612b89565b918215613b42575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600c5480613bb857505f5b6001600160d01b03811615613bb357600d54811015612aa157600d5f525f80516020614841833981519152015490565b505f90565b805f198101116106d157600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c613b83565b600a5480613c2c57505f5b6001600160d01b03811615613bb357600b54811015612aa157600b5f525f80516020614861833981519152015490565b805f198101116106d157600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c613bfc565b805480613c9457505f5b6001600160d01b0381161561322b576001613c8a92016135b8565b90549060031b1c90565b5f199080828101116106d157825f5260205f2001015460301c613c6f565b9190600181018091116106d157600182018092116106d15761091792613a00565b600a54905f829160058411613d41575b613ced93506146ac565b80613d1057505f5b6001600160d01b03811615613bb357613c8a61091791613574565b613d35613d1f613d3c92612400565b600a5f525f805160206148018339815191520190565b5460301c90565b613cf5565b9192613d4c81614581565b81039081116106d157613ced93600a5f5265ffffffffffff80835f80516020614801833981519152015416908516105f14613d88575091613ce3565b929150613d949061242e565b90613ce3565b600c54905f829160058411613e01575b613db49350614715565b80613dd757505f5b6001600160d01b03811615613bb357613c8a61091791613596565b613d35613de6613dfc92612400565b600c5f525f805160206147e18339815191520190565b613dbc565b9192613e0c81614581565b81039081116106d157613db493600c5f5265ffffffffffff80835f805160206147e1833981519152015416908516105f14613e48575091613daa565b929150613e549061242e565b90613daa565b908154905f829160058411613ebd575b613e7593508461477e565b80613e9d57505f905b6001600160d01b0382161561322b57610917916001613c8a92016135b8565b613d35613eac613eb792612400565b835f5260205f200190565b90613e7e565b9192613ec881614581565b81039081116106d157613e7593855f5265ffffffffffff808360205f20015416908516105f14613ef9575091613e6a565b929150613f059061242e565b90613e6a565b60405190613f1882610840565b5f6020838281520152565b613f2b613f0b565b50613f34613f0b565b50600a54811015612aa157600a5f52602060405191613f5283610840565b5f8051602061480183398151915201549165ffffffffffff83169283825260301c9182910152600b54811015612aa157600b5f525f80516020614861833981519152015460405191613fa383610840565b8252602082015290565b613fb5613f0b565b50613fbe613f0b565b50600c54811015612aa157600c5f52602060405191613fdc83610840565b5f805160206147e183398151915201549165ffffffffffff83169283825260301c9182910152600d54811015612aa157600d5f525f80516020614841833981519152015460405191613fa383610840565b906020600161405161407d93614041613f0b565b5061404a613f0b565b50856135b8565b50936040519461406086610840565b549465ffffffffffff86169586825260301c9384910152016135b8565b9054906040519261408d84610840565b835260031b1c602082015290565b905f602091828151910182855af115612479575f513d6140ec57506001600160a01b0381163b155b6140ca5750565b604051635274afe760e01b81526001600160a01b039091166004820152602490fd5b600114156140c3565b9190600181018091116106d157600182018092116106d157614118828285613a00565b9282156129365709151581018091116106d15790565b600c548061413f57505f905f905f90565b805f198101116106d157600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460019165ffffffffffff82169160301c90565b600a548061419457505f905f905f90565b805f198101116106d157600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460019165ffffffffffff82169160301c90565b8054806141e95750505f905f905f90565b5f199181838101116106d1575f5260205f2001015460019165ffffffffffff82169160301c90565b60ff5f805160206148c18339815191525460401c161561422d57565b604051631afcd79f60e31b8152600490fd5b634e487b715f526020526024601cfd5b600c5490600160401b82101561083b576001820180600c55821015612aa157600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206147e183398151915290910155565b600a5490600160401b82101561083b576001820180600a55821015612aa157600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f8051602061480183398151915290910155565b8054600160401b81101561083b5761431a916001820181556135b8565b61434557815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c5491929180156143ff57613de661437091612400565b9081549165ffffffffffff908184169183168083116143ed578692036143b5576143ae92509065ffffffffffff82549181199060301b169116179055565b60301c9190565b50506143e8906143d46143c661089c565b65ffffffffffff9092168252565b6001600160d01b038516602082015261424f565b6143ae565b604051632520601d60e01b8152600490fd5b506144239061440f6143c661089c565b6001600160d01b038416602082015261424f565b5f9190565b600a5491929180156144a357613d1f61444091612400565b9081549165ffffffffffff908184169183168083116143ed5786920361447e576143ae92509065ffffffffffff82549181199060301b169116179055565b50506143e89061448f6143c661089c565b6001600160d01b03851660208201526142a6565b50614423906144b36143c661089c565b6001600160d01b03841660208201526142a6565b8054929392801561455c576144de6144e991612400565b825f5260205f200190565b9182549265ffffffffffff918285169281168084116143ed5787930361452857506143ae92509065ffffffffffff82549181199060301b169116179055565b9150506143e89161454861453a61089c565b65ffffffffffff9093168352565b6001600160d01b03861660208301526142fd565b50906144239161456d61453a61089c565b6001600160d01b03851660208301526142fd565b600181111561091757600181600160801b81101561469a575b61464261463861462e61462461461a61461061464e97600488600160401b6146499a101561468d575b640100000000811015614680575b62010000811015614673575b610100811015614667575b601081101561465b575b1015614653575b60030260011c614609818b6139f6565b0160011c90565b614609818a6139f6565b61460981896139f6565b61460981886139f6565b61460981876139f6565b61460981866139f6565b80936139f6565b821190565b900390565b60011b6145f9565b811c9160021b916145f2565b60081c91811b916145e8565b60101c9160081b916145dd565b60201c9160101b916145d1565b60401c9160201b916145c3565b50600160401b9050608082901c61459a565b905b8281106146ba57505090565b9091808216906001818418811c83018093116106d157600a5f5265ffffffffffff80845f80516020614801833981519152015416908616105f14614702575050915b906146ae565b9093925081018091116106d157906146fc565b905b82811061472357505090565b9091808216906001818418811c83018093116106d157600c5f5265ffffffffffff80845f805160206147e1833981519152015416908616105f1461476b575050915b90614717565b9093925081018091116106d15790614765565b91905b83821061478e5750505090565b909192808316906001818518811c83018093116106d157855f5265ffffffffffff808460205f20015416908516105f146147cd575050925b9190614781565b9094935081018091116106d157916147c656fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a89016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220a8c535672167031173259581b81285c7c29b3302529e4963221b23f631bb0cce64736f6c63430008190033","sourceMap":"981:14960:108:-:0;;;;;;;;;;;;;-1:-1:-1;;981:14960:108;;;;;-1:-1:-1;;;;;981:14960:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;3173:36:109;;;3219:32;;8837:64:26;981:14960:108;;;;;;;;;7896:76:26;;981:14960:108;;;;7985:34:26;7981:146;;-1:-1:-1;927:17:84;;;;;981:14960:108;;;;;;;3173:36:109;981:14960:108;;;;;;;;;;3219:32:109;981:14960:108;;;;;;;;;;927:17:84;981:14960:108;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;981:14960:108;;;;;;;;;;;;;8087:29:26;;981:14960:108;;8087:29:26;7981:146;;;;;7896:76;981:14960:108;;-1:-1:-1;;;7938:23:26;;;;;981:14960:108;-1:-1:-1;981:14960:108;;;;;;-1:-1:-1;981:14960:108;;;;;-1:-1:-1;981:14960:108;;;;-1:-1:-1;;;;;981:14960:108;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104345780631415519b1461042f5780631b66c9e11461042a5780631e9a695014610425578063248a9ca31461042057806327810b6e1461041b578063281f5752146104165780632abe3048146104115780632d73c69c1461040c5780632dd31000146104075780632f2ff15d1461040257806336568abe146103fd578063392e53cd146103f85780634105a7dd146103f357806346361671146103ee57806347e7ef24146103e957806348d3b775146103e45780634ff0876a146103df57806350861adc146103da57806350f22068146103d55780635346e34f146103d057806354fd4d50146103cb57806357ec83cc146103c657806359f769a9146103c15780635cc07076146103bc57806361a8c8c4146103b75780636da3e06d146103b25780636ec1e3f8146103ad578063715018a6146103a85780637278e31c146103a357806373790ab31461039e5780637667180814610399578063794b15b7146103945780637953b33b1461038f5780637c04c80a1461038a578063810da75d1461038557806383cd9cc31461038057806387df07881461037b5780638b0e9f3f146103765780638da5cb5b1461037157806391d148541461036c5780639d66201b146103675780639f86fd8514610362578063a1b122021461035d578063a217fddf14610358578063a21a1df914610353578063a28614661461034e578063a3b5417214610349578063a5d0322314610344578063aabc24961461033f578063aad3ec961461033a578063afba70ad14610335578063b134427114610330578063bd49c35f1461032b578063bdc8144b14610326578063bfefcd7b14610321578063c31e8dd71461031c578063ce9b793014610317578063d547741f14610312578063d8dfeb451461030d578063db38871514610308578063ecf7085814610303578063efb559d6146102fe578063f2fde38b146102f9578063f3fef3a3146102f45763f5e7ee0f146102ef575f80fd5b6123c2565b61231c565b6122ef565b6121a0565b612183565b612149565b61211e565b6120d2565b6120aa565b612040565b612026565b611f48565b611f2e565b611f06565b611edc565b611e1b565b611c64565b611c1e565b611bd1565b611ade565b611aa4565b611a8a565b611a66565b611999565b61195f565b611901565b6118cd565b61186b565b611827565b61166e565b611655565b6115ef565b6115c8565b611588565b61156e565b61152d565b61125b565b6111f4565b6111cf565b61118b565b611138565b61110e565b6110e7565b610faf565b610f7d565b610ee8565b610ecf565b610e72565b610e52565b610e31565b610b73565b610b4b565b610ab0565b610a6b565b610a20565b6109d2565b61098e565b61091a565b61072b565b61065d565b610635565b6105fc565b610513565b6104c8565b61048e565b3461048a57602036600319011261048a5760043563ffffffff60e01b811680910361048a57602090637965db0b60e01b8114908115610479575b506040519015158152f35b6301ffc9a760e01b1490505f61046e565b5f80fd5b3461048a575f36600319011261048a5760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b3461048a575f36600319011261048a5760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b6001600160a01b0381160361048a57565b3461048a57604036600319011261048a5760043561053081610502565b6024359061053c612be7565b6001600160a01b038116156105eb57335f908152600e6020526040902061056790613c65565b613c65565b82116105d957610587610578613b78565b610580613bf1565b9084613cb2565b9182156105c4578261059892612c16565b906105af60015f805160206148a183398151915255565b604080519182526020820192909252f35b0390f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b3461048a57602036600319011261048a576004355f525f805160206148818339815191526020526020600160405f200154604051908152f35b3461048a575f36600319011261048a576001546040516001600160a01b039091168152602090f35b3461048a575f36600319011261048a5761067561293b565b80156106d65760015465ffffffffffff8160a01c16915f1981019081116106d1576106a39160d01c9061241b565b81018091116106d1576106b86105c091612d90565b60405165ffffffffffff90911681529081906020820190565b6123ec565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b038216820361048a57565b9181601f8401121561048a578235916001600160401b03831161048a576020838186019501011161048a57565b3461048a57604036600319011261048a576107446106e8565b6001600160401b0360243581811161048a576107649036906004016106fe565b505061076e612be7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036107ea575f805160206148c1833981519152549060ff8260401c169283156107da575b5050506107c8575f80fd5b60405163f92ee8a960e01b8152600490fd5b81169116101590505f80806107bd565b604051631966391b60e11b8152600490fd5b65ffffffffffff81160361048a57565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761083b57604052565b61080c565b604081019081106001600160401b0382111761083b57604052565b90601f801991011681019081106001600160401b0382111761083b57604052565b6040519061016082018281106001600160401b0382111761083b57604052565b604051906108a982610840565b565b6001600160401b03811161083b57601f01601f191660200190565b9291926108d2826108ab565b916108e0604051938461085b565b82948184528183011161048a578281602093845f960137010152565b9080601f8301121561048a57816020610917933591016108c6565b90565b3461048a57606036600319011261048a5760043561093781610502565b60243590610944826107fc565b604435906001600160401b03821161048a5760209261096a6109869336906004016108fc565b6001600160a01b039092165f908152600e855260409020612f7d565b604051908152f35b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a57604036600319011261048a57610a1e6024356004356109f582610502565b805f525f80516020614881833981519152602052610a19600160405f200154613154565b613454565b005b3461048a57604036600319011261048a57602435610a3d81610502565b336001600160a01b03821603610a5957610a1e9060043561348a565b60405163334bd91960e11b8152600490fd5b3461048a575f36600319011261048a5760ff60025460a01c1680610a97575b6020906040519015158152f35b5060035460a01c60ff16610a8a565b8015150361048a57565b3461048a57602036600319011261048a57600435610acd81610aa6565b610ad5612be7565b610add613049565b5f54901515908160ff8216151514610b395760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f805160206148a183398151915255005b60405163a741a04560e01b8152600490fd5b3461048a575f36600319011261048a57602065ffffffffffff60015460a01c16604051908152f35b3461048a5760408060031936011261048a576004803591610b9383610502565b610b9b612be7565b6001600160a01b0391838316908115610e23575f5460ff811680610e0a575b610dfb5783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610dd3575f93610dd8575b50610c0f90602435903090339061351c565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610dd357610c4e935f92610da6575b505061240e565b938415610d975760081c60ff1680610d82575b610d745750906105c091610d12610c76613b78565b95610cbf610c82613bf1565b610caa610c908a838b613cb2565b99610ca48a610c9e42612d90565b9261243c565b90613670565b5050610cb989610c9e42612d90565b90613750565b50506001600160a01b0381165f908152600e6020526040902090610d0c88610d07610562610cec42612d90565b6001600160a01b039095165f908152600e6020526040902090565b61243c565b9161382c565b505081518481526020810186905233907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a3610d5e60015f805160206148a183398151915255565b5191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50610d8f84610d07613b78565b815410610c61565b50825163070f6eed60e11b8152fd5b610dc59250803d10610dcc575b610dbd818361085b565b81019061246a565b5f80610c47565b503d610db3565b612479565b610c0f919350610df490853d8711610dcc57610dbd818361085b565b9290610bfd565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610bba565b8251630d534ce360e11b8152fd5b3461048a575f36600319011261048a57602060ff5f54166040519015158152f35b3461048a575f36600319011261048a57602060015460d01c604051908152f35b3461048a575f36600319011261048a57602060ff60025460a01c166040519015158152f35b90604060031983011261048a57600435610eb0816107fc565b91602435906001600160401b03821161048a57610917916004016108fc565b3461048a576020610986610ee236610e97565b90612df3565b3461048a57602036600319011261048a57600435610f0581610aa6565b610f0d612be7565b610f156130a6565b5f54901515908160ff8260081c16151514610b395761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610a1e60015f805160206148a183398151915255565b3461048a575f36600319011261048a5760206001600160401b035f805160206148c18339815191525416604051908152f35b3461048a57606036600319011261048a57610fc86106e8565b602435610fd481610502565b6001600160401b039160443583811161048a57610ff59036906004016106fe565b5f805160206148c18339815191529491855494838616806110d65760ff8760401c169081156110c9575b506107c8577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966110c49661108c958716906001600160401b0319161790556110875f805160206148c1833981519152600160401b68ff000000000000000019825416179055565b612484565b5f805160206148c1833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f61101f565b60405162dc149f60e41b8152600490fd5b3461048a57602036600319011261048a57602061098660043561110981610502565b6128a4565b3461048a57602036600319011261048a576004355f526006602052602060405f2054604051908152f35b3461048a575f36600319011261048a5760015465ffffffffffff61116e818360a01c169261116461293b565b9060d01c9061241b565b82018092116106d157611182602092612d90565b60405191168152f35b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a575f36600319011261048a57602060ff60035460a01c166040519015158152f35b3461048a575f36600319011261048a5761120c6139be565b5f8051602061482183398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461048a57604036600319011261048a5760043560243561127b816107fc565b611283612be7565b6003546112a0906001600160a01b03165b6001600160a01b031690565b330361151b576112ae61293b565b906112b88161296f565b908215158061150a575b8015611501575b6114ef576105c0937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c7926112fb613b78565b946113166113088261242e565b5f52600660205260405f2090565b5490828103611409575061132a818761243c565b8381188185100281189687806113c2575b50505050505b8361138e575b6040805191825265ffffffffffff929092166020820152908101839052606090a161137e60015f805160206148a183398151915255565b6040519081529081906020820190565b5f546113bd9085906113ab9060101c6001600160a01b0316611294565b6001546001600160a01b031690613a8d565b611347565b6113fe93610c4783610ca46113e86113e1611308986113f89888613a00565b809661240e565b946113f242612d90565b9261240e565b9261242e565b555f8080808761133b565b915061141d825f52600660205260405f2090565b549061142d81610d07848a61243c565b908482188286100282189788611448575b5050505050611341565b6114bd93836114709361147d8c6114786114666114ae998884613a00565b9788958584613a00565b94859261240e565b61240e565b938484106114c8575b610c4790610ca461149c9596976113f242612d90565b6114a86113088761242e565b5561240e565b915f52600660205260405f2090565b555f8080808061143e565b916114e4610c47916114de8661149c979861240e565b9061243c565b859450929050611486565b604051635e18d2a560e01b8152600490fd5b508282116112c9565b5061151483612400565b82106112c2565b60405163dabc4ad960e01b8152600490fd5b3461048a575f36600319011261048a5760015465ffffffffffff808260a01c169161155661293b565b600181018091116106d15761116e9160d01c9061241b565b3461048a575f36600319011261048a57602061098661293b565b3461048a57602036600319011261048a576004356115a581610502565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b3461048a57602036600319011261048a5760206109866004356115ea816107fc565b61296f565b3461048a57604036600319011261048a5760043561160c81610502565b6024356001600160401b0380821161048a573660238301121561048a57816004013590811161048a573660248260051b8401011161048a576105c092602461137e9301906129aa565b3461048a57602061098661166836610e97565b90612ec8565b3461048a5760208060031936011261048a57600480359061168e82610502565b611696612be7565b60025460a01c60ff16611818576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f916117eb575b50156117db5760405163fbfa77cf60e01b8152838516949082818581895afa928315610dd3575f936117ac575b50503091160361179d5750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610a1e60015f805160206148a183398151915255565b60405163b9f0f17160e01b8152fd5b6117cc929350803d106117d4575b6117c4818361085b565b810190612b03565b905f80611730565b503d6117ba565b506040516324e5af8d60e21b8152fd5b61180b9150823d8411611811575b611803818361085b565b810190612ae3565b5f611703565b503d6117f9565b604051631380833b60e01b8152fd5b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a575f36600319011261048a5761188361293b565b61188b613b78565b90805f52600660205260405f205482018092116106d157600181018091116106d1575f52600660205260405f205481018091116106d157602090604051908152f35b3461048a575f36600319011261048a575f80516020614821833981519152546040516001600160a01b039091168152602090f35b3461048a57604036600319011261048a57602060ff61195360243561192581610502565b6004355f525f80516020614881833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461048a57602036600319011261048a5760043561197c81610502565b60018060a01b03165f52600e602052602061098660405f20613c65565b3461048a5760408060031936011261048a576004356119b781610502565b6024356001600160401b03811161048a575f80611a55936119de60809436906004016106fe565b908188519283928337810184815203915af43d15611a5d5760203d611a02816108ab565b90611a0f8751928361085b565b81523d5f8383013e5b8551958693151583850152808401528051918291826060860152018484015e5f838284010152601f8019910116810103606081018452018261085b565b805190602001fd5b60206060611a18565b3461048a575f36600319011261048a57602060ff5f5460081c166040519015158152f35b3461048a575f36600319011261048a5760206040515f8152f35b3461048a575f36600319011261048a5760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b3461048a57604036600319011261048a57600435611afb81610502565b602435611b0781610aa6565b611b0f612be7565b611b176130fd565b6001600160a01b038216918215611bbf575f8381526005602052604090205460ff16151582151514610b39576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a6291611ba691611b94908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610a1e60015f805160206148a183398151915255565b604051630da30f6560e31b8152600490fd5b3461048a57604036600319011261048a576020611c15602435611bf381610502565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b3461048a57604036600319011261048a57602060ff611953602435611c4281610502565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b3461048a5760208060031936011261048a576004803590611c8482610502565b611c8c612be7565b60035460a01c60ff16611e0c576001600160a01b03828116939084611cfa575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610a1e60015f805160206148a183398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f91611def575b5015611dde5760405163fbfa77cf60e01b815282818581895afa928315610dd3575f93611dbf575b505030911603611db05750600380546001600160a01b0319166001600160a01b039092169190911790555f808080611cac565b604051633f3e089160e21b8152fd5b611dd6929350803d106117d4576117c4818361085b565b905f80611d7d565b60405163dabc4ad960e01b81528390fd5b611e069150833d851161181157611803818361085b565b5f611d55565b60405163703fe2e560e01b8152fd5b3461048a57604036600319011261048a57600435611e3881610502565b60243590611e44612be7565b6001600160a01b0391818316908115611eca57611e756105c094611e6783613adc565b9485915f5460101c16613a8d565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f805160206148a1833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b3461048a57602036600319011261048a576004355f526007602052602060405f2054604051908152f35b3461048a575f36600319011261048a576003546040516001600160a01b039091168152602090f35b3461048a575f36600319011261048a576020610986613b78565b3461048a57602036600319011261048a57600435611f64612be7565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff161561200857508060045414610b39576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f805160206148a183398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461048a575f36600319011261048a576020610986613bf1565b3461048a57602036600319011261048a5760043561205d81610502565b61206561293b565b61206e826128a4565b916120798183612b89565b83018093116106d157600182018092116106d15761209691612b89565b81018091116106d157602090604051908152f35b3461048a575f36600319011261048a576002546040516001600160a01b039091168152602090f35b3461048a57604036600319011261048a57610a1e6024356004356120f582610502565b805f525f80516020614881833981519152602052612119600160405f200154613154565b61348a565b3461048a575f36600319011261048a575f5460405160109190911c6001600160a01b03168152602090f35b3461048a575f36600319011261048a5760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b3461048a575f36600319011261048a576020600454604051908152f35b3461048a57606036600319011261048a576004356121bd81610502565b602435906121ca826107fc565b6001600160401b039160443583811161048a576121eb9036906004016106fe565b909260409384516121fb81610820565b6060815260606020820152606086820152928061225a575b6105c08661224b878761224561222c8984845191612449565b928561223c602085015183612ec8565b93015190612df3565b91613cb2565b90519081529081906020820190565b810193925060208185031261048a5780359086821161048a57019260608482031261048a5784519561228b87610820565b843581811161048a57826122a09187016108fc565b8752602085013581811161048a57826122ba9187016108fc565b60208801528585013590811161048a576105c0966122e36122459361222c9361224b98016108fc565b87820152939450612213565b3461048a57602036600319011261048a57610a1e60043561230f81610502565b6123176139be565b612b18565b3461048a57604036600319011261048a5760043561233981610502565b602435612344612be7565b6001600160a01b038216156105eb5780156123b057612373612364613bf1565b61236c613b78565b90836140f5565b335f908152600e6020526040902090929061238d90613c65565b831161239e57610598918391612c16565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b3461048a57604036600319011261048a5760206109866024356123e481610502565b600435612b89565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116106d157565b919082039182116106d157565b818102929181159184041417156106d157565b90600182018092116106d157565b919082018092116106d157565b6001600160a01b03165f908152600e60205260409020610917929190612f7d565b9081602091031261048a575190565b6040513d5f823e3d90fd5b916124d6916124c791612495614211565b61249d614211565b60015f805160206148a1833981519152556001600160a01b039480861661288a575b5036916108c6565b602080825183010191016138f5565b805182166001600160a01b03161561287857604080820165ffffffffffff612504825165ffffffffffff1690565b16156128675760c083018051909290612525906001600160a01b0316611294565b15612718575b5091612664610140926126036125de6126c296612579612551875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b039092169190911790556125d26125a942612d90565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b5165ffffffffffff1690565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b6126236126136060850151151590565b60ff80195f541691151516175f55565b61264a6126336080850151151590565b61ff005f5491151560081b169061ff001916175f55565b61265760a0840151600455565b516001600160a01b031690565b848116612708575b5060e08101516001600160a01b03168481166126f8575b506101008101516001600160a01b03168481166126e8575b506101208101516001600160a01b03168481166126d8575b5001516001600160a01b031690565b9081166126cc5750565b6126d5906133e5565b50565b6126e190613376565b505f6126b3565b6126f190613307565b505f61269b565b61270190613231565b505f612683565b61271190613180565b505f61266c565b60e084015161272f906001600160a01b0316611294565b15612804575b61012084015161274d906001600160a01b0316611294565b61252b576080840151156127ba5760a0840151158061279b575b61278b575091612664610140926126036125de6126c2965b9496505050925061252b565b5163183c854560e21b8152600490fd5b506101408401516127b4906001600160a01b0316611294565b15612767565b60a0840151158015906127e4575b61278b575091612664610140926126036125de6126c29661277f565b506101408401516127fd906001600160a01b0316611294565b15156127c8565b60608401511561283a57610100840151612826906001600160a01b0316611294565b612735575163183c854560e21b8152600490fd5b610100840151612852906001600160a01b0316611294565b15612735575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b61289e90612896614211565b612317614211565b5f6124bf565b6001600160a01b03165f908152600e602052604090206128c390613c65565b6128cb613b78565b6128d3613bf1565b90600181018091116106d157600182018092116106d15761091792613a00565b65ffffffffffff91821690821603919082116106d157565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff80911691821561293657160490565b61290b565b61294442612d90565b61296b60015461296165ffffffffffff93848360a01c16906128f3565b9060d01c9061291f565b1690565b6001549065ffffffffffff91828160a01c169182848216106129985761296b92612961916128f3565b60405163b7d0949760e01b8152600490fd5b906129b3612be7565b5f926001600160a01b038316928315611eca578115612a6b575f5b828110612a4957505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d279286929091612a1e918491612a199060101c6001600160a01b0316611294565b613a8d565b612a2f604051928392339684612aa6565b0390a3906108a960015f805160206148a183398151915255565b94612a646001916114de612a5e898789612a91565b35613adc565b95016129ce565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612aa15760051b0190565b612a7d565b604080825281018390529392916001600160fb1b03811161048a5760209160609160051b809183880137850101930152565b51906108a982610aa6565b9081602091031261048a575161091781610aa6565b51906108a982610502565b9081602091031261048a575161091781610502565b6001600160a01b03908116908115612b71575f8051602061482183398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612baf90825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116106d157600182018092116106d15761091792613a00565b5f805160206148a18339815191526002815414612c045760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e6020526040902093929190612c3142612d90565b335f908152600e60205260409020612c4890613c65565b918483039283116106d157612c837febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f938593612d0e9961382c565b5050612c9d612c9142612d90565b610cb987611478613bf1565b5050612cb7612cab42612d90565b610ca484611478613b78565b5050612d5c81612d47612cd0612ccb61293b565b61242e565b612d26612ce5825f52600660205260405f2090565b54612cf8835f52600760205260405f2090565b54612d0482828b613cb2565b9d8e998a9361243c565b612d20855f52600660205260405f2090565b5561243c565b612d38825f52600760205260405f2090565b555f52600860205260405f2090565b9060018060a01b03165f5260205260405f2090565b612d6783825461243c565b9055604080519485526020850195909552938301526001600160a01b03909216913391606090a3565b65ffffffffffff90818111612da3571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9081602091031261048a575163ffffffff8116810361048a5790565b90600163ffffffff809316019182116106d157565b90805115612ebe5780602080612e0e93518301019101612dc2565b612e1781613f23565b90612e28825165ffffffffffff1690565b9065ffffffffffff8085169216828114612eb25782119182612e5e575b5050612e55575061091790613cd3565b60209150015190565b909150612e6c600a54612400565b63ffffffff831614918215612e85575b50505f80612e45565b612eaa9192506125d2612e9a612e9f92612dde565b613f23565b65ffffffffffff1690565b115f80612e7c565b50505060209150015190565b5061091790613cd3565b90805115612f735780602080612ee393518301019101612dc2565b612eec81613fad565b90612efd825165ffffffffffff1690565b9065ffffffffffff8085169216828114612eb25782119182612f2a575b5050612e55575061091790613d9a565b909150612f38600c54612400565b63ffffffff831614918215612f51575b50505f80612f1a565b612f6b9192506125d2612f66612e9f92612dde565b613fad565b115f80612f48565b5061091790613d9a565b9180511561303f5780602080612f9893518301019101612dc2565b91612fa3838261402d565b92612fb4845165ffffffffffff1690565b9065ffffffffffff80851692168281146130335782119182612fea575b5050612fe1576109179250613e5a565b50506020015190565b909150612ff78354612400565b63ffffffff831614918215613010575b50505f80612fd1565b61302b9192506125d2613025612e9f92612dde565b8561402d565b115f80613007565b50505050506020015190565b5061091791613e5a565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b5416156120085750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff9061309c565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff9061309c565b5f8181525f8051602061488183398151915260209081526040808320338452909152902060ff9061309c565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206148818339815191529060ff1661322b575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f805160206148818339815191529060ff905b5416613300575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f805160206148818339815191529060ff9061329c565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f805160206148818339815191529060ff9061329c565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f805160206148818339815191529060ff9061329c565b5f8181525f80516020614881833981519152602081815260408084206001600160a01b038716855290915290912060ff9061329c565b5f8181525f80516020614881833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615613300575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b0384111761083b576108a99260405261409b565b600b54811015612aa157600b5f525f8051602061486183398151915201905f90565b600d54811015612aa157600d5f525f8051602061484183398151915201905f90565b8054821015612aa1575f5260205f2001905f90565b600d54600160401b81101561083b576001810180600d55811015612aa157600d5f525f805160206148418339815191520155565b600b54600160401b81101561083b576001810180600b55811015612aa157600b5f525f805160206148618339815191520155565b90815491600160401b83101561083b57826136589160016108a9950181556135b8565b90919082549060031b91821b915f19901b1916179055565b919091600d908154801561371b575b5061368861412e565b50929091815492613697613b78565b9481613706575b50156136e357505f1982018281116106d15781541115612aa1575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b6136f7926001600160d01b03169150614358565b5050613702836135cd565b9190565b65ffffffffffff83811691161490505f61369e565b600160401b81101561083b5760018101808455811015612aa1575f908382525f8051602061484183398151915201555f61367f565b919091600b90815480156137f7575b50613768614183565b50929091815492613777613bf1565b94816137e2575b50156137c357505f1982018281116106d15781541115612aa1575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b6137d7926001600160d01b03169150614428565b505061370283613601565b65ffffffffffff83811691161490505f61377e565b600160401b81101561083b5760018101808455811015612aa1575f908382525f8051602061486183398151915201555f61375f565b909291926001820190815480156138ba575b5084613849846141d8565b5094909284549361385983613c65565b96816138a5575b5015613882575050505f1981019081116106d1576136588591613702936135b8565b61370294929361389e926001600160d01b0390911691906144c7565b5050613635565b65ffffffffffff83811691161490505f613860565b600160401b81101561083b578060016138d692018455836135b8565b8154905f199060031b1b191690555f61383e565b51906108a9826107fc565b908161016091031261048a5761390961087c565b9061391381612af8565b825261392160208201612af8565b6020830152613932604082016138ea565b604083015261394360608201612ad8565b606083015261395460808201612ad8565b608083015260a081015160a083015261396f60c08201612af8565b60c083015261398060e08201612af8565b60e0830152610100613993818301612af8565b908301526101206139a5818301612af8565b908301526139b7610140809201612af8565b9082015290565b5f80516020614821833981519152546001600160a01b031633036139de57565b60405163118cdaa760e01b8152336004820152602490fd5b8115612936570490565b91818302915f1981850993838086109503948086039514613a805784831115613a735790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b821560030260111861423f565b50509061091792506139f6565b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815260808101916001600160401b0383118284101761083b576108a99260405261409b565b90613ae561293b565b821015613b66575f82815260096020908152604080832033845290915290205460ff16613b5457613b163383612b89565b918215613b42575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600c5480613bb857505f5b6001600160d01b03811615613bb357600d54811015612aa157600d5f525f80516020614841833981519152015490565b505f90565b805f198101116106d157600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c613b83565b600a5480613c2c57505f5b6001600160d01b03811615613bb357600b54811015612aa157600b5f525f80516020614861833981519152015490565b805f198101116106d157600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c613bfc565b805480613c9457505f5b6001600160d01b0381161561322b576001613c8a92016135b8565b90549060031b1c90565b5f199080828101116106d157825f5260205f2001015460301c613c6f565b9190600181018091116106d157600182018092116106d15761091792613a00565b600a54905f829160058411613d41575b613ced93506146ac565b80613d1057505f5b6001600160d01b03811615613bb357613c8a61091791613574565b613d35613d1f613d3c92612400565b600a5f525f805160206148018339815191520190565b5460301c90565b613cf5565b9192613d4c81614581565b81039081116106d157613ced93600a5f5265ffffffffffff80835f80516020614801833981519152015416908516105f14613d88575091613ce3565b929150613d949061242e565b90613ce3565b600c54905f829160058411613e01575b613db49350614715565b80613dd757505f5b6001600160d01b03811615613bb357613c8a61091791613596565b613d35613de6613dfc92612400565b600c5f525f805160206147e18339815191520190565b613dbc565b9192613e0c81614581565b81039081116106d157613db493600c5f5265ffffffffffff80835f805160206147e1833981519152015416908516105f14613e48575091613daa565b929150613e549061242e565b90613daa565b908154905f829160058411613ebd575b613e7593508461477e565b80613e9d57505f905b6001600160d01b0382161561322b57610917916001613c8a92016135b8565b613d35613eac613eb792612400565b835f5260205f200190565b90613e7e565b9192613ec881614581565b81039081116106d157613e7593855f5265ffffffffffff808360205f20015416908516105f14613ef9575091613e6a565b929150613f059061242e565b90613e6a565b60405190613f1882610840565b5f6020838281520152565b613f2b613f0b565b50613f34613f0b565b50600a54811015612aa157600a5f52602060405191613f5283610840565b5f8051602061480183398151915201549165ffffffffffff83169283825260301c9182910152600b54811015612aa157600b5f525f80516020614861833981519152015460405191613fa383610840565b8252602082015290565b613fb5613f0b565b50613fbe613f0b565b50600c54811015612aa157600c5f52602060405191613fdc83610840565b5f805160206147e183398151915201549165ffffffffffff83169283825260301c9182910152600d54811015612aa157600d5f525f80516020614841833981519152015460405191613fa383610840565b906020600161405161407d93614041613f0b565b5061404a613f0b565b50856135b8565b50936040519461406086610840565b549465ffffffffffff86169586825260301c9384910152016135b8565b9054906040519261408d84610840565b835260031b1c602082015290565b905f602091828151910182855af115612479575f513d6140ec57506001600160a01b0381163b155b6140ca5750565b604051635274afe760e01b81526001600160a01b039091166004820152602490fd5b600114156140c3565b9190600181018091116106d157600182018092116106d157614118828285613a00565b9282156129365709151581018091116106d15790565b600c548061413f57505f905f905f90565b805f198101116106d157600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460019165ffffffffffff82169160301c90565b600a548061419457505f905f905f90565b805f198101116106d157600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460019165ffffffffffff82169160301c90565b8054806141e95750505f905f905f90565b5f199181838101116106d1575f5260205f2001015460019165ffffffffffff82169160301c90565b60ff5f805160206148c18339815191525460401c161561422d57565b604051631afcd79f60e31b8152600490fd5b634e487b715f526020526024601cfd5b600c5490600160401b82101561083b576001820180600c55821015612aa157600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206147e183398151915290910155565b600a5490600160401b82101561083b576001820180600a55821015612aa157600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f8051602061480183398151915290910155565b8054600160401b81101561083b5761431a916001820181556135b8565b61434557815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c5491929180156143ff57613de661437091612400565b9081549165ffffffffffff908184169183168083116143ed578692036143b5576143ae92509065ffffffffffff82549181199060301b169116179055565b60301c9190565b50506143e8906143d46143c661089c565b65ffffffffffff9092168252565b6001600160d01b038516602082015261424f565b6143ae565b604051632520601d60e01b8152600490fd5b506144239061440f6143c661089c565b6001600160d01b038416602082015261424f565b5f9190565b600a5491929180156144a357613d1f61444091612400565b9081549165ffffffffffff908184169183168083116143ed5786920361447e576143ae92509065ffffffffffff82549181199060301b169116179055565b50506143e89061448f6143c661089c565b6001600160d01b03851660208201526142a6565b50614423906144b36143c661089c565b6001600160d01b03841660208201526142a6565b8054929392801561455c576144de6144e991612400565b825f5260205f200190565b9182549265ffffffffffff918285169281168084116143ed5787930361452857506143ae92509065ffffffffffff82549181199060301b169116179055565b9150506143e89161454861453a61089c565b65ffffffffffff9093168352565b6001600160d01b03861660208301526142fd565b50906144239161456d61453a61089c565b6001600160d01b03851660208301526142fd565b600181111561091757600181600160801b81101561469a575b61464261463861462e61462461461a61461061464e97600488600160401b6146499a101561468d575b640100000000811015614680575b62010000811015614673575b610100811015614667575b601081101561465b575b1015614653575b60030260011c614609818b6139f6565b0160011c90565b614609818a6139f6565b61460981896139f6565b61460981886139f6565b61460981876139f6565b61460981866139f6565b80936139f6565b821190565b900390565b60011b6145f9565b811c9160021b916145f2565b60081c91811b916145e8565b60101c9160081b916145dd565b60201c9160101b916145d1565b60401c9160201b916145c3565b50600160401b9050608082901c61459a565b905b8281106146ba57505090565b9091808216906001818418811c83018093116106d157600a5f5265ffffffffffff80845f80516020614801833981519152015416908616105f14614702575050915b906146ae565b9093925081018091116106d157906146fc565b905b82811061472357505090565b9091808216906001818418811c83018093116106d157600c5f5265ffffffffffff80845f805160206147e1833981519152015416908616105f1461476b575050915b90614717565b9093925081018091116106d15790614765565b91905b83821061478e5750505090565b909192808316906001818518811c83018093116106d157855f5265ffffffffffff808460205f20015416908516105f146147cd575050925b9190614781565b9094935081018091116106d157916147c656fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a89016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220a8c535672167031173259581b81285c7c29b3302529e4963221b23f631bb0cce64736f6c63430008190033","sourceMap":"981:14960:108:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;981:14960:108;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;981:14960:108;;;;;;;;;;3551:87:23;-1:-1:-1;;;1134:40:32;;-1:-1:-1;3551:87:23;;;981:14960:108;-1:-1:-1;981:14960:108;;;;;;;;-1:-1:-1;;981:14960:108;;;;;;;966:38:109;981:14960:108;;;;;;;;;-1:-1:-1;;981:14960:108;;;;;;;821:37:109;981:14960:108;;;;-1:-1:-1;;;;;981:14960:108;;;;;:::o;:::-;;;;;;-1:-1:-1;;981:14960:108;;;;;;;;;:::i;:::-;;;3361:103:30;;;:::i;:::-;-1:-1:-1;;;;;981:14960:108;;5525:21;5521:75;;5634:10;981:14960;;;;5606:15:109;981:14960:108;;;;;5606:33:109;;;:::i;:24::-;:33;:::i;:::-;5610:35:108;;5606:88;;1057:70:100;5173:21:109;;:::i;:::-;4803:22;;:::i;:::-;1057:70:100;;;:::i;:::-;5801:20:108;;;5797:82;;5904:43;;;;:::i;:::-;3426:1:30;;1949;-1:-1:-1;;;;;;;;;;;981:14960:108;3860:283:30;3426:1;981:14960:108;;;;;;;;;;;;;;;;;;5797:82;981:14960;;-1:-1:-1;;;;;;5844:24:108;;981:14960;;5844:24;5606:88;981:14960;;-1:-1:-1;;;5668:15:108;;981:14960;;5668:15;5521:75;981:14960;;-1:-1:-1;;;5569:16:108;;981:14960;;5569:16;981:14960;;;;;;-1:-1:-1;;981:14960:108;;;;;;-1:-1:-1;981:14960:108;-1:-1:-1;;;;;;;;;;;981:14960:108;;;4919:24:23;981:14960:108;-1:-1:-1;981:14960:108;4919:24:23;981:14960:108;;;;;;;;;;;;;-1:-1:-1;;981:14960:108;;;;;;;;-1:-1:-1;;;;;981:14960:108;;;;;;;;;;;;;;-1:-1:-1;;981:14960:108;;;;4084:14:109;;:::i;:::-;4112:10;;4108:65;;4190:17;981:14960:108;;;;;;;;;;;;;;;;4210:27:109;981:14960:108;;;4210:27:109;;:::i;:::-;981:14960:108;;;;;;;4189:60:109;981:14960:108;4189:60:109;;:::i;:::-;981:14960:108;;;;;;;;;;;;;;;;;;:::i;4108:65:109:-;981:14960:108;;-1:-1:-1;;;4145:17:109;;981:14960:108;;4145:17:109;981:14960:108;;;;-1:-1:-1;;;;;981:14960:108;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:108;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;981:14960:108;;;;;;:::i;:::-;-1:-1:-1;;;;;981:14960:108;;;;;;;;;;;;;;:::i;:::-;3361:103:30;;;;:::i;:::-;1673:7:84;-1:-1:-1;;;;;981:14960:108;1659:10:84;:21;1655:71;;-1:-1:-1;;;;;;;;;;;981:14960:108;;;;;;;6431:44:26;;;;;981:14960:108;6427:105:26;;;;;-1:-1:-1;15924:8:108;;6427:105:26;981:14960:108;;-1:-1:-1;;;6498:23:26;;981:14960:108;;6498:23:26;6431:44;981:14960:108;;;;6450:25:26;;;-1:-1:-1;6431:44:26;;;;;1655:71:84;981:14960:108;;-1:-1:-1;;;1703:12:84;;981:14960:108;;1703:12:84;981:14960:108;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:108;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;981:14960:108;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:108;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;981:14960:108;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;981:14960:108;;;;;;-1:-1:-1;;981:14960:108;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;981:14960:108;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;-1:-1:-1;;981:14960:108;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;981:14960:108;;;;;;;5383:59:109;981:14960:108;;;;;;:::i;:::-;-1:-1:-1;;;;;981:14960:108;;;-1:-1:-1;981:14960:108;;;5383:15:109;981:14960:108;;;;;5383:59:109;:::i;:::-;981:14960:108;;;;;;;;;;;;-1:-1:-1;;981:14960:108;;;;;;655:32:84;-1:-1:-1;;;;;981:14960:108;;;;;;;;;;;;-1:-1:-1;;981:14960:108;;;;5350:25:23;981:14960:108;;;;;;;:::i;:::-;;-1:-1:-1;981:14960:108;-1:-1:-1;;;;;;;;;;;981:14960:108;;3202:4:23;4919:24;981:14960:108;-1:-1:-1;981:14960:108;4919:24:23;981:14960:108;3202:4:23;:::i;:::-;5350:25;:::i;:::-;981:14960:108;;;;;;;-1:-1:-1;;981:14960:108;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;981:14960:108;;6441:34:23;6437:102;;6549:37;981:14960:108;;;6549:37:23;:::i;6437:102::-;981:14960:108;;-1:-1:-1;;;6498:30:23;;981:14960:108;;6498:30:23;981:14960:108;;;;;;-1:-1:-1;;981:14960:108;;;;;1524:22;981:14960;;;;1524:46;;;981:14960;;;;;;;;;;;1524:46;-1:-1:-1;1550:20:108;981:14960;;;;;1524:46;;981:14960;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;981:14960:108;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;981:14960:108;;;;;;;;;;;9542:26;9538:76;;-1:-1:-1;;981:14960:108;;;;;-1:-1:-1;981:14960:108;;;;;;9665:27;;981:14960;;9665:27;1949:1:30;-1:-1:-1;;;;;;;;;;;981:14960:108;;9538:76;981:14960;;-1:-1:-1;;;9591:12:108;;981:14960;;9591:12;981:14960;;;;;;-1:-1:-1;;981:14960:108;;;;;;1718:31:109;981:14960:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;-1:-1:-1;;;;;981:14960:108;;;;;3474:24;;3470:81;;-1:-1:-1;981:14960:108;;;;3565:55;;;981:14960;3561:118;;981:14960;;-1:-1:-1;;;3713:43:108;;;3750:4;3713:43;;;981:14960;;;;;;;;;;;;;;;;;;;;;;;;;3713:43;;;;;;;;;;-1:-1:-1;3713:43:108;;;981:14960;;3829:6;981:14960;;;3750:4;;3802:10;;3829:6;;:::i;:::-;-1:-1:-1;981:14960:108;;;3864:43;;;3750:4;3864:43;;;981:14960;;;;;;;;;;3864:43;981:14960;;;;;;3864:43;981:14960;;;;;3864:43;;;;;;;:59;:43;-1:-1:-1;3864:43:108;;;981:14960;3864:59;;;:::i;:::-;3938:20;;;3934:79;;981:14960;;;;;4027:64;;981:14960;4023:123;;5173:21:109;;981:14960:108;5173:21:109;4502:93:108;5173:21:109;;:::i;:::-;4803:22;4426:66:108;4803:22:109;;:::i;:::-;4349:67:108;390:70:100;;;;;:::i;:::-;837:15:75;4385:30:108;837:15:75;819:34;837:15;819:34;:::i;:::-;4385:30:108;;:::i;:::-;4349:67;;:::i;:::-;837:15:75;;4463:28:108;837:15:75;819:34;837:15;819:34;:::i;4463:28:108:-;4426:66;;:::i;:::-;-1:-1:-1;;;;;;;981:14960:108;;;;;;5606:15:109;981:14960:108;;;;;837:15:75;4553:41:108;837:15:75;5606:33:109;:24;819:34:75;837:15;819:34;:::i;:::-;-1:-1:-1;;;;;981:14960:108;;;;;;;5606:15:109;981:14960:108;;;;;;;5606:33:109;4553:41:108;:::i;:::-;4502:93;;:::i;:::-;-1:-1:-1;;981:14960:108;;;;;;;;;;;3802:10;;4611:62;;981:14960;;4611:62;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;981:14960:108;3860:283:30;3426:1;981:14960:108;;;;;;;;;;;;;;;;;;;4023:123;981:14960;;-1:-1:-1;;;4114:21:108;;;4027:64;5173:21:109;4045:31:108;5173:21:109;;;:::i;4045:31:108:-;981:14960;;-1:-1:-1;4027:64:108;;3934:79;-1:-1:-1;981:14960:108;;-1:-1:-1;;;3981:21:108;;;3864:43;;;;;;-1:-1:-1;3864:43:108;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;3713:::-;3829:6;3713:43;;;;;;;;;;;;;;;:::i;:::-;;;;;3561:118;-1:-1:-1;981:14960:108;;-1:-1:-1;;;3643:25:108;;;3565:55;-1:-1:-1;3609:10:108;981:14960;;;;3586:22;981:14960;;;;;;;;3585:35;3565:55;;3470:81;981:14960;;-1:-1:-1;;;3521:19:108;;;981:14960;;;;;;-1:-1:-1;;981:14960:108;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:108;;;;;1805:27:109;981:14960:108;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:108;;;;;;1968:34:109;981:14960:108;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:108;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;981:14960:108;;;;;;;;;:::i;:::-;;;;;4622:48:109;981:14960:108;;;:::i;:::-;4622:48:109;;:::i;981:14960:108:-;;;;;;-1:-1:-1;;981:14960:108;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;981:14960:108;;;;;;;;;;;;;10370:24;10366:74;;-1:-1:-1;;981:14960:108;;;;;;;;-1:-1:-1;981:14960:108;;;;;;10489:25;;981:14960;;10489:25;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;981:14960:108;3860:283:30;981:14960:108;;;;;;-1:-1:-1;;981:14960:108;;;;;-1:-1:-1;;;;;;;;;;;;;;;;981:14960:108;;;;;;;;;;;;;;-1:-1:-1;;981:14960:108;;;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;;;;;981:14960:108;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;8837:64:26;;981:14960:108;;;;;;734:29:84;730:87;;981:14960:108;;;;;6431:44:26;;;;;981:14960:108;6427:105:26;;;6656:20;981:14960:108;6656:20:26;981:14960:108;1167:340:84;981:14960:108;;;;-1:-1:-1;;;;;981:14960:108;;;;;6575:22:26;-1:-1:-1;;;;;;;;;;;;;;981:14960:108;;;;;;;;;6575:22:26;1167:340:84;:::i;:::-;-1:-1:-1;;;;;;;;;;;981:14960:108;;-1:-1:-1;;981:14960:108;;;;;-1:-1:-1;;;;;981:14960:108;;;;;;;;;;;;;6656:20:26;;;;981:14960:108;6431:44:26;981:14960:108;;;;;-1:-1:-1;6450:25:26;6431:44;;;730:87:84;981:14960:108;;-1:-1:-1;;;786:20:84;;981:14960:108;;786:20:84;981:14960:108;;;;;;-1:-1:-1;;981:14960:108;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;981:14960:108;;;;;;-1:-1:-1;981:14960:108;2431:59:109;981:14960:108;;;;-1:-1:-1;981:14960:108;;;;;;;;;;;;;;-1:-1:-1;;981:14960:108;;;;3875:17:109;981:14960:108;;3895:30:109;981:14960:108;;;;;3895:14:109;;;:::i;:::-;981:14960:108;;;3895:30:109;;:::i;:::-;981:14960:108;;;;;;;3874:63:109;981:14960:108;3874:63:109;;:::i;:::-;981:14960:108;;;;;;;;;;;;;-1:-1:-1;;981:14960:108;;;;;;1200:42:109;-1:-1:-1;;;;;981:14960:108;;;;;;;;;;;;-1:-1:-1;;981:14960:108;;;;;;2136:32:109;981:14960:108;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:108;;;;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;981:14960:108;;-1:-1:-1;;;;;;981:14960:108;;;;;;;-1:-1:-1;;;;;981:14960:108;3975:40:24;981:14960:108;;3975:40:24;981:14960:108;;;;;;;-1:-1:-1;;981:14960:108;;;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;7131:7:108;981:14960;7117:21;;-1:-1:-1;;;;;981:14960:108;;-1:-1:-1;;;;;981:14960:108;;;7117:21;:10;:21;7113:71;;7218:14;;:::i;:::-;7265:25;;;;:::i;:::-;7305:17;;;;:53;;;981:14960;7304:87;;;;981:14960;7300:146;;981:14960;5173:21:109;9310:48:108;5173:21:109;;;:::i;:::-;7540:17:108;7528:30;7540:17;;;:::i;:::-;981:14960;;7528:11;981:14960;;;;;;;7528:30;981:14960;;7572:29;;;;;7642:30;;;;;:::i;:::-;3066:5:70;;;3463;;;981:14960:108;3060:42:70;;7752:17:108;;;7748:384;;7568:1615;;;;;;;9197:17;9193:102;;7568:1615;981:14960;;;;;;;;;;;;;;;;;;;;;;;9310:48;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;981:14960:108;3860:283:30;3426:1;981:14960:108;;;;;;;;;;;;;9193:102;-1:-1:-1;981:14960:108;9270:13;;981:14960;;9230:18;;981:14960;;-1:-1:-1;;;;;981:14960:108;;;9230:18;7556:1;981:14960;-1:-1:-1;;;;;981:14960:108;9270:13;;:::i;:::-;9193:102;;7748:384;8045:29;7813:50;7962:65;7813:50;7998:28;7914:29;7813:50;8057:16;7813:50;8077:40;7813:50;;;:::i;:::-;7914:29;;;:::i;:::-;837:15:75;819:34;837:15;819:34;:::i;:::-;7998:28:108;;:::i;8077:40::-;8057:16;;:::i;8045:29::-;981:14960;7748:384;;;;;;;7568:1615;8185:26;;;;981:14960;;7528:11;981:14960;;;;;;;8185:26;981:14960;8250:27;:45;:27;;;;;:::i;:45::-;3463:5:70;3066;;;3463;;;981:14960:108;3060:42:70;;8375:17:108;;8371:802;;7568:1615;;;;;;;;8371:802;9096:26;8436:50;;8537:53;8436:50;8637:54;8436:50;8637:29;8436:50;9125:33;8436:50;;;;:::i;:::-;8537:53;;;;;;:::i;:::-;8637:29;;;;:::i;:::-;:54;:::i;:::-;8714:33;;;;8710:194;;8371:802;8922:65;837:15:75;8958:28:108;9038:40;837:15:75;;;819:34;837:15;819:34;:::i;9038:40:108:-;9005:30;9017:17;;;:::i;9005:30::-;981:14960;9125:33;:::i;:::-;9096:26;981:14960;;7528:11;981:14960;;;;;;;9096:26;981:14960;8371:802;;;;;;;8710:194;8797:33;8771:59;8922:65;8797:33;;;9038:40;8797:33;;;:::i;:::-;8771:59;;:::i;:::-;8852:33;;-1:-1:-1;8852:33:108;;-1:-1:-1;8710:194:108;;7300:146;981:14960;;-1:-1:-1;;;7414:21:108;;981:14960;;7414:21;7304:87;7363:28;;;;7304:87;;7305:53;7341:17;;;;:::i;:::-;7326:32;;7305:53;;7113:71;981:14960;;-1:-1:-1;;;7161:12:108;;981:14960;;7161:12;981:14960;;;;;;-1:-1:-1;;981:14960:108;;;;4384:17:109;981:14960:108;;;;;;;4405:14:109;;;:::i;:::-;4384:17;981:14960:108;;;;;;;4404:36:109;981:14960:108;;;4404:36:109;;:::i;981:14960:108:-;;;;;;-1:-1:-1;;981:14960:108;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;981:14960:108;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;981:14960:108;2307:68:109;981:14960:108;;;;;-1:-1:-1;981:14960:108;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:108;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;981:14960:108;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;981:14960:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6491:14;981:14960;;6491:14;;:::i;981:14960::-;;;;;4994:47:109;981:14960:108;;;:::i;:::-;4994:47:109;;:::i;981:14960:108:-;;;;;;;;;;;;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;10932:22:108;981:14960;;;;;10928:89;;981:14960;;-1:-1:-1;;;11032:49:108;;-1:-1:-1;;;;;981:14960:108;;;11032:49;;;981:14960;;;;;;;;;;;;;;;11032:49;11042:17;;;981:14960;11032:49;;;;;;;-1:-1:-1;11032:49:108;;;981:14960;11031:50;;11027:102;;981:14960;;-1:-1:-1;;;11143:34:108;;981:14960;;;;;11143:34;981:14960;11143:34;981:14960;;11143:34;;;;;;;-1:-1:-1;11143:34:108;;;981:14960;11189:4;;;981:14960;;11143:51;11139:107;;-1:-1:-1;10932:22:108;981:14960;;-1:-1:-1;;;;;981:14960:108;;;;-1:-1:-1;;;;;;981:14960:108;;;;;;;-1:-1:-1;;;981:14960:108;;;11334:24;-1:-1:-1;;11334:24:108;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;981:14960:108;3860:283:30;11139:107:108;981:14960;;-1:-1:-1;;;11217:18:108;;;11143:34;;;;;;;-1:-1:-1;11143:34:108;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;11027:102;-1:-1:-1;981:14960:108;;-1:-1:-1;;;11104:14:108;;;11032:49;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;10928:89;981:14960;;-1:-1:-1;;;10977:29:108;;;981:14960;;;;;;-1:-1:-1;;981:14960:108;;;;;;1298:40:109;-1:-1:-1;;;;;981:14960:108;;;;;;;;;;;;-1:-1:-1;;981:14960:108;;;;1703:14;;:::i;:::-;5173:21:109;;:::i;:::-;981:14960:108;;;;1750:11;981:14960;;;;;;;;;;;;;1791:1;981:14960;;;;;;;;;1750:11;981:14960;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:108;;;;-1:-1:-1;;;;;;;;;;;981:14960:108;;;-1:-1:-1;;;;;981:14960:108;;;;;;;;;;;;;;-1:-1:-1;;981:14960:108;;;;;;3901:31:23;981:14960:108;;;;;:::i;:::-;;;-1:-1:-1;981:14960:108;-1:-1:-1;;;;;;;;;;;981:14960:108;;;-1:-1:-1;981:14960:108;;;;;;;;;;;;;;;;;3901:31:23;981:14960:108;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:108;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;981:14960:108;5606:15:109;981:14960:108;;;5606:33:109;981:14960:108;-1:-1:-1;981:14960:108;5606:33:109;:::i;981:14960:108:-;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;981:14960:108;;;;-1:-1:-1;981:14960:108;477:31:88;981:14960:108;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:88;;;;981:14960:108;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;981:14960:108;;;;;;;;;;;;477:31:88;;;981:14960:108;;;;;;;;;;;;;;;;;;;;-1:-1:-1;981:14960:108;;;;;;;;;;;;;;477:31:88;981:14960:108;477:31:88;;;;;;;:::i;:::-;518:79;;;981:14960:108;518:79:88;;981:14960:108;;;;;;;;;;;-1:-1:-1;;981:14960:108;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:108;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:108;;;;;;;1109:35:109;981:14960:108;;;;;;;;;-1:-1:-1;;981:14960:108;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;;;;;981:14960:108;;;9907:21;;9903:75;;-1:-1:-1;981:14960:108;;;9992:22;981:14960;;;;;;;;;;;;;9992:41;9988:91;;-1:-1:-1;;;;;981:14960:108;;;;;3586:22;981:14960;;;;;10145:44;;;;10089:40;;:31;981:14960;;;;;;;;;;;;;;10089:40;981:14960;;;;;;;;;;;;;;;10145:44;;;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;981:14960:108;3860:283:30;9903:75:108;981:14960;;-1:-1:-1;;;9951:16:108;;981:14960;;9951:16;981:14960;;;;;;-1:-1:-1;;981:14960:108;;;;;2666:94:109;981:14960:108;;;;;:::i;:::-;;;-1:-1:-1;981:14960:108;2666:94:109;981:14960:108;;;-1:-1:-1;981:14960:108;;;;;;;;;;;;;;;;;2666:94:109;981:14960:108;;;;;;;;;;;;;-1:-1:-1;;981:14960:108;;;;;;2816:92:109;981:14960:108;;;;;:::i;:::-;;;-1:-1:-1;981:14960:108;2816:92:109;981:14960:108;;;-1:-1:-1;981:14960:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;11459:20:108;981:14960;;;;;11455:85;;-1:-1:-1;;;;;981:14960:108;;;;;;11550:312;;981:14960;11459:20;981:14960;;-1:-1:-1;;;;981:14960:108;-1:-1:-1;;;981:14960:108;;;11872:27;11915:20;-1:-1:-1;11915:20:108;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;981:14960:108;3860:283:30;11550:312:108;981:14960;;-1:-1:-1;;;11597:45:108;;-1:-1:-1;;;;;981:14960:108;;11597:45;;;981:14960;;;11597:45;;981:14960;;;;;;11597:45;11607:15;;;981:14960;11597:45;;;;;;;-1:-1:-1;11597:45:108;;;11550:312;11596:46;;11592:104;;981:14960;;-1:-1:-1;;;11714:30:108;;;981:14960;11714:30;981:14960;11714:30;;;;;;;;-1:-1:-1;11714:30:108;;;11550:312;11756:4;;;981:14960;;11714:47;11710:109;;-1:-1:-1;11459:20:108;981:14960;;-1:-1:-1;;;;;;981:14960:108;-1:-1:-1;;;;;981:14960:108;;;;;;;;;11550:312;;;;;;11710:109;981:14960;;-1:-1:-1;;;11788:16:108;;;11714:30;;;;;;;-1:-1:-1;11714:30:108;;;;;;:::i;:::-;;;;;;11592:104;981:14960;;-1:-1:-1;;;11669:12:108;;981:14960;;11669:12;11597:45;;;;;;;;;;;;;;:::i;:::-;;;;11455:85;981:14960;;-1:-1:-1;;;11502:27:108;;;981:14960;;;;;;-1:-1:-1;;981:14960:108;;;;;;;;;:::i;:::-;;;3361:103:30;;;:::i;:::-;-1:-1:-1;;;;;981:14960:108;;;;;6112:23;;6108:79;;6273:6;981:14960;6206:13;;;;:::i;:::-;981:14960;;;-1:-1:-1;981:14960:108;;;;6273:6;:::i;:::-;981:14960;;;;;;;;;;;;6302:10;;6296:43;;981:14960;6296:43;1949:1:30;-1:-1:-1;;;;;;;;;;;981:14960:108;;;;;;;;;;;;;;6108:79;981:14960;;-1:-1:-1;;;6158:18:108;;981:14960;;6158:18;981:14960;;;;;;-1:-1:-1;;981:14960:108;;;;;;-1:-1:-1;981:14960:108;2546:64:109;981:14960:108;;;;-1:-1:-1;981:14960:108;;;;;;;;;;;;;;-1:-1:-1;;981:14960:108;;;;2058:22:109;981:14960:108;;;-1:-1:-1;;;;;981:14960:108;;;;;;;;;;;;;;-1:-1:-1;;981:14960:108;;;;;5173:21:109;;:::i;981:14960:108:-;;;;;;-1:-1:-1;;981:14960:108;;;;;;3361:103:30;;:::i;:::-;966:10:28;-1:-1:-1;981:14960:108;;;;;;;;;;1109:35:109;;981:14960:108;;4468:23:23;4464:108;;981:14960:108;;;;10692:21;10688:71;;981:14960;;10805:22;981:14960;;;;;;;;10805:22;1949:1:30;-1:-1:-1;;;;;;;;;;;981:14960:108;;4464:108:23;981:14960:108;;;;4514:47:23;;;;;;966:10:28;981:14960:108;4514:47:23;;981:14960:108;;;;;4514:47:23;981:14960:108;;;;;;-1:-1:-1;;981:14960:108;;;;;4803:22:109;;:::i;981:14960:108:-;;;;;;-1:-1:-1;;981:14960:108;;;;;;;;;:::i;:::-;3123:14;;:::i;:::-;3154:24;;;:::i;:::-;3181:29;;;;;:::i;:::-;981:14960;;;;;;;3235:1;981:14960;;;;;;;3213:33;;;:::i;:::-;981:14960;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:108;;;;1888:24:109;981:14960:108;;;-1:-1:-1;;;;;981:14960:108;;;;;;;;;;;;;;-1:-1:-1;;981:14960:108;;;;5767:26:23;981:14960:108;;;;;;;:::i;:::-;;-1:-1:-1;981:14960:108;-1:-1:-1;;;;;;;;;;;981:14960:108;;3202:4:23;4919:24;981:14960:108;-1:-1:-1;981:14960:108;4919:24:23;981:14960:108;3202:4:23;:::i;:::-;5767:26;:::i;981:14960:108:-;;;;;;-1:-1:-1;;981:14960:108;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:108;;;;;;;;;;;;-1:-1:-1;;981:14960:108;;;;;;;675:39:109;981:14960:108;;;;;;;;;-1:-1:-1;;981:14960:108;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:108;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;981:14960:108;;;;;;;;;;;;;;;:::i;:::-;1972:48;;981:14960;;;;;;;:::i;:::-;;;;;;;;;;;;;;2034:16;;2030:111;;981:14960;;2233:39;1057:70:100;2233:39:108;;4622:48:109;2196:77:108;2233:39;;;;2196:77;;:::i;:::-;2312:36;;4994:47:109;981:14960:108;2312:36;;;4994:47:109;;:::i;:::-;2389:37:108;;;4622:48:109;;:::i;:::-;1057:70:100;;:::i;:::-;981:14960:108;;;;;;;;;;;;;2030:111;2089:41;;;;-1:-1:-1;981:14960:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;4622:48:109;981:14960:108;2196:77;981:14960;1057:70:100;981:14960:108;;;:::i;:::-;;;;;2030:111;;;;;981:14960;;;;;;-1:-1:-1;;981:14960:108;;;;2357:1:24;981:14960:108;;;;;:::i;:::-;2303:62:24;;:::i;:::-;2357:1;:::i;981:14960:108:-;;;;;;-1:-1:-1;;981:14960:108;;;;;;;;;:::i;:::-;;;3361:103:30;;:::i;:::-;-1:-1:-1;;;;;981:14960:108;;4890:21;4886:75;;4975:11;;4971:73;;845:69:100;4803:22:109;;:::i;:::-;5173:21;;:::i;:::-;845:69:100;;;:::i;:::-;5180:10:108;981:14960;;;;5606:15:109;981:14960:108;;;;;5180:10;;;5606:33:109;;;:::i;:::-;5150:41:108;;5146:96;;5267:40;;;;;:::i;5146:96::-;981:14960;;-1:-1:-1;;;5214:17:108;;981:14960;;5214:17;4971:73;981:14960;;-1:-1:-1;;;5009:24:108;;981:14960;;5009:24;981:14960;;;;;;-1:-1:-1;;981:14960:108;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;981:14960:108;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;7556:1;981:14960;;;;;;;:::o;:::-;;;;;;;;;;:::o;5256:193:109:-;-1:-1:-1;;;;;981:14960:108;-1:-1:-1;981:14960:108;;;5383:15:109;981:14960:108;;;;;5383:59:109;;5256:193;;5383:59;:::i;981:14960:108:-;;;;;;;;;;;:::o;:::-;;;;;;;;;;1167:340:84;;13510:30:108;1167:340:84;981:14960:108;1167:340:84;6893:76:26;;:::i;:::-;;;:::i;:::-;1949:1:30;-1:-1:-1;;;;;;;;;;;981:14960:108;-1:-1:-1;;;;;981:14960:108;;;;1376:73:84;;1167:340;981:14960:108;;;;:::i;:::-;13510:30;981:14960;;;13510:30;;;;;;:::i;:::-;981:14960;;;;-1:-1:-1;;;;;981:14960:108;13555:31;13551:88;;13653:20;;;;981:14960;;;;;;;;;;13653:25;13649:85;;13748:29;;;981:14960;;13748:29;;981:14960;13748:43;;-1:-1:-1;;;;;981:14960:108;;;13748:43;;13744:943;;1167:340:84;981:14960:108;;;15647:32;981:14960;14817:36;981:14960;;;14697:30;981:14960;;;;;;;;;;;;1398:1:84;981:14960:108;;-1:-1:-1;;;;;;981:14960:108;;;;;;-1:-1:-1;;;;;981:14960:108;;;;;;;;14697:30;13510;14747:13;;981:14960;;;;-1:-1:-1;;;;;;981:14960:108;-1:-1:-1;;;;;981:14960:108;;;;;;;;;14771:36;819:34:75;837:15;819:34;:::i;:::-;1949:1:30;981:14960:108;;-1:-1:-1;;;;981:14960:108;;;;;;-1:-1:-1;;;981:14960:108;;;;;;;;14771:36;981:14960;;;;;;1949:1:30;981:14960:108;;-1:-1:-1;;;;;981:14960:108;;;;;;-1:-1:-1;;;;;;981:14960:108;;;;;;;;14817:36;14864:42;981:14960;14883:23;;;981:14960;;;;;;;;;1398:1:84;981:14960:108;;;;;;;1398:1:84;981:14960:108;;14864:42;14917:38;981:14960;14934:21;;;981:14960;;;;;;;1398:1:84;981:14960:108;;;;;;;;;;;;1398:1:84;981:14960:108;;14917:38;14965:34;14980:19;;;981:14960;14965:34;981:14960;;14965:34;981:14960;-1:-1:-1;;;;;981:14960:108;;;;;;;15010:135;;1167:340:84;-1:-1:-1;15158:36:108;;;981:14960;-1:-1:-1;;;;;981:14960:108;;;;15154:157;;1167:340:84;-1:-1:-1;15324:35:108;;;981:14960;-1:-1:-1;;;;;981:14960:108;;;;15320:153;;1167:340:84;-1:-1:-1;15486:34:108;;;981:14960;-1:-1:-1;;;;;981:14960:108;;;;15482:152;;1167:340:84;-1:-1:-1;15647:32:108;981:14960;-1:-1:-1;;;;;981:14960:108;;;;;;;15643:145;;1167:340:84;:::o;15643:145:108:-;15709:68;;;:::i;:::-;;1167:340:84:o;15482:152:108:-;15550:73;;;:::i;:::-;;15482:152;;;15320:153;15389:73;;;:::i;:::-;;15320:153;;;15154:157;15224:76;;;:::i;:::-;;15154:157;;;15010:135;15073:61;;;:::i;:::-;;15010:135;;;13744:943;13811:36;;;981:14960;13811:50;;-1:-1:-1;;;;;981:14960:108;;;13811:50;;13807:405;;13744:943;14230:34;;;981:14960;14230:48;;-1:-1:-1;;;;;981:14960:108;;;14230:48;13744:943;14226:451;14302:21;;;981:14960;;14302:21;;14351:19;;;981:14960;14351:24;:74;;;14298:365;14347:150;;14298:365;;981:14960;15647:32;14298:365;14817:36;981:14960;;14298:365;;14226:451;;;;;;;13744:943;;14347:150;981:14960;-1:-1:-1;;;14460:14:108;;;;;14351:74;-1:-1:-1;14379:32:108;;;981:14960;14379:46;;-1:-1:-1;;;;;981:14960:108;;;14379:46;;14351:74;;14298:365;14525:19;;;981:14960;14525:24;;;:74;;;14298:365;14521:142;;14298:365;;981:14960;15647:32;14298:365;14817:36;981:14960;;14298:365;;;14525:74;-1:-1:-1;14553:32:108;;;981:14960;14553:46;;-1:-1:-1;;;;;981:14960:108;;;14553:46;;;14525:74;;13807:405;13885:23;;;981:14960;;13885:23;;13936:35;;;981:14960;13936:49;;-1:-1:-1;;;;;981:14960:108;;;13936:49;13807:405;13932:125;981:14960;-1:-1:-1;;;14020:14:108;;;;;13881:317;14085:35;;;981:14960;14085:49;;-1:-1:-1;;;;;981:14960:108;;;14085:49;14081:117;13807:405;14081:117;981:14960;-1:-1:-1;;;14165:14:108;;;;;13649:85;981:14960;;-1:-1:-1;;;13701:22:108;;;;;13551:88;981:14960;;-1:-1:-1;;;13609:19:108;;;;;1376:73:84;6961:1:26;6893:76;;;:::i;:::-;;;:::i;6961:1::-;1376:73:84;;;2492:191:108;-1:-1:-1;;;;;981:14960:108;-1:-1:-1;981:14960:108;;;5606:15:109;981:14960:108;;;;;5606:33:109;;;:::i;:::-;5173:21;;:::i;:::-;4803:22;;:::i;:::-;981:14960:108;1884:1:100;981:14960:108;;;;;;;1884:1:100;981:14960:108;;;;;;;9478:25:70;;;:::i;981:14960:108:-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;3612:132:109:-;819:34:75;837:15;819:34;:::i;:::-;3683:54:109;3703:17;981:14960:108;3684:36:109;981:14960:108;;;;;;;3684:36:109;;:::i;:::-;981:14960:108;;;3683:54:109;;:::i;:::-;981:14960:108;3612:132:109;:::o;3313:244::-;3418:17;981:14960:108;;;;;;;;;;;;;;3406:29:109;3402:85;;3503:47;3504:29;;;;:::i;3402:85::-;981:14960:108;;-1:-1:-1;;;3458:18:109;;;;;3361:103:30;;;;:::i;:::-;981:14960:108;;-1:-1:-1;;;;;981:14960:108;;;6521:23;;6517:79;;6650:11;;6646:70;;981:14960;6742:10;;;;;;-1:-1:-1;981:14960:108;;6887:49;;981:14960;;;;6864:6;;981:14960;;6821:18;;981:14960;;-1:-1:-1;;;;;981:14960:108;;;6821:18;6864:6;:::i;:::-;6887:49;981:14960;;6898:10;;;;6887:49;;;:::i;:::-;;;;3426:1:30;;1949;-1:-1:-1;;;;;;;;;;;981:14960:108;3860:283:30;6754:3:108;6790:9;6773:27;981:14960;6790:9;6783:17;6790:9;;;;;:::i;:::-;981:14960;6783:17;:::i;6773:27::-;6754:3;981:14960;6731:9;;6646:70;981:14960;;-1:-1:-1;;;6684:21:108;;;;;981:14960;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:108;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;3405:215:24:-;-1:-1:-1;;;;;981:14960:108;;;;3489:22:24;;3485:91;;-1:-1:-1;;;;;;;;;;;981:14960:108;;-1:-1:-1;;;;;;981:14960:108;;;;;;;;3975:40:24;-1:-1:-1;;3975:40:24;3405:215::o;3485:91::-;981:14960:108;;-1:-1:-1;;;3534:31:24;;3509:1;3534:31;;;981:14960:108;;;3534:31:24;2731:227:108;;2871:34;2731:227;981:14960;-1:-1:-1;981:14960:108;2871:18;981:14960;;;-1:-1:-1;981:14960:108;;;;;;;;;;;;;;;;;2871:34;981:14960;;-1:-1:-1;981:14960:108;2907:11;981:14960;;;-1:-1:-1;981:14960:108;;2927:16;981:14960;;;-1:-1:-1;981:14960:108;;;1884:1:100;981:14960:108;;;;;;;1884:1:100;981:14960:108;;;;;;;9478:25:70;;;:::i;3470:384:30:-;-1:-1:-1;;;;;;;;;;;1991:1:30;981:14960:108;;3670:20:30;3666:88;;1991:1;981:14960:108;;3470:384:30:o;3666:88::-;981:14960:108;;-1:-1:-1;;;3713:30:30;;;;;11948:968:108;12135:10;981:14960;;;;5606:15:109;981:14960:108;;;;;;11948:968;;;819:34:75;837:15;819:34;:::i;:::-;12135:10:108;981:14960;;;;5606:15:109;981:14960:108;;;;;5606:33:109;;;:::i;:::-;981:14960:108;;;;;;;;;12119:93;12835:74;12119:93;;;12660:30;12119:93;;:::i;:::-;837:15:75;;12222:67:108;819:34:75;837:15;819:34;:::i;:::-;12259:29:108;4803:22:109;;;:::i;12222:67:108:-;837:15:75;;12299:68:108;819:34:75;837:15;819:34;:::i;:::-;12335:31:108;5173:21:109;;;:::i;12299:68:108:-;12394:14;;12769:34;12394:14;12769:25;12394:18;:14;;:::i;:::-;:18;:::i;:::-;12726:33;12445:18;;981:14960;;7528:11;981:14960;;;;;;;12445:18;981:14960;12502:23;;981:14960;;12502:16;981:14960;;;;;;;12502:23;981:14960;390:70:100;;;;;:::i;:::-;12660:30:108;;;;;;:::i;:::-;12639:18;;981:14960;;7528:11;981:14960;;;;;;;12639:18;981:14960;12726:33;:::i;:::-;12700:23;;981:14960;;12502:16;981:14960;;;;;;;12700:23;981:14960;;;12769:18;981:14960;;;;;;;12769:25;981:14960;;;;;;;;;;;;;;;;12769:34;:50;981:14960;;;12769:50;:::i;:::-;981:14960;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:108;;;;12135:10;;981:14960;;12835:74;11948:968::o;14296:213:71:-;981:14960:108;14374:24:71;;;;14370:103;;981:14960:108;14296:213:71;:::o;14370:103::-;981:14960:108;;;;14421:41:71;;;;;;14452:2;14421:41;;;981:14960:108;;;;;14421:41:71;981:14960:108;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:99:-;;981:14960:108;;7686:17:99;7682:83;;981:14960:108;7789:27:99;981:14960:108;7789:27:99;981:14960:108;;7789:27:99;;;;;;:::i;:::-;7860:14;;;:::i;:::-;981:14960:108;;;;;;;;;;;;;;;;7888:22:99;;;7884:77;;7975:21;-1:-1:-1;7975:84:99;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;7789:27;8082:17;;;981:14960:108;8075:24:99;:::o;7975:84::-;981:14960:108;;;8009:16:99;4622:13:109;981:14960:108;8009:16:99;:::i;:::-;981:14960:108;;;8001:24:99;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:23::-;981:14960:108;;;;8029:29:99;;8001:57;;;;7884:77;7933:17;;;7789:27;7933:17;;;981:14960:108;7926:24:99;:::o;7682:83::-;7726:28;;;;:::i;7558:604::-;;981:14960:108;;7686:17:99;7682:83;;981:14960:108;7789:27:99;981:14960:108;7789:27:99;981:14960:108;;7789:27:99;;;;;;:::i;:::-;7860:14;;;:::i;:::-;981:14960:108;;;;;;;;;;;;;;;;7888:22:99;;;7884:77;;7975:21;-1:-1:-1;7975:84:99;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7975:84::-;981:14960:108;;;8009:16:99;4994:12:109;981:14960:108;8009:16:99;:::i;:::-;981:14960:108;;;8001:24:99;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:29::-;;8001:57;;;;7682:83;7726:28;;;;:::i;7558:604::-;;981:14960:108;;7686:17:99;7682:83;;981:14960:108;7789:27:99;981:14960:108;7789:27:99;981:14960:108;;7789:27:99;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;981:14960:108;;;;;;;;;;;;;;;;7888:22:99;;;7884:77;;7975:21;-1:-1:-1;7975:84:99;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;981:14960:108;8075:24:99;:::o;7975:84::-;981:14960:108;;;8009:16:99;981:14960:108;;8009:16:99;:::i;:::-;981:14960:108;;;8001:24:99;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:29::-;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;981:14960:108;7926:24:99;:::o;7682:83::-;7726:28;;;;:::i;4148:103:23:-;966:10:28;-1:-1:-1;981:14960:108;;;;;;;;;675:39:109;;981:14960:108;;3901:31:23;981:14960:108;;4468:23:23;4464:108;;4148:103;:::o;:::-;966:10:28;-1:-1:-1;981:14960:108;;;;;;;;;966:38:109;;981:14960:108;;3901:31:23;981:14960:108;4148:103:23;966:10:28;-1:-1:-1;981:14960:108;;;;;;;;;821:37:109;;981:14960:108;;3901:31:23;981:14960:108;4148:103:23;-1:-1:-1;981:14960:108;;;-1:-1:-1;;;;;;;;;;;981:14960:108;;;;;;;;966:10:28;981:14960:108;;;;;;;;;3901:31:23;981:14960:108;7270:387:23;-1:-1:-1;;;;;981:14960:108;;1398:1:84;981:14960:108;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;981:14960:108;;;;1398:1:84;981:14960:108;;;;;;;;;;;-1:-1:-1;;;;;981:14960:108;;;;;;;;;;-1:-1:-1;;981:14960:108;7509:4:23;981:14960:108;;;966:10:28;;-1:-1:-1;;;;;981:14960:108;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;1398:1:84;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;981:14960:108;;-1:-1:-1;981:14960:108;;;;;;;;;675:39:109;;-1:-1:-1;;;;;;;;;;;2887:71:23;981:14960:108;;3901:31:23;981:14960:108;;;;-1:-1:-1;981:14960:108;;;;;;;;;;;-1:-1:-1;;;;;981:14960:108;;;;;;;;;;-1:-1:-1;;981:14960:108;7509:4:23;981:14960:108;;;966:10:28;;-1:-1:-1;;;;;981:14960:108;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;981:14960:108;;-1:-1:-1;981:14960:108;;;;;;;;;821:37:109;;-1:-1:-1;;;;;;;;;;;2887:71:23;981:14960:108;;3901:31:23;981:14960:108;7270:387:23;-1:-1:-1;;;;;981:14960:108;;-1:-1:-1;981:14960:108;;;;;;;;;966:38:109;;-1:-1:-1;;;;;;;;;;;2887:71:23;981:14960:108;;3901:31:23;981:14960:108;7270:387:23;-1:-1:-1;;;;;981:14960:108;;-1:-1:-1;981:14960:108;;;;;;;;;1109:35:109;;-1:-1:-1;;;;;;;;;;;2887:71:23;981:14960:108;;3901:31:23;981:14960:108;7270:387:23;-1:-1:-1;981:14960:108;;;-1:-1:-1;;;;;;;;;;;981:14960:108;;;;;;;;-1:-1:-1;;;;;981:14960:108;;;;;;;;;;;;3901:31:23;981:14960:108;7892:388:23;-1:-1:-1;981:14960:108;;;-1:-1:-1;;;;;;;;;;;981:14960:108;;;;;;;;-1:-1:-1;;;;;981:14960:108;;;;;;;;;;;;;;;;-1:-1:-1;981:14960:108;;;;;;;;;;;-1:-1:-1;;;;;981:14960:108;;;;;;;;;;-1:-1:-1;;981:14960:108;;;966:10:28;;-1:-1:-1;;;;;981:14960:108;;8155:40:23;-1:-1:-1;;8155:40:23;981:14960:108;8209:11:23;:::o;1670:188:56:-;981:14960:108;;-1:-1:-1;;;1797:53:56;;;;-1:-1:-1;;;;;981:14960:108;;;1797:53:56;;;981:14960:108;;;;;;;;;;;;;;;;;1797:53:56;;;981:14960:108;;;;;;;-1:-1:-1;;;;;981:14960:108;;;;;1797:53:56;981:14960:108;;;1797:53:56;:::i;981:14960:108:-;7178:12:99;981:14960:108;;;;;;7178:12:99;-1:-1:-1;981:14960:108;-1:-1:-1;;;;;;;;;;;981:14960:108;;-1:-1:-1;981:14960:108;:::o;:::-;7178:12:99;981:14960:108;;;;;;7178:12:99;-1:-1:-1;981:14960:108;-1:-1:-1;;;;;;;;;;;981:14960:108;;-1:-1:-1;981:14960:108;:::o;:::-;;;;;;;;-1:-1:-1;981:14960:108;;-1:-1:-1;981:14960:108;;;-1:-1:-1;981:14960:108;:::o;:::-;6360:12:99;981:14960:108;-1:-1:-1;;;981:14960:108;;;;;;;;;6360:12:99;981:14960:108;;;;;;6360:12:99;-1:-1:-1;981:14960:108;-1:-1:-1;;;;;;;;;;;981:14960:108;;:::o;:::-;6360:12:99;981:14960:108;-1:-1:-1;;;981:14960:108;;;;;;;;;6360:12:99;981:14960:108;;;;;;6360:12:99;-1:-1:-1;981:14960:108;-1:-1:-1;;;;;;;;;;;981:14960:108;;:::o;:::-;;;;;-1:-1:-1;;;981:14960:108;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6246:584:99;;;;6360:12;981:14960:108;;;6360:24:99;;6356:75;;6246:584;6474:30;;;:::i;:::-;981:14960:108;;;;;;6578:12:99;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:99;;;-1:-1:-1;;;981:14960:108;;;;;;;;;-1:-1:-1;981:14960:108;;;-1:-1:-1;981:14960:108;;;;;;6798:25:99;981:14960:108;6246:584:99:o;6600:188::-;8310:38:73;;-1:-1:-1;;;;;981:14960:108;;-1:-1:-1;8310:38:73;:::i;:::-;6753:24:99;;;;;:::i;:::-;6798:25;6246:584;:::o;6604:24::-;981:14960:108;;;;;;6614:14:99;;-1:-1:-1;6604:24:99;;;6356:75;-1:-1:-1;;;981:14960:108;;;;;;;;;;;;;;;;-1:-1:-1;981:14960:108;;;;-1:-1:-1;;;;;;;;;;;981:14960:108;;6356:75:99;;;6246:584;;;;6360:12;981:14960:108;;;6360:24:99;;6356:75;;6246:584;6474:30;;;:::i;:::-;981:14960:108;;;;;;6578:12:99;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:99;;;-1:-1:-1;;;981:14960:108;;;;;;;;;-1:-1:-1;981:14960:108;;;-1:-1:-1;981:14960:108;;;;;;6798:25:99;981:14960:108;6246:584:99:o;6600:188::-;8310:38:73;;-1:-1:-1;;;;;981:14960:108;;-1:-1:-1;8310:38:73;:::i;:::-;6753:24:99;;;;;:::i;6604:::-;981:14960:108;;;;;;6614:14:99;;-1:-1:-1;6604:24:99;;;6356:75;-1:-1:-1;;;981:14960:108;;;;;;;;;;;;;;;;-1:-1:-1;981:14960:108;;;;-1:-1:-1;;;;;;;;;;;981:14960:108;;6356:75:99;;;6246:584;;;;;6360:12;;;981:14960:108;;;6360:24:99;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;981:14960:108;;;;;;6578:12:99;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:99;;;-1:-1:-1;;;;;981:14960:108;;;;;;;6644:21:99;;;:29;:21;;:::i;6600:188::-;6753:24;;981:14960:108;;8310:38:73;;-1:-1:-1;;;;;981:14960:108;;;;;8310:38:73;:::i;:::-;6753:24:99;;;:::i;6604:::-;981:14960:108;;;;;;6614:14:99;;-1:-1:-1;6604:24:99;;;6356:75;-1:-1:-1;;;981:14960:108;;;;;;6360:12:99;981:14960:108;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:99;;;981:14960:108;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;:::o;2658:162:24:-;-1:-1:-1;;;;;;;;;;;981:14960:108;-1:-1:-1;;;;;981:14960:108;966:10:28;2717:23:24;2713:101;;2658:162::o;2713:101::-;981:14960:108;;-1:-1:-1;;;2763:40:24;;966:10:28;2763:40:24;;;981:14960:108;;;2763:40:24;981:14960:108;;;;;;;:::o;4996:4226:70:-;;981:14960:108;;;;-1:-1:-1;;981:14960:108;4996:4226:70;5584:131;;;;;;;;;;;;5796:10;;5792:368;;6270:20;;;;6266:143;;6695:300;;;;940:4:60;-1:-1:-1;940:4:60;7214:31:70;;7259:375;;;8094:1;981:14960:108;;8075:1:70;981:14960:108;8074:21:70;981:14960:108;;;940:4:60;;981:14960:108;;;;940:4:60;;981:14960:108;;;;940:4:60;;981:14960:108;;;;940:4:60;;981:14960:108;;;;940:4:60;;981:14960:108;;;;940:4:60;;981:14960:108;7259:375:70;;;;-1:-1:-1;7259:375:70;;;6695:300;;;;;;981:14960:108;6695:300:70;;7259:375;7700:21;981:14960:108;4996:4226:70;:::o;6266:143::-;6330:16;;3066:5;981:14960:108;940:4:60;3060:42:70;6322:71;:::i;5792:368::-;6126:19;;;;;;;:::i;1271:160:56:-;981:14960:108;;-1:-1:-1;;;1380:43:56;;;;-1:-1:-1;;;;;981:14960:108;;;1380:43:56;;;981:14960:108;;;;;;;;;1380:43:56;;;981:14960:108;;;;-1:-1:-1;;;;;981:14960:108;;;;;;;;1380:43:56;981:14960:108;;;1380:43:56;:::i;12922:460:108:-;;13024:14;;:::i;:::-;13015:23;;;13011:75;;-1:-1:-1;981:14960:108;;;13100:20;981:14960;;;;;;;;13128:10;981:14960;;;;;;;;;;13096:93;;13208:32;13128:10;13208:32;;:::i;:::-;13255:11;;;13251:68;;-1:-1:-1;981:14960:108;;;13100:20;981:14960;;;;;;;;13128:10;981:14960;;;;;;;;;-1:-1:-1;;981:14960:108;13371:4;981:14960;;;12922:460::o;13251:68::-;981:14960;;-1:-1:-1;;;13289:19:108;;;;;13096:93;981:14960;;-1:-1:-1;;;13162:16:108;;;;;13011:75;981:14960;;-1:-1:-1;;;13061:14:108;;;;;10580:184:99;5173:12:109;981:14960:108;10446:8:73;;;:63;-1:-1:-1;10446:63:73;-1:-1:-1;;;;;981:14960:108;;10726:7:99;981:14960:108;;10736:12:99;981:14960:108;;;;;;10736:12:99;-1:-1:-1;981:14960:108;-1:-1:-1;;;;;;;;;;;981:14960:108;;10580:184:99;:::o;10726:31::-;;-1:-1:-1;10580:184:99;:::o;10446:63:73:-;981:14960:108;;;;;;;;5173:12:109;-1:-1:-1;14439:109:73;;;981:14960:108;;;10446:63:73;;10580:184:99;4803:13:109;981:14960:108;10446:8:73;;;:63;-1:-1:-1;10446:63:73;-1:-1:-1;;;;;981:14960:108;;10726:7:99;981:14960:108;;10736:12:99;981:14960:108;;;;;;10736:12:99;-1:-1:-1;981:14960:108;-1:-1:-1;;;;;;;;;;;981:14960:108;;10580:184:99;:::o;10446:63:73:-;981:14960:108;;;;;;;;4803:13:109;-1:-1:-1;14439:109:73;;;981:14960:108;;;10446:63:73;;10580:184:99;981:14960:108;;10446:8:73;;;:63;-1:-1:-1;10446:63:73;-1:-1:-1;;;;;981:14960:108;;10726:7:99;981:14960:108;;10736:12:99;:17;:12;;:17;:::i;:::-;981:14960:108;;;;;;10580:184:99;:::o;10446:63:73:-;981:14960:108;;;;;;;;;;14439:109:73;-1:-1:-1;14439:109:73;;-1:-1:-1;14439:109:73;;;981:14960:108;;;10446:63:73;;1662:280:100;;;1884:1;981:14960:108;;;;;;;1884:1:100;981:14960:108;;;;;;;9478:25:70;;;:::i;6999:207:99:-;4622:13:109;981:14960:108;9737:15:73;-1:-1:-1;9762:18:73;9795:7;9801:1;9795:7;;9791:234;;6999:207:99;10049:53:73;;;;:::i;:::-;10120:8;;;:63;-1:-1:-1;10120:63:73;-1:-1:-1;;;;;981:14960:108;;7168:7:99;981:14960:108;;7178:17:99;981:14960:108;7178:17:99;;:::i;10120:63:73:-;10135:41;10168:7;10135:48;10168:7;;:::i;:::-;4622:13:109;14439:109:73;;-1:-1:-1;;;;;;;;;;;14439:109:73;14289:265;;10135:41;981:14960:108;;;;;10135:48:73;10120:63;;9791:234;9838:14;;;;;:::i;:::-;981:14960:108;;;;;;;10049:53:73;14439:109;4622:13:109;-1:-1:-1;14439:109:73;981:14960:108;14439:109:73;;-1:-1:-1;;;;;;;;;;;14439:109:73;981:14960:108;;;;;9870:48:73;9866:149;981:14960:108;;;9938:10:73;9866:149;9791:234;;9866:149;9993:7;;;;;;:::i;:::-;9866:149;9791:234;;6999:207:99;4994:12:109;981:14960:108;9737:15:73;-1:-1:-1;9762:18:73;9795:7;9801:1;9795:7;;9791:234;;6999:207:99;10049:53:73;;;;:::i;:::-;10120:8;;;:63;-1:-1:-1;10120:63:73;-1:-1:-1;;;;;981:14960:108;;7168:7:99;981:14960:108;;7178:17:99;981:14960:108;7178:17:99;;:::i;10120:63:73:-;10135:41;10168:7;10135:48;10168:7;;:::i;:::-;4994:12:109;14439:109:73;;-1:-1:-1;;;;;;;;;;;14439:109:73;14289:265;;10135:48;10120:63;;9791:234;9838:14;;;;;:::i;:::-;981:14960:108;;;;;;;10049:53:73;14439:109;4994:12:109;-1:-1:-1;14439:109:73;981:14960:108;14439:109:73;;-1:-1:-1;;;;;;;;;;;14439:109:73;981:14960:108;;;;;9870:48:73;9866:149;981:14960:108;;;9938:10:73;9866:149;9791:234;;9866:149;9993:7;;;;;;:::i;:::-;9866:149;9791:234;;6999:207:99;;981:14960:108;;9737:15:73;-1:-1:-1;9762:18:73;9795:7;9801:1;9795:7;;9791:234;;6999:207:99;10049:53:73;;;;;:::i;:::-;10120:8;;;:63;-1:-1:-1;10120:63:73;;-1:-1:-1;;;;;981:14960:108;;7168:7:99;981:14960:108;;;7178:12:99;;:17;:12;;:17;:::i;10120:63:73:-;10135:41;10168:7;10135:48;10168:7;;:::i;:::-;10135:41;14439:109;;;;;;14289:265;;10135:48;10120:63;;;9791:234;9838:14;;;;;:::i;:::-;981:14960:108;;;;;;;10049:53:73;14439:109;;-1:-1:-1;14439:109:73;981:14960:108;14439:109:73;;;-1:-1:-1;14439:109:73;;981:14960:108;;;;;9870:48:73;9866:149;981:14960:108;;;9938:10:73;9866:149;9791:234;;9866:149;9993:7;;;;;;:::i;:::-;9866:149;9791:234;;981:14960:108;;;;;;;:::i;:::-;-1:-1:-1;981:14960:108;;;;;;;:::o;11486:272:99:-;981:14960:108;;:::i;:::-;;;;:::i;:::-;;4622:13:109;981:14960:108;;;;;;4622:13:109;-1:-1:-1;981:14960:108;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;981:14960:108;;;;;;;;;;;;;;;;;11718:12:99;981:14960:108;;;;;;11718:12:99;-1:-1:-1;981:14960:108;-1:-1:-1;;;;;;;;;;;981:14960:108;;;;;;;;:::i;:::-;;;;11672:79:99;;981:14960:108;11486:272:99;:::o;:::-;981:14960:108;;:::i;:::-;;;;:::i;:::-;;4994:12:109;981:14960:108;;;;;;4994:12:109;-1:-1:-1;981:14960:108;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;981:14960:108;;;;;;;;;;;;;;;;;11718:12:99;981:14960:108;;;;;;11718:12:99;-1:-1:-1;981:14960:108;-1:-1:-1;;;;;;;;;;;981:14960:108;;;;;;;;:::i;11486:272:99:-;;981:14960:108;11718:12:99;11452:22:73;11718:31:99;11486:272;981:14960:108;;:::i;:::-;;;;:::i;:::-;;11452:22:73;;:::i;:::-;981:14960:108;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;11718:12:99;:31;:::i;:::-;981:14960:108;;;;;;;;;:::i;:::-;;;;;;;11672:79:99;;981:14960:108;11486:272:99;:::o;7738:720:56:-;;-1:-1:-1;7875:421:56;7738:720;7875:421;;;;;;;;;;;;-1:-1:-1;7875:421:56;;8310:15;;-1:-1:-1;;;;;;981:14960:108;;8328:26:56;:31;8310:68;8306:146;;7738:720;:::o;8306:146::-;981:14960:108;;-1:-1:-1;;;8401:40:56;;-1:-1:-1;;;;;981:14960:108;;;8401:40:56;;;981:14960:108;;;8401:40:56;8310:68;8377:1;8362:16;;8310:68;;1258:280:100;;;981:14960:108;;;;;;;;;;;;;;;;9478:25:70;;;;;:::i;:::-;9552;;;;;;:29;;981:14960:108;;;;;;;1258:280:100;:::o;10695:389:73:-;5173:12:109;981:14960:108;10871:8:73;;;10895:20;10833:17;10895:20;10833:17;10895:20;10833:17;10895:20;:::o;10867:211::-;981:14960:108;;;;;;;;5173:12:109;10833:17:73;14439:109;;;981:14960:108;11014:1:73;;981:14960:108;;;;;;;11030:37:73:o;10695:389::-;4803:13:109;981:14960:108;10871:8:73;;;10895:20;10833:17;10895:20;10833:17;10895:20;10833:17;10895:20;:::o;10867:211::-;981:14960:108;;;;;;;;4803:13:109;10833:17:73;14439:109;;;981:14960:108;11014:1:73;;981:14960:108;;;;;;;11030:37:73:o;10695:389::-;981:14960:108;;10871:8:73;;;10895:20;;10833:17;10895:20;10833:17;10895:20;10833:17;10895:20;:::o;10867:211::-;981:14960:108;;;;;;;;;;10833:17:73;14439:109;;10833:17;14439:109;;;981:14960:108;11014:1:73;981:14960:108;;;;;;;11030:37:73;:::o;7084:141:26:-;981:14960:108;-1:-1:-1;;;;;;;;;;;981:14960:108;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;981:14960:108;;-1:-1:-1;;;7191:17:26;;;;;1776:194:60;1829:135;;;;;;;;981:14960:108;5173:12:109;981:14960:108;;-1:-1:-1;;;981:14960:108;;;;;;;;;5173:12:109;981:14960:108;;;;;;5173:12:109;-1:-1:-1;981:14960:108;;;;;;;;;;-1:-1:-1;;981:14960:108;;;;;;;-1:-1:-1;;;;;;;;;;;981:14960:108;;;;:::o;:::-;4803:13:109;981:14960:108;;-1:-1:-1;;;981:14960:108;;;;;;;;;4803:13:109;981:14960:108;;;;;;4803:13:109;-1:-1:-1;981:14960:108;;;;;;;;;;-1:-1:-1;;981:14960:108;;;;;;;-1:-1:-1;;;;;;;;;;;981:14960:108;;;;:::o;:::-;;;-1:-1:-1;;;981:14960:108;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;981:14960:108;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11657:922:73;5173:12:109;981:14960:108;11657:922:73;;;11864:7;;;;11936;11916:28;11936:7;;:::i;11916:28::-;981:14960:108;;;;;;;;;;;;12103:13:73;;;12099:89;;12251:14;;;;;12285:19;;;981:14960:108;;;;;;;;;;;;;;;;;12285:19:73;981:14960:108;;12423:25:73;;:::o;12247:163::-;981:14960:108;;12343:52:73;981:14960:108;12353:41:73;981:14960:108;;:::i;:::-;;;;;;;;12353:41:73;-1:-1:-1;;;;;981:14960:108;;12353:41:73;;;981:14960:108;12343:52:73;:::i;:::-;12247:163;;12099:89;981:14960:108;;-1:-1:-1;;;12143:30:73;;;;;11860:713;981:14960:108;12479:52:73;981:14960:108;12489:41:73;981:14960:108;;:::i;12489:41:73:-;-1:-1:-1;;;;;981:14960:108;;12489:41:73;;;981:14960:108;12343:52:73;:::i;12479:::-;11870:1;12545:17;;:::o;11657:922::-;4803:13:109;981:14960:108;11657:922:73;;;11864:7;;;;11936;11916:28;11936:7;;:::i;11916:28::-;981:14960:108;;;;;;;;;;;;12103:13:73;;;12099:89;;12251:14;;;;;12285:19;;;981:14960:108;;;;;;;;;;;;;;;;;12247:163:73;981:14960:108;;12343:52:73;981:14960:108;12353:41:73;981:14960:108;;:::i;12353:41:73:-;-1:-1:-1;;;;;981:14960:108;;12353:41:73;;;981:14960:108;12343:52:73;:::i;11860:713::-;981:14960:108;12479:52:73;981:14960:108;12489:41:73;981:14960:108;;:::i;12489:41:73:-;-1:-1:-1;;;;;981:14960:108;;12489:41:73;;;981:14960:108;12343:52:73;:::i;11657:922::-;981:14960:108;;11657:922:73;;;11864:7;;;;11936;11916:28;11936:7;;:::i;:::-;11916:28;14439:109;;;;;;14289:265;;11916:28;981:14960:108;;;;;;;;;;;;12103:13:73;;;12099:89;;12251:14;;;;;12285:19;;;;981:14960:108;;;;;;;;;;;;;;;;;12247:163:73;981:14960:108;;;12343:52:73;981:14960:108;12353:41:73;981:14960:108;;:::i;:::-;;;;;;;;12353:41:73;-1:-1:-1;;;;;981:14960:108;;12353:41:73;;;981:14960:108;12343:52:73;:::i;11860:713::-;981:14960:108;;12479:52:73;981:14960:108;12489:41:73;981:14960:108;;:::i;12489:41:73:-;-1:-1:-1;;;;;981:14960:108;;12489:41:73;;;981:14960:108;12343:52:73;:::i;18080:5181:70:-;18246:1;18241:6;;;18237:53;;18246:1;19217:14;-1:-1:-1;;;19278:16:70;;;19274:92;;18080:5181;22827:18;22717;22607;22498;22387;22278;23216:28;19383:15;19898:6;19383:15;-1:-1:-1;;;23237:6:70;19383:15;;;19379:90;;18080:5181;19493:7;19486:15;;;19482:90;;18080:5181;19596:7;19589:15;;;19585:89;;18080:5181;19698:6;19691:14;;;19687:87;;18080:5181;19798:6;19791:14;;;19787:87;;18080:5181;19891:14;;19887:61;;18080:5181;20374:1;981:14960:108;18246:1:70;981:14960:108;22284:6:70;;;;:::i;:::-;981:14960:108;;;;;22278:18:70;22393:6;;;;:::i;22387:18::-;22504:6;;;;:::i;22498:18::-;22613:6;;;;:::i;22607:18::-;22723:6;;;;:::i;22717:18::-;22833:6;;;;:::i;22827:18::-;23237:6;;;:::i;:::-;23232:11;;;981:14960:108;23216:28:70;940:4:60;;18080:5181:70;:::o;19887:61::-;18246:1;981:14960:108;19887:61:70;;19787:87;981:14960:108;;;;;19787:87:70;;;19687;981:14960:108;;;;;19687:87:70;;;19585:89;981:14960:108;;;;;19585:89:70;;;19482:90;981:14960:108;;;;;19482:90:70;;;19379;981:14960:108;;;;;19379:90:70;;;19274:92;-1:-1:-1;;;;981:14960:108;-1:-1:-1;981:14960:108;;;;19274:92:70;;12929:433:73;;13112:10;;;;;;13344:11;;12929:433;:::o;13105:230::-;3721:5:70;;;;;981:14960:108;;3731:5:70;;;981:14960:108;;;;;;;;;4622:13:109;-1:-1:-1;14439:109:73;981:14960:108;14439:109:73;;-1:-1:-1;;;;;;;;;;;14439:109:73;981:14960:108;;;;;-1:-1:-1;13189:136:73;981:14960:108;;;13248:10:73;;13189:136;;13105:230;;;13189:136;981:14960:108;;;;;;;;;;;13189:136:73;;;12929:433;;13112:10;;;;;;13344:11;;12929:433;:::o;13105:230::-;3721:5:70;;;;;981:14960:108;;3731:5:70;;;981:14960:108;;;;;;;;;4994:12:109;-1:-1:-1;14439:109:73;981:14960:108;14439:109:73;;-1:-1:-1;;;;;;;;;;;14439:109:73;981:14960:108;;;;;-1:-1:-1;13189:136:73;981:14960:108;;;13248:10:73;;13189:136;;13105:230;;;13189:136;981:14960:108;;;;;;;;;;;13189:136:73;;;12929:433;;;13112:10;;;;;;13344:11;;;12929:433;:::o;13105:230::-;3721:5:70;;;;;;981:14960:108;;3731:5:70;;;981:14960:108;;;;;;;;;14439:109:73;-1:-1:-1;14439:109:73;981:14960:108;14439:109:73;;;-1:-1:-1;14439:109:73;;981:14960:108;;;;;-1:-1:-1;13189:136:73;981:14960:108;;;13248:10:73;;13189:136;;13105:230;;;;13189:136;981:14960:108;;;;;;;;;;;13189:136:73;;","linkReferences":{},"immutableReferences":{"60387":[{"start":1904,"length":32},{"start":2467,"length":32}],"71027":[{"start":4512,"length":32},{"start":5843,"length":32}],"71030":[{"start":6204,"length":32},{"start":7461,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","DELEGATOR_FACTORY()":"6da3e06d","DEPOSITOR_WHITELIST_ROLE()":"1b66c9e1","DEPOSIT_LIMIT_SET_ROLE()":"a21a1df9","DEPOSIT_WHITELIST_SET_ROLE()":"db388715","FACTORY()":"2dd31000","IS_DEPOSIT_LIMIT_SET_ROLE()":"1415519b","SLASHER_FACTORY()":"87df0788","activeBalanceOf(address)":"59f769a9","activeBalanceOfAt(address,uint48,bytes)":"efb559d6","activeShares()":"bfefcd7b","activeSharesAt(uint48,bytes)":"50f22068","activeSharesOf(address)":"9d66201b","activeSharesOfAt(address,uint48,bytes)":"2d73c69c","activeStake()":"bd49c35f","activeStakeAt(uint48,bytes)":"810da75d","burner()":"27810b6e","claim(address,uint256)":"aad3ec96","claimBatch(address,uint256[])":"7c04c80a","collateral()":"d8dfeb45","currentEpoch()":"76671808","currentEpochStart()":"61a8c8c4","delegator()":"ce9b7930","deposit(address,uint256)":"47e7ef24","depositLimit()":"ecf70858","depositWhitelist()":"48d3b775","epochAt(uint48)":"7953b33b","epochDuration()":"4ff0876a","epochDurationInit()":"46361671","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(uint64,address,bytes)":"57ec83cc","isDelegatorInitialized()":"50861adc","isDepositLimit()":"a1b12202","isDepositorWhitelisted(address)":"794b15b7","isInitialized()":"392e53cd","isSlasherInitialized()":"6ec1e3f8","isWithdrawalsClaimed(uint256,address)":"a5d03223","migrate(uint64,bytes)":"2abe3048","nextEpochStart()":"73790ab3","onSlash(uint256,uint48)":"7278e31c","owner()":"8da5cb5b","previousEpochStart()":"281f5752","redeem(address,uint256)":"1e9a6950","renounceOwnership()":"715018a6","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setDelegator(address)":"83cd9cc3","setDepositLimit(uint256)":"bdc8144b","setDepositWhitelist(bool)":"4105a7dd","setDepositorWhitelistStatus(address,bool)":"a2861466","setIsDepositLimit(bool)":"5346e34f","setSlasher(address)":"aabc2496","slashableBalanceOf(address)":"c31e8dd7","slasher()":"b1344271","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","totalStake()":"8b0e9f3f","transferOwnership(address)":"f2fde38b","version()":"54fd4d50","withdraw(address,uint256)":"f3fef3a3","withdrawalShares(uint256)":"afba70ad","withdrawalSharesOf(uint256,address)":"a3b54172","withdrawals(uint256)":"5cc07076","withdrawalsOf(uint256,address)":"f5e7ee0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slasherFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyClaimed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DepositLimitReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientDeposit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientRedemption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientWithdrawal\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidClaimer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLengthEpochs\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOnBehalfOf\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRecipient\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoles\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoPreviousEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotFactory\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhitelistedDepositor\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchRedeem\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchWithdraw\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Claim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ClaimBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"name\":\"OnSlash\",\"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\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"SetDelegator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"SetDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositWhitelist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositorWhitelistStatus\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetIsDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"}],\"name\":\"SetSlasher\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DELEGATOR_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSITOR_WHITELIST_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_WHITELIST_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"activeBalanceOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"burner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"}],\"name\":\"claimBatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"depositedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositWhitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"epochAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDurationInit\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"initialVersion\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDelegatorInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDepositLimit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isDepositorWhitelisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSlasherInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isWithdrawalsClaimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"onSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"previousEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"withdrawnAssets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator_\",\"type\":\"address\"}],\"name\":\"setDelegator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"setDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositorWhitelistStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setIsDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher_\",\"type\":\"address\"}],\"name\":\"setSlasher\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"slashableBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawalShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"Claim(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epoch\":\"epoch the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"ClaimBatch(address,address,uint256[],uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epochs\":\"epochs the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"Deposit(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral deposited\",\"depositor\":\"account that made the deposit\",\"onBehalfOf\":\"account the deposit was made on behalf of\",\"shares\":\"amount of the active shares minted\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(uint256,uint48,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to slash\",\"captureTimestamp\":\"time point when the stake was captured\",\"slashedAmount\":\"real amount of the collateral slashed\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetDelegator(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"delegator\":\"vault's delegator to delegate the stake to networks and operators\"}},\"SetDepositLimit(uint256)\":{\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"SetDepositWhitelist(bool)\":{\"params\":{\"status\":\"if enabled deposit whitelist\"}},\"SetDepositorWhitelistStatus(address,bool)\":{\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisted the account\"}},\"SetIsDepositLimit(bool)\":{\"params\":{\"status\":\"if enabled deposit limit\"}},\"SetSlasher(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"slasher\":\"vault's slasher to provide a slashing mechanism to networks\"}},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral withdrawn\",\"burnedShares\":\"amount of the active shares burned\",\"claimer\":\"account that needs to claim the withdrawal\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawer\":\"account that made the withdrawal\"}}},\"kind\":\"dev\",\"methods\":{\"activeBalanceOf(address)\":{\"params\":{\"account\":\"account to get the active balance for\"},\"returns\":{\"_0\":\"active balance for the account\"}},\"activeBalanceOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the active balance for\",\"hints\":\"hints for checkpoints' indexes\",\"timestamp\":\"time point to get the active balance for the account at\"},\"returns\":{\"_0\":\"active balance for the account at the timestamp\"}},\"activeShares()\":{\"returns\":{\"_0\":\"total number of active shares\"}},\"activeSharesAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total number of active shares at\"},\"returns\":{\"_0\":\"total number of active shares at the timestamp\"}},\"activeSharesOf(address)\":{\"params\":{\"account\":\"account to get the number of active shares for\"},\"returns\":{\"_0\":\"number of active shares for the account\"}},\"activeSharesOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the number of active shares for\",\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the number of active shares for the account at\"},\"returns\":{\"_0\":\"number of active shares for the account at the timestamp\"}},\"activeStake()\":{\"returns\":{\"_0\":\"total amount of active stake\"}},\"activeStakeAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total active stake at\"},\"returns\":{\"_0\":\"total amount of active stake at the timestamp\"}},\"claim(address,uint256)\":{\"params\":{\"epoch\":\"epoch to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"claimBatch(address,uint256[])\":{\"params\":{\"epochs\":\"epochs to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"currentEpoch()\":{\"returns\":{\"_0\":\"current epoch\"}},\"currentEpochStart()\":{\"returns\":{\"_0\":\"start of the current epoch\"}},\"deposit(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to deposit\",\"onBehalfOf\":\"account the deposit is made on behalf of\"},\"returns\":{\"depositedAmount\":\"real amount of the collateral deposited\",\"mintedShares\":\"amount of the active shares minted\"}},\"epochAt(uint48)\":{\"details\":\"Reverts if the timestamp is less than the start of the epoch 0.\",\"params\":{\"timestamp\":\"time point to get the epoch at\"},\"returns\":{\"_0\":\"epoch at the timestamp\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(uint64,address,bytes)\":{\"params\":{\"data\":\"some data to use\",\"initialVersion\":\"initial version of the entity\",\"owner\":\"initial owner of the entity\"}},\"isInitialized()\":{\"returns\":{\"_0\":\"if the vault is fully initialized\"}},\"migrate(uint64,bytes)\":{\"params\":{\"data\":\"some data to use\",\"newVersion\":\"new version of the entity\"}},\"nextEpochStart()\":{\"returns\":{\"_0\":\"start of the next epoch\"}},\"onSlash(uint256,uint48)\":{\"details\":\"Only the slasher can call this function.\",\"params\":{\"amount\":\"amount to slash\",\"captureTimestamp\":\"time point when the stake was captured\"},\"returns\":{\"slashedAmount\":\"real amount of the collateral slashed\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"previousEpochStart()\":{\"details\":\"Reverts if the current epoch is 0.\",\"returns\":{\"_0\":\"start of the previous epoch\"}},\"redeem(address,uint256)\":{\"params\":{\"claimer\":\"account that needs to claim the withdrawal\",\"shares\":\"amount of the active shares to redeem\"},\"returns\":{\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawnAssets\":\"amount of the collateral withdrawn\"}},\"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.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setDepositLimit(uint256)\":{\"details\":\"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"setDepositWhitelist(bool)\":{\"details\":\"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit whitelist\"}},\"setDepositorWhitelistStatus(address,bool)\":{\"details\":\"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.\",\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisting the account\"}},\"setIsDepositLimit(bool)\":{\"details\":\"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit limit\"}},\"slashableBalanceOf(address)\":{\"params\":{\"account\":\"account to get the slashable collateral for\"},\"returns\":{\"_0\":\"total amount of the account's slashable collateral\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"totalStake()\":{\"returns\":{\"_0\":\"total amount of the slashable collateral\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"version()\":{\"details\":\"Starts from 1.\",\"returns\":{\"_0\":\"version of the entity\"}},\"withdraw(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to withdraw\",\"claimer\":\"account that needs to claim the withdrawal\"},\"returns\":{\"burnedShares\":\"amount of the active shares burned\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\"}},\"withdrawalsOf(uint256,address)\":{\"params\":{\"account\":\"account to get the withdrawals for\",\"epoch\":\"epoch to get the withdrawals for the account at\"},\"returns\":{\"_0\":\"withdrawals for the account at the epoch\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Claim(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a claim is made.\"},\"ClaimBatch(address,address,uint256[],uint256)\":{\"notice\":\"Emitted when a batch claim is made.\"},\"Deposit(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a deposit is made.\"},\"OnSlash(uint256,uint48,uint256)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetDelegator(address)\":{\"notice\":\"Emitted when a delegator is set.\"},\"SetDepositLimit(uint256)\":{\"notice\":\"Emitted when a deposit limit is set.\"},\"SetDepositWhitelist(bool)\":{\"notice\":\"Emitted when a deposit whitelist status is enabled/disabled.\"},\"SetDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Emitted when a depositor whitelist status is set.\"},\"SetIsDepositLimit(bool)\":{\"notice\":\"Emitted when a deposit limit status is enabled/disabled.\"},\"SetSlasher(address)\":{\"notice\":\"Emitted when a slasher is set.\"},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"notice\":\"Emitted when a withdrawal is made.\"}},\"kind\":\"user\",\"methods\":{\"DELEGATOR_FACTORY()\":{\"notice\":\"Get the delegator factory's address.\"},\"DEPOSITOR_WHITELIST_ROLE()\":{\"notice\":\"Get a depositor whitelist status setter's role.\"},\"DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit setter's role.\"},\"DEPOSIT_WHITELIST_SET_ROLE()\":{\"notice\":\"Get a deposit whitelist enabler/disabler's role.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"IS_DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit enabler/disabler's role.\"},\"SLASHER_FACTORY()\":{\"notice\":\"Get the slasher factory's address.\"},\"activeBalanceOf(address)\":{\"notice\":\"Get an active balance for a particular account.\"},\"activeBalanceOfAt(address,uint48,bytes)\":{\"notice\":\"Get an active balance for a particular account at a given timestamp using hints.\"},\"activeShares()\":{\"notice\":\"Get a total number of active shares in the vault.\"},\"activeSharesAt(uint48,bytes)\":{\"notice\":\"Get a total number of active shares in the vault at a given timestamp using a hint.\"},\"activeSharesOf(address)\":{\"notice\":\"Get a number of active shares for a particular account.\"},\"activeSharesOfAt(address,uint48,bytes)\":{\"notice\":\"Get a total number of active shares for a particular account at a given timestamp using a hint.\"},\"activeStake()\":{\"notice\":\"Get a total amount of active stake in the vault.\"},\"activeStakeAt(uint48,bytes)\":{\"notice\":\"Get a total amount of active stake in the vault at a given timestamp using a hint.\"},\"burner()\":{\"notice\":\"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract).\"},\"claim(address,uint256)\":{\"notice\":\"Claim collateral from the vault.\"},\"claimBatch(address,uint256[])\":{\"notice\":\"Claim collateral from the vault for multiple epochs.\"},\"collateral()\":{\"notice\":\"Get a vault collateral.\"},\"currentEpoch()\":{\"notice\":\"Get a current vault epoch.\"},\"currentEpochStart()\":{\"notice\":\"Get a start of the current vault epoch.\"},\"delegator()\":{\"notice\":\"Get a delegator (it delegates the vault's stake to networks and operators).\"},\"deposit(address,uint256)\":{\"notice\":\"Deposit collateral into the vault.\"},\"depositLimit()\":{\"notice\":\"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously).\"},\"depositWhitelist()\":{\"notice\":\"Get if the deposit whitelist is enabled.\"},\"epochAt(uint48)\":{\"notice\":\"Get an epoch at a given timestamp.\"},\"epochDuration()\":{\"notice\":\"Get a duration of the vault epoch.\"},\"epochDurationInit()\":{\"notice\":\"Get a time point of the epoch duration set.\"},\"initialize(uint64,address,bytes)\":{\"notice\":\"Initialize this entity contract by using a given data and setting a particular version and owner.\"},\"isDelegatorInitialized()\":{\"notice\":\"Get if the delegator is initialized.\"},\"isDepositLimit()\":{\"notice\":\"Get if the deposit limit is set.\"},\"isDepositorWhitelisted(address)\":{\"notice\":\"Get if a given account is whitelisted as a depositor.\"},\"isInitialized()\":{\"notice\":\"Check if the vault is fully initialized (a delegator and a slasher are set).\"},\"isSlasherInitialized()\":{\"notice\":\"Get if the slasher is initialized.\"},\"isWithdrawalsClaimed(uint256,address)\":{\"notice\":\"Get if the withdrawals are claimed for a particular account at a given epoch.\"},\"migrate(uint64,bytes)\":{\"notice\":\"Migrate this entity to a particular newer version using a given data.\"},\"nextEpochStart()\":{\"notice\":\"Get a start of the next vault epoch.\"},\"onSlash(uint256,uint48)\":{\"notice\":\"Slash callback for burning collateral.\"},\"previousEpochStart()\":{\"notice\":\"Get a start of the previous vault epoch.\"},\"redeem(address,uint256)\":{\"notice\":\"Redeem collateral from the vault (it will be claimable after the next epoch).\"},\"setDepositLimit(uint256)\":{\"notice\":\"Set a deposit limit.\"},\"setDepositWhitelist(bool)\":{\"notice\":\"Enable/disable deposit whitelist.\"},\"setDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Set a depositor whitelist status.\"},\"setIsDepositLimit(bool)\":{\"notice\":\"Enable/disable deposit limit.\"},\"slashableBalanceOf(address)\":{\"notice\":\"Get a total amount of the collateral that can be slashed for a given account.\"},\"slasher()\":{\"notice\":\"Get a slasher (it provides networks a slashing mechanism).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"totalStake()\":{\"notice\":\"Get a total amount of the collateral that can be slashed.\"},\"version()\":{\"notice\":\"Get the entity's version.\"},\"withdraw(address,uint256)\":{\"notice\":\"Withdraw collateral from the vault (it will be claimable after the next epoch).\"},\"withdrawalShares(uint256)\":{\"notice\":\"Get a total number of withdrawal shares at a given epoch.\"},\"withdrawalSharesOf(uint256,address)\":{\"notice\":\"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed).\"},\"withdrawals(uint256)\":{\"notice\":\"Get a total amount of the withdrawals at a given epoch.\"},\"withdrawalsOf(uint256,address)\":{\"notice\":\"Get withdrawals for a particular account at a given epoch (zero if claimed).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/vault/Vault.sol\":\"Vault\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf\",\"dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44\",\"dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"address","name":"slasherFactory","type":"address"},{"internalType":"address","name":"vaultFactory","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadyClaimed"},{"inputs":[],"type":"error","name":"AlreadyInitialized"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DelegatorAlreadyInitialized"},{"inputs":[],"type":"error","name":"DepositLimitReached"},{"inputs":[],"type":"error","name":"InsufficientClaim"},{"inputs":[],"type":"error","name":"InsufficientDeposit"},{"inputs":[],"type":"error","name":"InsufficientRedemption"},{"inputs":[],"type":"error","name":"InsufficientWithdrawal"},{"inputs":[],"type":"error","name":"InvalidAccount"},{"inputs":[],"type":"error","name":"InvalidCaptureEpoch"},{"inputs":[],"type":"error","name":"InvalidClaimer"},{"inputs":[],"type":"error","name":"InvalidCollateral"},{"inputs":[],"type":"error","name":"InvalidDelegator"},{"inputs":[],"type":"error","name":"InvalidEpoch"},{"inputs":[],"type":"error","name":"InvalidEpochDuration"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidLengthEpochs"},{"inputs":[],"type":"error","name":"InvalidOnBehalfOf"},{"inputs":[],"type":"error","name":"InvalidRecipient"},{"inputs":[],"type":"error","name":"InvalidSlasher"},{"inputs":[],"type":"error","name":"InvalidTimestamp"},{"inputs":[],"type":"error","name":"MissingRoles"},{"inputs":[],"type":"error","name":"NoPreviousEpoch"},{"inputs":[],"type":"error","name":"NotDelegator"},{"inputs":[],"type":"error","name":"NotFactory"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotWhitelistedDepositor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"SlasherAlreadyInitialized"},{"inputs":[],"type":"error","name":"TooMuchRedeem"},{"inputs":[],"type":"error","name":"TooMuchWithdraw"},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"epoch","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Claim","anonymous":false},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256[]","name":"epochs","type":"uint256[]","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"ClaimBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"depositor","type":"address","indexed":true},{"internalType":"address","name":"onBehalfOf","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false}],"type":"event","name":"OnSlash","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":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true}],"type":"event","name":"SetDelegator","anonymous":false},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256","indexed":false}],"type":"event","name":"SetDepositLimit","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositWhitelist","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositorWhitelistStatus","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetIsDepositLimit","anonymous":false},{"inputs":[{"internalType":"address","name":"slasher","type":"address","indexed":true}],"type":"event","name":"SetSlasher","anonymous":false},{"inputs":[{"internalType":"address","name":"withdrawer","type":"address","indexed":true},{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"burnedShares","type":"uint256","indexed":false},{"internalType":"uint256","name":"mintedShares","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DELEGATOR_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSITOR_WHITELIST_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeBalanceOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeSharesOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeStakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"burner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256[]","name":"epochs","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"claimBatch","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"delegator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"onBehalfOf","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"depositedAmount","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"epochAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDurationInit","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"initialVersion","type":"uint64"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isDelegatorInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isDepositLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isDepositorWhitelisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isSlasherInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isWithdrawalsClaimed","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"newVersion","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"migrate"},{"inputs":[],"stateMutability":"view","type":"function","name":"nextEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"onSlash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"previousEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"withdrawnAssets","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"delegator_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegator"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDepositLimit"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositWhitelist"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositorWhitelistStatus"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setIsDepositLimit"},{"inputs":[{"internalType":"address","name":"slasher_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSlasher"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"slashableBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"slasher","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"burnedShares","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawalShares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalSharesOf","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawals","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"activeBalanceOf(address)":{"params":{"account":"account to get the active balance for"},"returns":{"_0":"active balance for the account"}},"activeBalanceOfAt(address,uint48,bytes)":{"params":{"account":"account to get the active balance for","hints":"hints for checkpoints' indexes","timestamp":"time point to get the active balance for the account at"},"returns":{"_0":"active balance for the account at the timestamp"}},"activeShares()":{"returns":{"_0":"total number of active shares"}},"activeSharesAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total number of active shares at"},"returns":{"_0":"total number of active shares at the timestamp"}},"activeSharesOf(address)":{"params":{"account":"account to get the number of active shares for"},"returns":{"_0":"number of active shares for the account"}},"activeSharesOfAt(address,uint48,bytes)":{"params":{"account":"account to get the number of active shares for","hint":"hint for the checkpoint index","timestamp":"time point to get the number of active shares for the account at"},"returns":{"_0":"number of active shares for the account at the timestamp"}},"activeStake()":{"returns":{"_0":"total amount of active stake"}},"activeStakeAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total active stake at"},"returns":{"_0":"total amount of active stake at the timestamp"}},"claim(address,uint256)":{"params":{"epoch":"epoch to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"claimBatch(address,uint256[])":{"params":{"epochs":"epochs to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"currentEpoch()":{"returns":{"_0":"current epoch"}},"currentEpochStart()":{"returns":{"_0":"start of the current epoch"}},"deposit(address,uint256)":{"params":{"amount":"amount of the collateral to deposit","onBehalfOf":"account the deposit is made on behalf of"},"returns":{"depositedAmount":"real amount of the collateral deposited","mintedShares":"amount of the active shares minted"}},"epochAt(uint48)":{"details":"Reverts if the timestamp is less than the start of the epoch 0.","params":{"timestamp":"time point to get the epoch at"},"returns":{"_0":"epoch at the timestamp"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(uint64,address,bytes)":{"params":{"data":"some data to use","initialVersion":"initial version of the entity","owner":"initial owner of the entity"}},"isInitialized()":{"returns":{"_0":"if the vault is fully initialized"}},"migrate(uint64,bytes)":{"params":{"data":"some data to use","newVersion":"new version of the entity"}},"nextEpochStart()":{"returns":{"_0":"start of the next epoch"}},"onSlash(uint256,uint48)":{"details":"Only the slasher can call this function.","params":{"amount":"amount to slash","captureTimestamp":"time point when the stake was captured"},"returns":{"slashedAmount":"real amount of the collateral slashed"}},"owner()":{"details":"Returns the address of the current owner."},"previousEpochStart()":{"details":"Reverts if the current epoch is 0.","returns":{"_0":"start of the previous epoch"}},"redeem(address,uint256)":{"params":{"claimer":"account that needs to claim the withdrawal","shares":"amount of the active shares to redeem"},"returns":{"mintedShares":"amount of the epoch withdrawal shares minted","withdrawnAssets":"amount of the collateral withdrawn"}},"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."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setDepositLimit(uint256)":{"details":"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"limit":"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)"}},"setDepositWhitelist(bool)":{"details":"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit whitelist"}},"setDepositorWhitelistStatus(address,bool)":{"details":"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.","params":{"account":"account for which the whitelist status is set","status":"if whitelisting the account"}},"setIsDepositLimit(bool)":{"details":"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit limit"}},"slashableBalanceOf(address)":{"params":{"account":"account to get the slashable collateral for"},"returns":{"_0":"total amount of the account's slashable collateral"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"totalStake()":{"returns":{"_0":"total amount of the slashable collateral"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"version()":{"details":"Starts from 1.","returns":{"_0":"version of the entity"}},"withdraw(address,uint256)":{"params":{"amount":"amount of the collateral to withdraw","claimer":"account that needs to claim the withdrawal"},"returns":{"burnedShares":"amount of the active shares burned","mintedShares":"amount of the epoch withdrawal shares minted"}},"withdrawalsOf(uint256,address)":{"params":{"account":"account to get the withdrawals for","epoch":"epoch to get the withdrawals for the account at"},"returns":{"_0":"withdrawals for the account at the epoch"}}},"version":1},"userdoc":{"kind":"user","methods":{"DELEGATOR_FACTORY()":{"notice":"Get the delegator factory's address."},"DEPOSITOR_WHITELIST_ROLE()":{"notice":"Get a depositor whitelist status setter's role."},"DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit setter's role."},"DEPOSIT_WHITELIST_SET_ROLE()":{"notice":"Get a deposit whitelist enabler/disabler's role."},"FACTORY()":{"notice":"Get the factory's address."},"IS_DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit enabler/disabler's role."},"SLASHER_FACTORY()":{"notice":"Get the slasher factory's address."},"activeBalanceOf(address)":{"notice":"Get an active balance for a particular account."},"activeBalanceOfAt(address,uint48,bytes)":{"notice":"Get an active balance for a particular account at a given timestamp using hints."},"activeShares()":{"notice":"Get a total number of active shares in the vault."},"activeSharesAt(uint48,bytes)":{"notice":"Get a total number of active shares in the vault at a given timestamp using a hint."},"activeSharesOf(address)":{"notice":"Get a number of active shares for a particular account."},"activeSharesOfAt(address,uint48,bytes)":{"notice":"Get a total number of active shares for a particular account at a given timestamp using a hint."},"activeStake()":{"notice":"Get a total amount of active stake in the vault."},"activeStakeAt(uint48,bytes)":{"notice":"Get a total amount of active stake in the vault at a given timestamp using a hint."},"burner()":{"notice":"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract)."},"claim(address,uint256)":{"notice":"Claim collateral from the vault."},"claimBatch(address,uint256[])":{"notice":"Claim collateral from the vault for multiple epochs."},"collateral()":{"notice":"Get a vault collateral."},"currentEpoch()":{"notice":"Get a current vault epoch."},"currentEpochStart()":{"notice":"Get a start of the current vault epoch."},"delegator()":{"notice":"Get a delegator (it delegates the vault's stake to networks and operators)."},"deposit(address,uint256)":{"notice":"Deposit collateral into the vault."},"depositLimit()":{"notice":"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously)."},"depositWhitelist()":{"notice":"Get if the deposit whitelist is enabled."},"epochAt(uint48)":{"notice":"Get an epoch at a given timestamp."},"epochDuration()":{"notice":"Get a duration of the vault epoch."},"epochDurationInit()":{"notice":"Get a time point of the epoch duration set."},"initialize(uint64,address,bytes)":{"notice":"Initialize this entity contract by using a given data and setting a particular version and owner."},"isDelegatorInitialized()":{"notice":"Get if the delegator is initialized."},"isDepositLimit()":{"notice":"Get if the deposit limit is set."},"isDepositorWhitelisted(address)":{"notice":"Get if a given account is whitelisted as a depositor."},"isInitialized()":{"notice":"Check if the vault is fully initialized (a delegator and a slasher are set)."},"isSlasherInitialized()":{"notice":"Get if the slasher is initialized."},"isWithdrawalsClaimed(uint256,address)":{"notice":"Get if the withdrawals are claimed for a particular account at a given epoch."},"migrate(uint64,bytes)":{"notice":"Migrate this entity to a particular newer version using a given data."},"nextEpochStart()":{"notice":"Get a start of the next vault epoch."},"onSlash(uint256,uint48)":{"notice":"Slash callback for burning collateral."},"previousEpochStart()":{"notice":"Get a start of the previous vault epoch."},"redeem(address,uint256)":{"notice":"Redeem collateral from the vault (it will be claimable after the next epoch)."},"setDepositLimit(uint256)":{"notice":"Set a deposit limit."},"setDepositWhitelist(bool)":{"notice":"Enable/disable deposit whitelist."},"setDepositorWhitelistStatus(address,bool)":{"notice":"Set a depositor whitelist status."},"setIsDepositLimit(bool)":{"notice":"Enable/disable deposit limit."},"slashableBalanceOf(address)":{"notice":"Get a total amount of the collateral that can be slashed for a given account."},"slasher()":{"notice":"Get a slasher (it provides networks a slashing mechanism)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"totalStake()":{"notice":"Get a total amount of the collateral that can be slashed."},"version()":{"notice":"Get the entity's version."},"withdraw(address,uint256)":{"notice":"Withdraw collateral from the vault (it will be claimable after the next epoch)."},"withdrawalShares(uint256)":{"notice":"Get a total number of withdrawal shares at a given epoch."},"withdrawalSharesOf(uint256,address)":{"notice":"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed)."},"withdrawals(uint256)":{"notice":"Get a total amount of the withdrawals at a given epoch."},"withdrawalsOf(uint256,address)":{"notice":"Get withdrawals for a particular account at a given epoch (zero if claimed)."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/vault/Vault.sol":"Vault"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866","urls":["bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf","dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab","urls":["bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89","dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606","urls":["bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1","dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f","urls":["bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44","dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":108} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"slasherFactory","type":"address","internalType":"address"},{"name":"vaultFactory","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DELEGATOR_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEPOSITOR_WHITELIST_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeShares","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStakeAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimBatch","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epochs","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"currentEpoch","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"currentEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"delegator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"onBehalfOf","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"depositedAmount","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"depositLimit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"depositWhitelist","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"epochAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"epochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"epochDurationInit","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialVersion","type":"uint64","internalType":"uint64"},{"name":"owner_","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isDelegatorInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositLimit","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositorWhitelisted","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSlasherInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isWithdrawalsClaimed","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"migrate","inputs":[{"name":"newVersion","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nextEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"previousEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"redeem","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"withdrawnAssets","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegator","inputs":[{"name":"delegator_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositLimit","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositWhitelist","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setIsDepositLimit","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSlasher","inputs":[{"name":"slasher_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slashableBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slasher","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"totalStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"burnedShares","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawalShares","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalSharesOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawals","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalsOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"Claim","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epoch","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ClaimBatch","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epochs","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"onBehalfOf","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"slashedAmount","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":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDelegator","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDepositLimit","inputs":[{"name":"limit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetDepositWhitelist","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetIsDepositLimit","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetSlasher","inputs":[{"name":"slasher","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"withdrawer","type":"address","indexed":true,"internalType":"address"},{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"burnedShares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"mintedShares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadyClaimed","inputs":[]},{"type":"error","name":"AlreadyInitialized","inputs":[]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DelegatorAlreadyInitialized","inputs":[]},{"type":"error","name":"DepositLimitReached","inputs":[]},{"type":"error","name":"InsufficientClaim","inputs":[]},{"type":"error","name":"InsufficientDeposit","inputs":[]},{"type":"error","name":"InsufficientRedemption","inputs":[]},{"type":"error","name":"InsufficientWithdrawal","inputs":[]},{"type":"error","name":"InvalidAccount","inputs":[]},{"type":"error","name":"InvalidCaptureEpoch","inputs":[]},{"type":"error","name":"InvalidClaimer","inputs":[]},{"type":"error","name":"InvalidCollateral","inputs":[]},{"type":"error","name":"InvalidDelegator","inputs":[]},{"type":"error","name":"InvalidEpoch","inputs":[]},{"type":"error","name":"InvalidEpochDuration","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidLengthEpochs","inputs":[]},{"type":"error","name":"InvalidOnBehalfOf","inputs":[]},{"type":"error","name":"InvalidRecipient","inputs":[]},{"type":"error","name":"InvalidSlasher","inputs":[]},{"type":"error","name":"InvalidTimestamp","inputs":[]},{"type":"error","name":"MissingRoles","inputs":[]},{"type":"error","name":"NoPreviousEpoch","inputs":[]},{"type":"error","name":"NotDelegator","inputs":[]},{"type":"error","name":"NotFactory","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotWhitelistedDepositor","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SlasherAlreadyInitialized","inputs":[]},{"type":"error","name":"TooMuchRedeem","inputs":[]},{"type":"error","name":"TooMuchWithdraw","inputs":[]}],"bytecode":{"object":"0x60e03461013c57601f614a8938819003918201601f1916830192916001600160401b03918285118486101761014057816060928592604097885283398101031261013c5761004c82610154565b916100648461005d60208401610154565b9201610154565b9260805260a0527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82861c1661012b5780808316036100e7575b50505060c052516149209081610169823960805181818161119f01526116d2015260a05181818161183b0152611d24015260c05181818161077101526109a20152f35b6001600160401b0319909116811790915582519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a4565b845163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361013c5756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104345780631415519b1461042f5780631b66c9e11461042a5780631e9a695014610425578063248a9ca31461042057806327810b6e1461041b578063281f5752146104165780632abe3048146104115780632d73c69c1461040c5780632dd31000146104075780632f2ff15d1461040257806336568abe146103fd578063392e53cd146103f85780634105a7dd146103f357806346361671146103ee57806347e7ef24146103e957806348d3b775146103e45780634ff0876a146103df57806350861adc146103da57806350f22068146103d55780635346e34f146103d057806354fd4d50146103cb57806357ec83cc146103c657806359f769a9146103c15780635cc07076146103bc57806361a8c8c4146103b75780636da3e06d146103b25780636ec1e3f8146103ad578063715018a6146103a85780637278e31c146103a357806373790ab31461039e5780637667180814610399578063794b15b7146103945780637953b33b1461038f5780637c04c80a1461038a578063810da75d1461038557806383cd9cc31461038057806387df07881461037b5780638b0e9f3f146103765780638da5cb5b1461037157806391d148541461036c5780639d66201b146103675780639f86fd8514610362578063a1b122021461035d578063a217fddf14610358578063a21a1df914610353578063a28614661461034e578063a3b5417214610349578063a5d0322314610344578063aabc24961461033f578063aad3ec961461033a578063afba70ad14610335578063b134427114610330578063bd49c35f1461032b578063bdc8144b14610326578063bfefcd7b14610321578063c31e8dd71461031c578063ce9b793014610317578063d547741f14610312578063d8dfeb451461030d578063db38871514610308578063ecf7085814610303578063efb559d6146102fe578063f2fde38b146102f9578063f3fef3a3146102f45763f5e7ee0f146102ef575f80fd5b6123c1565b61231b565b6122ee565b61219f565b612182565b612148565b61211d565b6120d1565b6120a9565b61203f565b612025565b611f47565b611f2d565b611f05565b611edb565b611e1a565b611c63565b611c1d565b611bd0565b611add565b611aa3565b611a89565b611a65565b611998565b61195e565b611900565b6118cc565b61186a565b611826565b61166d565b611654565b6115ee565b6115c7565b611587565b61156d565b61152c565b61125a565b6111f3565b6111ce565b61118a565b611137565b61110d565b6110e6565b610fae565b610f7c565b610ee7565b610ece565b610e71565b610e51565b610e30565b610b72565b610b4a565b610aaf565b610a6a565b610a1f565b6109d1565b61098d565b610919565b61072b565b61065d565b610635565b6105fc565b610513565b6104c8565b61048e565b3461048a57602036600319011261048a5760043563ffffffff60e01b811680910361048a57602090637965db0b60e01b8114908115610479575b506040519015158152f35b6301ffc9a760e01b1490505f61046e565b5f80fd5b3461048a575f36600319011261048a5760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b3461048a575f36600319011261048a5760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b6001600160a01b0381160361048a57565b3461048a57604036600319011261048a5760043561053081610502565b6024359061053c612be6565b6001600160a01b038116156105eb57335f908152600e6020526040902061056790613c6f565b613c6f565b82116105d957610587610578613b82565b610580613bfb565b9084613cbc565b9182156105c4578261059892612c15565b906105af60015f805160206148ab83398151915255565b604080519182526020820192909252f35b0390f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b3461048a57602036600319011261048a576004355f525f8051602061488b8339815191526020526020600160405f200154604051908152f35b3461048a575f36600319011261048a576001546040516001600160a01b039091168152602090f35b3461048a575f36600319011261048a5761067561293a565b80156106d65760015465ffffffffffff8160a01c16915f1981019081116106d1576106a39160d01c9061241a565b81018091116106d1576106b86105c091612d8f565b60405165ffffffffffff90911681529081906020820190565b6123eb565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b038216820361048a57565b9181601f8401121561048a578235916001600160401b03831161048a576020838186019501011161048a57565b3461048a57604036600319011261048a576107446106e8565b6001600160401b0360243581811161048a576107649036906004016106fe565b92909161076f612be6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036107e9575f805160206148cb833981519152549060ff8260401c169283156107d9575b50505015612dc1575b60405163f92ee8a960e01b8152600490fd5b81169116101590505f80806107be565b604051631966391b60e11b8152600490fd5b65ffffffffffff81160361048a57565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761083a57604052565b61080b565b604081019081106001600160401b0382111761083a57604052565b90601f801991011681019081106001600160401b0382111761083a57604052565b6040519061016082018281106001600160401b0382111761083a57604052565b604051906108a88261083f565b565b6001600160401b03811161083a57601f01601f191660200190565b9291926108d1826108aa565b916108df604051938461085a565b82948184528183011161048a578281602093845f960137010152565b9080601f8301121561048a57816020610916933591016108c5565b90565b3461048a57606036600319011261048a5760043561093681610502565b60243590610943826107fb565b604435906001600160401b03821161048a576020926109696109859336906004016108fb565b6001600160a01b039092165f908152600e855260409020612f87565b604051908152f35b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a57604036600319011261048a57610a1d6024356004356109f482610502565b805f525f8051602061488b833981519152602052610a18600160405f20015461315e565b61345e565b005b3461048a57604036600319011261048a57602435610a3c81610502565b336001600160a01b03821603610a5857610a1d90600435613494565b60405163334bd91960e11b8152600490fd5b3461048a575f36600319011261048a5760ff60025460a01c1680610a96575b6020906040519015158152f35b5060035460a01c60ff16610a89565b8015150361048a57565b3461048a57602036600319011261048a57600435610acc81610aa5565b610ad4612be6565b610adc613053565b5f54901515908160ff8216151514610b385760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f805160206148ab83398151915255005b60405163a741a04560e01b8152600490fd5b3461048a575f36600319011261048a57602065ffffffffffff60015460a01c16604051908152f35b3461048a5760408060031936011261048a576004803591610b9283610502565b610b9a612be6565b6001600160a01b0391838316908115610e22575f5460ff811680610e09575b610dfa5783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610dd2575f93610dd7575b50610c0e906024359030903390613526565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610dd257610c4d935f92610da5575b505061240d565b938415610d965760081c60ff1680610d81575b610d735750906105c091610d11610c75613b82565b95610cbe610c81613bfb565b610ca9610c8f8a838b613cbc565b99610ca38a610c9d42612d8f565b9261243b565b9061367a565b5050610cb889610c9d42612d8f565b9061375a565b50506001600160a01b0381165f908152600e6020526040902090610d0b88610d06610562610ceb42612d8f565b6001600160a01b039095165f908152600e6020526040902090565b61243b565b91613836565b505081518481526020810186905233907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a3610d5d60015f805160206148ab83398151915255565b5191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50610d8e84610d06613b82565b815410610c60565b50825163070f6eed60e11b8152fd5b610dc49250803d10610dcb575b610dbc818361085a565b810190612469565b5f80610c46565b503d610db2565b612478565b610c0e919350610df390853d8711610dcb57610dbc818361085a565b9290610bfc565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610bb9565b8251630d534ce360e11b8152fd5b3461048a575f36600319011261048a57602060ff5f54166040519015158152f35b3461048a575f36600319011261048a57602060015460d01c604051908152f35b3461048a575f36600319011261048a57602060ff60025460a01c166040519015158152f35b90604060031983011261048a57600435610eaf816107fb565b91602435906001600160401b03821161048a57610916916004016108fb565b3461048a576020610985610ee136610e96565b90612dfd565b3461048a57602036600319011261048a57600435610f0481610aa5565b610f0c612be6565b610f146130b0565b5f54901515908160ff8260081c16151514610b385761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610a1d60015f805160206148ab83398151915255565b3461048a575f36600319011261048a5760206001600160401b035f805160206148cb8339815191525416604051908152f35b3461048a57606036600319011261048a57610fc76106e8565b602435610fd381610502565b6001600160401b039160443583811161048a57610ff49036906004016106fe565b5f805160206148cb8339815191529491855494838616806110d55760ff8760401c169081156110c8575b506107c7577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966110c39661108b958716906001600160401b0319161790556110865f805160206148cb833981519152600160401b68ff000000000000000019825416179055565b612483565b5f805160206148cb833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f61101e565b60405162dc149f60e41b8152600490fd5b3461048a57602036600319011261048a57602061098560043561110881610502565b6128a3565b3461048a57602036600319011261048a576004355f526006602052602060405f2054604051908152f35b3461048a575f36600319011261048a5760015465ffffffffffff61116d818360a01c169261116361293a565b9060d01c9061241a565b82018092116106d157611181602092612d8f565b60405191168152f35b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a575f36600319011261048a57602060ff60035460a01c166040519015158152f35b3461048a575f36600319011261048a5761120b6139c8565b5f8051602061482b83398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461048a57604036600319011261048a5760043560243561127a816107fb565b611282612be6565b60035461129f906001600160a01b03165b6001600160a01b031690565b330361151a576112ad61293a565b906112b78161296e565b9082151580611509575b8015611500575b6114ee576105c0937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c7926112fa613b82565b946113156113078261242d565b5f52600660205260405f2090565b54908281036114085750611329818761243b565b8381188185100281189687806113c1575b50505050505b8361138d575b6040805191825265ffffffffffff929092166020820152908101839052606090a161137d60015f805160206148ab83398151915255565b6040519081529081906020820190565b5f546113bc9085906113aa9060101c6001600160a01b0316611293565b6001546001600160a01b031690613a97565b611346565b6113fd93610c4683610ca36113e76113e0611307986113f79888613a0a565b809661240d565b946113f142612d8f565b9261240d565b9261242d565b555f8080808761133a565b915061141c825f52600660205260405f2090565b549061142c81610d06848a61243b565b908482188286100282189788611447575b5050505050611340565b6114bc938361146f9361147c8c6114776114656114ad998884613a0a565b9788958584613a0a565b94859261240d565b61240d565b938484106114c7575b610c4690610ca361149b9596976113f142612d8f565b6114a76113078761242d565b5561240d565b915f52600660205260405f2090565b555f8080808061143d565b916114e3610c46916114dd8661149b979861240d565b9061243b565b859450929050611485565b604051635e18d2a560e01b8152600490fd5b508282116112c8565b50611513836123ff565b82106112c1565b60405163dabc4ad960e01b8152600490fd5b3461048a575f36600319011261048a5760015465ffffffffffff808260a01c169161155561293a565b600181018091116106d15761116d9160d01c9061241a565b3461048a575f36600319011261048a57602061098561293a565b3461048a57602036600319011261048a576004356115a481610502565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b3461048a57602036600319011261048a5760206109856004356115e9816107fb565b61296e565b3461048a57604036600319011261048a5760043561160b81610502565b6024356001600160401b0380821161048a573660238301121561048a57816004013590811161048a573660248260051b8401011161048a576105c092602461137d9301906129a9565b3461048a57602061098561166736610e96565b90612ed2565b3461048a5760208060031936011261048a57600480359061168d82610502565b611695612be6565b60025460a01c60ff16611817576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd2575f916117ea575b50156117da5760405163fbfa77cf60e01b8152838516949082818581895afa928315610dd2575f936117ab575b50503091160361179c5750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610a1d60015f805160206148ab83398151915255565b60405163b9f0f17160e01b8152fd5b6117cb929350803d106117d3575b6117c3818361085a565b810190612b02565b905f8061172f565b503d6117b9565b506040516324e5af8d60e21b8152fd5b61180a9150823d8411611810575b611802818361085a565b810190612ae2565b5f611702565b503d6117f8565b604051631380833b60e01b8152fd5b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a575f36600319011261048a5761188261293a565b61188a613b82565b90805f52600660205260405f205482018092116106d157600181018091116106d1575f52600660205260405f205481018091116106d157602090604051908152f35b3461048a575f36600319011261048a575f8051602061482b833981519152546040516001600160a01b039091168152602090f35b3461048a57604036600319011261048a57602060ff61195260243561192481610502565b6004355f525f8051602061488b833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461048a57602036600319011261048a5760043561197b81610502565b60018060a01b03165f52600e602052602061098560405f20613c6f565b3461048a5760408060031936011261048a576004356119b681610502565b6024356001600160401b03811161048a575f80611a54936119dd60809436906004016106fe565b908188519283928337810184815203915af43d15611a5c5760203d611a01816108aa565b90611a0e8751928361085a565b81523d5f8383013e5b8551958693151583850152808401528051918291826060860152018484015e5f838284010152601f8019910116810103606081018452018261085a565b805190602001fd5b60206060611a17565b3461048a575f36600319011261048a57602060ff5f5460081c166040519015158152f35b3461048a575f36600319011261048a5760206040515f8152f35b3461048a575f36600319011261048a5760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b3461048a57604036600319011261048a57600435611afa81610502565b602435611b0681610aa5565b611b0e612be6565b611b16613107565b6001600160a01b038216918215611bbe575f8381526005602052604090205460ff16151582151514610b38576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a6291611ba591611b93908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610a1d60015f805160206148ab83398151915255565b604051630da30f6560e31b8152600490fd5b3461048a57604036600319011261048a576020611c14602435611bf281610502565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b3461048a57604036600319011261048a57602060ff611952602435611c4181610502565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b3461048a5760208060031936011261048a576004803590611c8382610502565b611c8b612be6565b60035460a01c60ff16611e0b576001600160a01b03828116939084611cf9575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610a1d60015f805160206148ab83398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd2575f91611dee575b5015611ddd5760405163fbfa77cf60e01b815282818581895afa928315610dd2575f93611dbe575b505030911603611daf5750600380546001600160a01b0319166001600160a01b039092169190911790555f808080611cab565b604051633f3e089160e21b8152fd5b611dd5929350803d106117d3576117c3818361085a565b905f80611d7c565b60405163dabc4ad960e01b81528390fd5b611e059150833d851161181057611802818361085a565b5f611d54565b60405163703fe2e560e01b8152fd5b3461048a57604036600319011261048a57600435611e3781610502565b60243590611e43612be6565b6001600160a01b0391818316908115611ec957611e746105c094611e6683613ae6565b9485915f5460101c16613a97565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f805160206148ab833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b3461048a57602036600319011261048a576004355f526007602052602060405f2054604051908152f35b3461048a575f36600319011261048a576003546040516001600160a01b039091168152602090f35b3461048a575f36600319011261048a576020610985613b82565b3461048a57602036600319011261048a57600435611f63612be6565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff161561200757508060045414610b38576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f805160206148ab83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461048a575f36600319011261048a576020610985613bfb565b3461048a57602036600319011261048a5760043561205c81610502565b61206461293a565b61206d826128a3565b916120788183612b88565b83018093116106d157600182018092116106d15761209591612b88565b81018091116106d157602090604051908152f35b3461048a575f36600319011261048a576002546040516001600160a01b039091168152602090f35b3461048a57604036600319011261048a57610a1d6024356004356120f482610502565b805f525f8051602061488b833981519152602052612118600160405f20015461315e565b613494565b3461048a575f36600319011261048a575f5460405160109190911c6001600160a01b03168152602090f35b3461048a575f36600319011261048a5760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b3461048a575f36600319011261048a576020600454604051908152f35b3461048a57606036600319011261048a576004356121bc81610502565b602435906121c9826107fb565b6001600160401b039160443583811161048a576121ea9036906004016106fe565b909260409384516121fa8161081f565b60608152606060208201526060868201529280612259575b6105c08661224a878761224461222b8984845191612448565b928561223b602085015183612ed2565b93015190612dfd565b91613cbc565b90519081529081906020820190565b810193925060208185031261048a5780359086821161048a57019260608482031261048a5784519561228a8761081f565b843581811161048a578261229f9187016108fb565b8752602085013581811161048a57826122b99187016108fb565b60208801528585013590811161048a576105c0966122e26122449361222b9361224a98016108fb565b87820152939450612212565b3461048a57602036600319011261048a57610a1d60043561230e81610502565b6123166139c8565b612b17565b3461048a57604036600319011261048a5760043561233881610502565b602435612343612be6565b6001600160a01b038216156105eb5780156123af57612372612363613bfb565b61236b613b82565b90836140ff565b335f908152600e6020526040902090929061238c90613c6f565b831161239d57610598918391612c15565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b3461048a57604036600319011261048a5760206109856024356123e381610502565b600435612b88565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116106d157565b919082039182116106d157565b818102929181159184041417156106d157565b90600182018092116106d157565b919082018092116106d157565b6001600160a01b03165f908152600e60205260409020610916929190612f87565b9081602091031261048a575190565b6040513d5f823e3d90fd5b916124d5916124c69161249461421b565b61249c61421b565b60015f805160206148ab833981519152556001600160a01b0394808616612889575b5036916108c5565b602080825183010191016138ff565b805182166001600160a01b03161561287757604080820165ffffffffffff612503825165ffffffffffff1690565b16156128665760c083018051909290612524906001600160a01b0316611293565b15612717575b5091612663610140926126026125dd6126c196612578612550875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b039092169190911790556125d16125a842612d8f565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b5165ffffffffffff1690565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b6126226126126060850151151590565b60ff80195f541691151516175f55565b6126496126326080850151151590565b61ff005f5491151560081b169061ff001916175f55565b61265660a0840151600455565b516001600160a01b031690565b848116612707575b5060e08101516001600160a01b03168481166126f7575b506101008101516001600160a01b03168481166126e7575b506101208101516001600160a01b03168481166126d7575b5001516001600160a01b031690565b9081166126cb5750565b6126d4906133ef565b50565b6126e090613380565b505f6126b2565b6126f090613311565b505f61269a565b6127009061323b565b505f612682565b6127109061318a565b505f61266b565b60e084015161272e906001600160a01b0316611293565b15612803575b61012084015161274c906001600160a01b0316611293565b61252a576080840151156127b95760a0840151158061279a575b61278a575091612663610140926126026125dd6126c1965b9496505050925061252a565b5163183c854560e21b8152600490fd5b506101408401516127b3906001600160a01b0316611293565b15612766565b60a0840151158015906127e3575b61278a575091612663610140926126026125dd6126c19661277e565b506101408401516127fc906001600160a01b0316611293565b15156127c7565b60608401511561283957610100840151612825906001600160a01b0316611293565b612734575163183c854560e21b8152600490fd5b610100840151612851906001600160a01b0316611293565b15612734575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b61289d9061289561421b565b61231661421b565b5f6124be565b6001600160a01b03165f908152600e602052604090206128c290613c6f565b6128ca613b82565b6128d2613bfb565b90600181018091116106d157600182018092116106d15761091692613a0a565b65ffffffffffff91821690821603919082116106d157565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff80911691821561293557160490565b61290a565b61294342612d8f565b61296a60015461296065ffffffffffff93848360a01c16906128f2565b9060d01c9061291e565b1690565b6001549065ffffffffffff91828160a01c169182848216106129975761296a92612960916128f2565b60405163b7d0949760e01b8152600490fd5b906129b2612be6565b5f926001600160a01b038316928315611ec9578115612a6a575f5b828110612a4857505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d279286929091612a1d918491612a189060101c6001600160a01b0316611293565b613a97565b612a2e604051928392339684612aa5565b0390a3906108a860015f805160206148ab83398151915255565b94612a636001916114dd612a5d898789612a90565b35613ae6565b95016129cd565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612aa05760051b0190565b612a7c565b604080825281018390529392916001600160fb1b03811161048a5760209160609160051b809183880137850101930152565b51906108a882610aa5565b9081602091031261048a575161091681610aa5565b51906108a882610502565b9081602091031261048a575161091681610502565b6001600160a01b03908116908115612b70575f8051602061482b83398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612bae90825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116106d157600182018092116106d15761091692613a0a565b5f805160206148ab8339815191526002815414612c035760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e6020526040902093929190612c3042612d8f565b335f908152600e60205260409020612c4790613c6f565b918483039283116106d157612c827febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f938593612d0d99613836565b5050612c9c612c9042612d8f565b610cb887611477613bfb565b5050612cb6612caa42612d8f565b610ca384611477613b82565b5050612d5b81612d46612ccf612cca61293a565b61242d565b612d25612ce4825f52600660205260405f2090565b54612cf7835f52600760205260405f2090565b54612d0382828b613cbc565b9d8e998a9361243b565b612d1f855f52600660205260405f2090565b5561243b565b612d37825f52600760205260405f2090565b555f52600860205260405f2090565b9060018060a01b03165f5260205260405f2090565b612d6683825461243b565b9055604080519485526020850195909552938301526001600160a01b03909216913391606090a3565b65ffffffffffff90818111612da2571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b61048a9136916108c5565b9081602091031261048a575163ffffffff8116810361048a5790565b90600163ffffffff809316019182116106d157565b90805115612ec85780602080612e1893518301019101612dcc565b612e2181613f2d565b90612e32825165ffffffffffff1690565b9065ffffffffffff8085169216828114612ebc5782119182612e68575b5050612e5f575061091690613cdd565b60209150015190565b909150612e76600a546123ff565b63ffffffff831614918215612e8f575b50505f80612e4f565b612eb49192506125d1612ea4612ea992612de8565b613f2d565b65ffffffffffff1690565b115f80612e86565b50505060209150015190565b5061091690613cdd565b90805115612f7d5780602080612eed93518301019101612dcc565b612ef681613fb7565b90612f07825165ffffffffffff1690565b9065ffffffffffff8085169216828114612ebc5782119182612f34575b5050612e5f575061091690613da4565b909150612f42600c546123ff565b63ffffffff831614918215612f5b575b50505f80612f24565b612f759192506125d1612f70612ea992612de8565b613fb7565b115f80612f52565b5061091690613da4565b918051156130495780602080612fa293518301019101612dcc565b91612fad8382614037565b92612fbe845165ffffffffffff1690565b9065ffffffffffff808516921682811461303d5782119182612ff4575b5050612feb576109169250613e64565b50506020015190565b90915061300183546123ff565b63ffffffff83161491821561301a575b50505f80612fdb565b6130359192506125d161302f612ea992612de8565b85614037565b115f80613011565b50505050506020015190565b5061091691613e64565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b5416156120075750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff906130a6565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff906130a6565b5f8181525f8051602061488b83398151915260209081526040808320338452909152902060ff906130a6565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f8051602061488b8339815191529060ff16613235575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f8051602061488b8339815191529060ff905b541661330a575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f8051602061488b8339815191529060ff906132a6565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f8051602061488b8339815191529060ff906132a6565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f8051602061488b8339815191529060ff906132a6565b5f8181525f8051602061488b833981519152602081815260408084206001600160a01b038716855290915290912060ff906132a6565b5f8181525f8051602061488b833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561330a575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b0384111761083a576108a8926040526140a5565b600b54811015612aa057600b5f525f8051602061486b83398151915201905f90565b600d54811015612aa057600d5f525f8051602061484b83398151915201905f90565b8054821015612aa0575f5260205f2001905f90565b600d54600160401b81101561083a576001810180600d55811015612aa057600d5f525f8051602061484b8339815191520155565b600b54600160401b81101561083a576001810180600b55811015612aa057600b5f525f8051602061486b8339815191520155565b90815491600160401b83101561083a57826136629160016108a8950181556135c2565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613725575b50613692614138565b509290918154926136a1613b82565b9481613710575b50156136ed57505f1982018281116106d15781541115612aa0575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613701926001600160d01b03169150614362565b505061370c836135d7565b9190565b65ffffffffffff83811691161490505f6136a8565b600160401b81101561083a5760018101808455811015612aa0575f908382525f8051602061484b83398151915201555f613689565b919091600b9081548015613801575b5061377261418d565b50929091815492613781613bfb565b94816137ec575b50156137cd57505f1982018281116106d15781541115612aa0575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b6137e1926001600160d01b03169150614432565b505061370c8361360b565b65ffffffffffff83811691161490505f613788565b600160401b81101561083a5760018101808455811015612aa0575f908382525f8051602061486b83398151915201555f613769565b909291926001820190815480156138c4575b5084613853846141e2565b5094909284549361386383613c6f565b96816138af575b501561388c575050505f1981019081116106d157613662859161370c936135c2565b61370c9492936138a8926001600160d01b0390911691906144d1565b505061363f565b65ffffffffffff83811691161490505f61386a565b600160401b81101561083a578060016138e092018455836135c2565b8154905f199060031b1b191690555f613848565b51906108a8826107fb565b908161016091031261048a5761391361087b565b9061391d81612af7565b825261392b60208201612af7565b602083015261393c604082016138f4565b604083015261394d60608201612ad7565b606083015261395e60808201612ad7565b608083015260a081015160a083015261397960c08201612af7565b60c083015261398a60e08201612af7565b60e083015261010061399d818301612af7565b908301526101206139af818301612af7565b908301526139c1610140809201612af7565b9082015290565b5f8051602061482b833981519152546001600160a01b031633036139e857565b60405163118cdaa760e01b8152336004820152602490fd5b8115612935570490565b91818302915f1981850993838086109503948086039514613a8a5784831115613a7d5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b8215600302601118614249565b5050906109169250613a00565b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815260808101916001600160401b0383118284101761083a576108a8926040526140a5565b90613aef61293a565b821015613b70575f82815260096020908152604080832033845290915290205460ff16613b5e57613b203383612b88565b918215613b4c575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600c5480613bc257505f5b6001600160d01b03811615613bbd57600d54811015612aa057600d5f525f8051602061484b833981519152015490565b505f90565b805f198101116106d157600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c613b8d565b600a5480613c3657505f5b6001600160d01b03811615613bbd57600b54811015612aa057600b5f525f8051602061486b833981519152015490565b805f198101116106d157600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c613c06565b805480613c9e57505f5b6001600160d01b03811615613235576001613c9492016135c2565b90549060031b1c90565b5f199080828101116106d157825f5260205f2001015460301c613c79565b9190600181018091116106d157600182018092116106d15761091692613a0a565b600a54905f829160058411613d4b575b613cf793506146b6565b80613d1a57505f5b6001600160d01b03811615613bbd57613c946109169161357e565b613d3f613d29613d46926123ff565b600a5f525f8051602061480b8339815191520190565b5460301c90565b613cff565b9192613d568161458b565b81039081116106d157613cf793600a5f5265ffffffffffff80835f8051602061480b833981519152015416908516105f14613d92575091613ced565b929150613d9e9061242d565b90613ced565b600c54905f829160058411613e0b575b613dbe935061471f565b80613de157505f5b6001600160d01b03811615613bbd57613c94610916916135a0565b613d3f613df0613e06926123ff565b600c5f525f805160206147eb8339815191520190565b613dc6565b9192613e168161458b565b81039081116106d157613dbe93600c5f5265ffffffffffff80835f805160206147eb833981519152015416908516105f14613e52575091613db4565b929150613e5e9061242d565b90613db4565b908154905f829160058411613ec7575b613e7f935084614788565b80613ea757505f905b6001600160d01b0382161561323557610916916001613c9492016135c2565b613d3f613eb6613ec1926123ff565b835f5260205f200190565b90613e88565b9192613ed28161458b565b81039081116106d157613e7f93855f5265ffffffffffff808360205f20015416908516105f14613f03575091613e74565b929150613f0f9061242d565b90613e74565b60405190613f228261083f565b5f6020838281520152565b613f35613f15565b50613f3e613f15565b50600a54811015612aa057600a5f52602060405191613f5c8361083f565b5f8051602061480b83398151915201549165ffffffffffff83169283825260301c9182910152600b54811015612aa057600b5f525f8051602061486b833981519152015460405191613fad8361083f565b8252602082015290565b613fbf613f15565b50613fc8613f15565b50600c54811015612aa057600c5f52602060405191613fe68361083f565b5f805160206147eb83398151915201549165ffffffffffff83169283825260301c9182910152600d54811015612aa057600d5f525f8051602061484b833981519152015460405191613fad8361083f565b906020600161405b6140879361404b613f15565b50614054613f15565b50856135c2565b50936040519461406a8661083f565b549465ffffffffffff86169586825260301c9384910152016135c2565b905490604051926140978461083f565b835260031b1c602082015290565b905f602091828151910182855af115612478575f513d6140f657506001600160a01b0381163b155b6140d45750565b604051635274afe760e01b81526001600160a01b039091166004820152602490fd5b600114156140cd565b9190600181018091116106d157600182018092116106d157614122828285613a0a565b9282156129355709151581018091116106d15790565b600c548061414957505f905f905f90565b805f198101116106d157600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460019165ffffffffffff82169160301c90565b600a548061419e57505f905f905f90565b805f198101116106d157600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460019165ffffffffffff82169160301c90565b8054806141f35750505f905f905f90565b5f199181838101116106d1575f5260205f2001015460019165ffffffffffff82169160301c90565b60ff5f805160206148cb8339815191525460401c161561423757565b604051631afcd79f60e31b8152600490fd5b634e487b715f526020526024601cfd5b600c5490600160401b82101561083a576001820180600c55821015612aa057600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206147eb83398151915290910155565b600a5490600160401b82101561083a576001820180600a55821015612aa057600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f8051602061480b83398151915290910155565b8054600160401b81101561083a57614324916001820181556135c2565b61434f57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c54919291801561440957613df061437a916123ff565b9081549165ffffffffffff908184169183168083116143f7578692036143bf576143b892509065ffffffffffff82549181199060301b169116179055565b60301c9190565b50506143f2906143de6143d061089b565b65ffffffffffff9092168252565b6001600160d01b0385166020820152614259565b6143b8565b604051632520601d60e01b8152600490fd5b5061442d906144196143d061089b565b6001600160d01b0384166020820152614259565b5f9190565b600a5491929180156144ad57613d2961444a916123ff565b9081549165ffffffffffff908184169183168083116143f757869203614488576143b892509065ffffffffffff82549181199060301b169116179055565b50506143f2906144996143d061089b565b6001600160d01b03851660208201526142b0565b5061442d906144bd6143d061089b565b6001600160d01b03841660208201526142b0565b80549293928015614566576144e86144f3916123ff565b825f5260205f200190565b9182549265ffffffffffff918285169281168084116143f75787930361453257506143b892509065ffffffffffff82549181199060301b169116179055565b9150506143f29161455261454461089b565b65ffffffffffff9093168352565b6001600160d01b0386166020830152614307565b509061442d9161457761454461089b565b6001600160d01b0385166020830152614307565b600181111561091657600181600160801b8110156146a4575b61464c61464261463861462e61462461461a61465897600488600160401b6146539a1015614697575b64010000000081101561468a575b6201000081101561467d575b610100811015614671575b6010811015614665575b101561465d575b60030260011c614613818b613a00565b0160011c90565b614613818a613a00565b6146138189613a00565b6146138188613a00565b6146138187613a00565b6146138186613a00565b8093613a00565b821190565b900390565b60011b614603565b811c9160021b916145fc565b60081c91811b916145f2565b60101c9160081b916145e7565b60201c9160101b916145db565b60401c9160201b916145cd565b50600160401b9050608082901c6145a4565b905b8281106146c457505090565b9091808216906001818418811c83018093116106d157600a5f5265ffffffffffff80845f8051602061480b833981519152015416908616105f1461470c575050915b906146b8565b9093925081018091116106d15790614706565b905b82811061472d57505090565b9091808216906001818418811c83018093116106d157600c5f5265ffffffffffff80845f805160206147eb833981519152015416908616105f14614775575050915b90614721565b9093925081018091116106d1579061476f565b91905b8382106147985750505090565b909192808316906001818518811c83018093116106d157855f5265ffffffffffff808460205f20015416908516105f146147d7575050925b919061478b565b9094935081018091116106d157916147d056fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a89016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220397482c9a8ce651b670b21962bb148b00fad05ebc198b873564640451f1ffc5164736f6c63430008190033","sourceMap":"981:14958:106:-:0;;;;;;;;;;;;;-1:-1:-1;;981:14958:106;;;;;-1:-1:-1;;;;;981:14958:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;3173:36:107;;;3219:32;;8837:64:26;981:14958:106;;;;;;;;;7896:76:26;;981:14958:106;;;;7985:34:26;7981:146;;-1:-1:-1;927:17:82;;;;;981:14958:106;;;;;;;3173:36:107;981:14958:106;;;;;;;;;;3219:32:107;981:14958:106;;;;;;;;;;927:17:82;981:14958:106;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;981:14958:106;;;;;;;;;;;;;8087:29:26;;981:14958:106;;8087:29:26;7981:146;;;;;7896:76;981:14958:106;;-1:-1:-1;;;7938:23:26;;;;;981:14958:106;-1:-1:-1;981:14958:106;;;;;;-1:-1:-1;981:14958:106;;;;;-1:-1:-1;981:14958:106;;;;-1:-1:-1;;;;;981:14958:106;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104345780631415519b1461042f5780631b66c9e11461042a5780631e9a695014610425578063248a9ca31461042057806327810b6e1461041b578063281f5752146104165780632abe3048146104115780632d73c69c1461040c5780632dd31000146104075780632f2ff15d1461040257806336568abe146103fd578063392e53cd146103f85780634105a7dd146103f357806346361671146103ee57806347e7ef24146103e957806348d3b775146103e45780634ff0876a146103df57806350861adc146103da57806350f22068146103d55780635346e34f146103d057806354fd4d50146103cb57806357ec83cc146103c657806359f769a9146103c15780635cc07076146103bc57806361a8c8c4146103b75780636da3e06d146103b25780636ec1e3f8146103ad578063715018a6146103a85780637278e31c146103a357806373790ab31461039e5780637667180814610399578063794b15b7146103945780637953b33b1461038f5780637c04c80a1461038a578063810da75d1461038557806383cd9cc31461038057806387df07881461037b5780638b0e9f3f146103765780638da5cb5b1461037157806391d148541461036c5780639d66201b146103675780639f86fd8514610362578063a1b122021461035d578063a217fddf14610358578063a21a1df914610353578063a28614661461034e578063a3b5417214610349578063a5d0322314610344578063aabc24961461033f578063aad3ec961461033a578063afba70ad14610335578063b134427114610330578063bd49c35f1461032b578063bdc8144b14610326578063bfefcd7b14610321578063c31e8dd71461031c578063ce9b793014610317578063d547741f14610312578063d8dfeb451461030d578063db38871514610308578063ecf7085814610303578063efb559d6146102fe578063f2fde38b146102f9578063f3fef3a3146102f45763f5e7ee0f146102ef575f80fd5b6123c1565b61231b565b6122ee565b61219f565b612182565b612148565b61211d565b6120d1565b6120a9565b61203f565b612025565b611f47565b611f2d565b611f05565b611edb565b611e1a565b611c63565b611c1d565b611bd0565b611add565b611aa3565b611a89565b611a65565b611998565b61195e565b611900565b6118cc565b61186a565b611826565b61166d565b611654565b6115ee565b6115c7565b611587565b61156d565b61152c565b61125a565b6111f3565b6111ce565b61118a565b611137565b61110d565b6110e6565b610fae565b610f7c565b610ee7565b610ece565b610e71565b610e51565b610e30565b610b72565b610b4a565b610aaf565b610a6a565b610a1f565b6109d1565b61098d565b610919565b61072b565b61065d565b610635565b6105fc565b610513565b6104c8565b61048e565b3461048a57602036600319011261048a5760043563ffffffff60e01b811680910361048a57602090637965db0b60e01b8114908115610479575b506040519015158152f35b6301ffc9a760e01b1490505f61046e565b5f80fd5b3461048a575f36600319011261048a5760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b3461048a575f36600319011261048a5760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b6001600160a01b0381160361048a57565b3461048a57604036600319011261048a5760043561053081610502565b6024359061053c612be6565b6001600160a01b038116156105eb57335f908152600e6020526040902061056790613c6f565b613c6f565b82116105d957610587610578613b82565b610580613bfb565b9084613cbc565b9182156105c4578261059892612c15565b906105af60015f805160206148ab83398151915255565b604080519182526020820192909252f35b0390f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b3461048a57602036600319011261048a576004355f525f8051602061488b8339815191526020526020600160405f200154604051908152f35b3461048a575f36600319011261048a576001546040516001600160a01b039091168152602090f35b3461048a575f36600319011261048a5761067561293a565b80156106d65760015465ffffffffffff8160a01c16915f1981019081116106d1576106a39160d01c9061241a565b81018091116106d1576106b86105c091612d8f565b60405165ffffffffffff90911681529081906020820190565b6123eb565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b038216820361048a57565b9181601f8401121561048a578235916001600160401b03831161048a576020838186019501011161048a57565b3461048a57604036600319011261048a576107446106e8565b6001600160401b0360243581811161048a576107649036906004016106fe565b92909161076f612be6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036107e9575f805160206148cb833981519152549060ff8260401c169283156107d9575b50505015612dc1575b60405163f92ee8a960e01b8152600490fd5b81169116101590505f80806107be565b604051631966391b60e11b8152600490fd5b65ffffffffffff81160361048a57565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761083a57604052565b61080b565b604081019081106001600160401b0382111761083a57604052565b90601f801991011681019081106001600160401b0382111761083a57604052565b6040519061016082018281106001600160401b0382111761083a57604052565b604051906108a88261083f565b565b6001600160401b03811161083a57601f01601f191660200190565b9291926108d1826108aa565b916108df604051938461085a565b82948184528183011161048a578281602093845f960137010152565b9080601f8301121561048a57816020610916933591016108c5565b90565b3461048a57606036600319011261048a5760043561093681610502565b60243590610943826107fb565b604435906001600160401b03821161048a576020926109696109859336906004016108fb565b6001600160a01b039092165f908152600e855260409020612f87565b604051908152f35b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a57604036600319011261048a57610a1d6024356004356109f482610502565b805f525f8051602061488b833981519152602052610a18600160405f20015461315e565b61345e565b005b3461048a57604036600319011261048a57602435610a3c81610502565b336001600160a01b03821603610a5857610a1d90600435613494565b60405163334bd91960e11b8152600490fd5b3461048a575f36600319011261048a5760ff60025460a01c1680610a96575b6020906040519015158152f35b5060035460a01c60ff16610a89565b8015150361048a57565b3461048a57602036600319011261048a57600435610acc81610aa5565b610ad4612be6565b610adc613053565b5f54901515908160ff8216151514610b385760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f805160206148ab83398151915255005b60405163a741a04560e01b8152600490fd5b3461048a575f36600319011261048a57602065ffffffffffff60015460a01c16604051908152f35b3461048a5760408060031936011261048a576004803591610b9283610502565b610b9a612be6565b6001600160a01b0391838316908115610e22575f5460ff811680610e09575b610dfa5783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610dd2575f93610dd7575b50610c0e906024359030903390613526565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610dd257610c4d935f92610da5575b505061240d565b938415610d965760081c60ff1680610d81575b610d735750906105c091610d11610c75613b82565b95610cbe610c81613bfb565b610ca9610c8f8a838b613cbc565b99610ca38a610c9d42612d8f565b9261243b565b9061367a565b5050610cb889610c9d42612d8f565b9061375a565b50506001600160a01b0381165f908152600e6020526040902090610d0b88610d06610562610ceb42612d8f565b6001600160a01b039095165f908152600e6020526040902090565b61243b565b91613836565b505081518481526020810186905233907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a3610d5d60015f805160206148ab83398151915255565b5191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50610d8e84610d06613b82565b815410610c60565b50825163070f6eed60e11b8152fd5b610dc49250803d10610dcb575b610dbc818361085a565b810190612469565b5f80610c46565b503d610db2565b612478565b610c0e919350610df390853d8711610dcb57610dbc818361085a565b9290610bfc565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610bb9565b8251630d534ce360e11b8152fd5b3461048a575f36600319011261048a57602060ff5f54166040519015158152f35b3461048a575f36600319011261048a57602060015460d01c604051908152f35b3461048a575f36600319011261048a57602060ff60025460a01c166040519015158152f35b90604060031983011261048a57600435610eaf816107fb565b91602435906001600160401b03821161048a57610916916004016108fb565b3461048a576020610985610ee136610e96565b90612dfd565b3461048a57602036600319011261048a57600435610f0481610aa5565b610f0c612be6565b610f146130b0565b5f54901515908160ff8260081c16151514610b385761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610a1d60015f805160206148ab83398151915255565b3461048a575f36600319011261048a5760206001600160401b035f805160206148cb8339815191525416604051908152f35b3461048a57606036600319011261048a57610fc76106e8565b602435610fd381610502565b6001600160401b039160443583811161048a57610ff49036906004016106fe565b5f805160206148cb8339815191529491855494838616806110d55760ff8760401c169081156110c8575b506107c7577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966110c39661108b958716906001600160401b0319161790556110865f805160206148cb833981519152600160401b68ff000000000000000019825416179055565b612483565b5f805160206148cb833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f61101e565b60405162dc149f60e41b8152600490fd5b3461048a57602036600319011261048a57602061098560043561110881610502565b6128a3565b3461048a57602036600319011261048a576004355f526006602052602060405f2054604051908152f35b3461048a575f36600319011261048a5760015465ffffffffffff61116d818360a01c169261116361293a565b9060d01c9061241a565b82018092116106d157611181602092612d8f565b60405191168152f35b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a575f36600319011261048a57602060ff60035460a01c166040519015158152f35b3461048a575f36600319011261048a5761120b6139c8565b5f8051602061482b83398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461048a57604036600319011261048a5760043560243561127a816107fb565b611282612be6565b60035461129f906001600160a01b03165b6001600160a01b031690565b330361151a576112ad61293a565b906112b78161296e565b9082151580611509575b8015611500575b6114ee576105c0937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c7926112fa613b82565b946113156113078261242d565b5f52600660205260405f2090565b54908281036114085750611329818761243b565b8381188185100281189687806113c1575b50505050505b8361138d575b6040805191825265ffffffffffff929092166020820152908101839052606090a161137d60015f805160206148ab83398151915255565b6040519081529081906020820190565b5f546113bc9085906113aa9060101c6001600160a01b0316611293565b6001546001600160a01b031690613a97565b611346565b6113fd93610c4683610ca36113e76113e0611307986113f79888613a0a565b809661240d565b946113f142612d8f565b9261240d565b9261242d565b555f8080808761133a565b915061141c825f52600660205260405f2090565b549061142c81610d06848a61243b565b908482188286100282189788611447575b5050505050611340565b6114bc938361146f9361147c8c6114776114656114ad998884613a0a565b9788958584613a0a565b94859261240d565b61240d565b938484106114c7575b610c4690610ca361149b9596976113f142612d8f565b6114a76113078761242d565b5561240d565b915f52600660205260405f2090565b555f8080808061143d565b916114e3610c46916114dd8661149b979861240d565b9061243b565b859450929050611485565b604051635e18d2a560e01b8152600490fd5b508282116112c8565b50611513836123ff565b82106112c1565b60405163dabc4ad960e01b8152600490fd5b3461048a575f36600319011261048a5760015465ffffffffffff808260a01c169161155561293a565b600181018091116106d15761116d9160d01c9061241a565b3461048a575f36600319011261048a57602061098561293a565b3461048a57602036600319011261048a576004356115a481610502565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b3461048a57602036600319011261048a5760206109856004356115e9816107fb565b61296e565b3461048a57604036600319011261048a5760043561160b81610502565b6024356001600160401b0380821161048a573660238301121561048a57816004013590811161048a573660248260051b8401011161048a576105c092602461137d9301906129a9565b3461048a57602061098561166736610e96565b90612ed2565b3461048a5760208060031936011261048a57600480359061168d82610502565b611695612be6565b60025460a01c60ff16611817576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd2575f916117ea575b50156117da5760405163fbfa77cf60e01b8152838516949082818581895afa928315610dd2575f936117ab575b50503091160361179c5750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610a1d60015f805160206148ab83398151915255565b60405163b9f0f17160e01b8152fd5b6117cb929350803d106117d3575b6117c3818361085a565b810190612b02565b905f8061172f565b503d6117b9565b506040516324e5af8d60e21b8152fd5b61180a9150823d8411611810575b611802818361085a565b810190612ae2565b5f611702565b503d6117f8565b604051631380833b60e01b8152fd5b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a575f36600319011261048a5761188261293a565b61188a613b82565b90805f52600660205260405f205482018092116106d157600181018091116106d1575f52600660205260405f205481018091116106d157602090604051908152f35b3461048a575f36600319011261048a575f8051602061482b833981519152546040516001600160a01b039091168152602090f35b3461048a57604036600319011261048a57602060ff61195260243561192481610502565b6004355f525f8051602061488b833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461048a57602036600319011261048a5760043561197b81610502565b60018060a01b03165f52600e602052602061098560405f20613c6f565b3461048a5760408060031936011261048a576004356119b681610502565b6024356001600160401b03811161048a575f80611a54936119dd60809436906004016106fe565b908188519283928337810184815203915af43d15611a5c5760203d611a01816108aa565b90611a0e8751928361085a565b81523d5f8383013e5b8551958693151583850152808401528051918291826060860152018484015e5f838284010152601f8019910116810103606081018452018261085a565b805190602001fd5b60206060611a17565b3461048a575f36600319011261048a57602060ff5f5460081c166040519015158152f35b3461048a575f36600319011261048a5760206040515f8152f35b3461048a575f36600319011261048a5760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b3461048a57604036600319011261048a57600435611afa81610502565b602435611b0681610aa5565b611b0e612be6565b611b16613107565b6001600160a01b038216918215611bbe575f8381526005602052604090205460ff16151582151514610b38576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a6291611ba591611b93908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610a1d60015f805160206148ab83398151915255565b604051630da30f6560e31b8152600490fd5b3461048a57604036600319011261048a576020611c14602435611bf281610502565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b3461048a57604036600319011261048a57602060ff611952602435611c4181610502565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b3461048a5760208060031936011261048a576004803590611c8382610502565b611c8b612be6565b60035460a01c60ff16611e0b576001600160a01b03828116939084611cf9575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610a1d60015f805160206148ab83398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd2575f91611dee575b5015611ddd5760405163fbfa77cf60e01b815282818581895afa928315610dd2575f93611dbe575b505030911603611daf5750600380546001600160a01b0319166001600160a01b039092169190911790555f808080611cab565b604051633f3e089160e21b8152fd5b611dd5929350803d106117d3576117c3818361085a565b905f80611d7c565b60405163dabc4ad960e01b81528390fd5b611e059150833d851161181057611802818361085a565b5f611d54565b60405163703fe2e560e01b8152fd5b3461048a57604036600319011261048a57600435611e3781610502565b60243590611e43612be6565b6001600160a01b0391818316908115611ec957611e746105c094611e6683613ae6565b9485915f5460101c16613a97565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f805160206148ab833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b3461048a57602036600319011261048a576004355f526007602052602060405f2054604051908152f35b3461048a575f36600319011261048a576003546040516001600160a01b039091168152602090f35b3461048a575f36600319011261048a576020610985613b82565b3461048a57602036600319011261048a57600435611f63612be6565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff161561200757508060045414610b38576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f805160206148ab83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461048a575f36600319011261048a576020610985613bfb565b3461048a57602036600319011261048a5760043561205c81610502565b61206461293a565b61206d826128a3565b916120788183612b88565b83018093116106d157600182018092116106d15761209591612b88565b81018091116106d157602090604051908152f35b3461048a575f36600319011261048a576002546040516001600160a01b039091168152602090f35b3461048a57604036600319011261048a57610a1d6024356004356120f482610502565b805f525f8051602061488b833981519152602052612118600160405f20015461315e565b613494565b3461048a575f36600319011261048a575f5460405160109190911c6001600160a01b03168152602090f35b3461048a575f36600319011261048a5760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b3461048a575f36600319011261048a576020600454604051908152f35b3461048a57606036600319011261048a576004356121bc81610502565b602435906121c9826107fb565b6001600160401b039160443583811161048a576121ea9036906004016106fe565b909260409384516121fa8161081f565b60608152606060208201526060868201529280612259575b6105c08661224a878761224461222b8984845191612448565b928561223b602085015183612ed2565b93015190612dfd565b91613cbc565b90519081529081906020820190565b810193925060208185031261048a5780359086821161048a57019260608482031261048a5784519561228a8761081f565b843581811161048a578261229f9187016108fb565b8752602085013581811161048a57826122b99187016108fb565b60208801528585013590811161048a576105c0966122e26122449361222b9361224a98016108fb565b87820152939450612212565b3461048a57602036600319011261048a57610a1d60043561230e81610502565b6123166139c8565b612b17565b3461048a57604036600319011261048a5760043561233881610502565b602435612343612be6565b6001600160a01b038216156105eb5780156123af57612372612363613bfb565b61236b613b82565b90836140ff565b335f908152600e6020526040902090929061238c90613c6f565b831161239d57610598918391612c15565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b3461048a57604036600319011261048a5760206109856024356123e381610502565b600435612b88565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116106d157565b919082039182116106d157565b818102929181159184041417156106d157565b90600182018092116106d157565b919082018092116106d157565b6001600160a01b03165f908152600e60205260409020610916929190612f87565b9081602091031261048a575190565b6040513d5f823e3d90fd5b916124d5916124c69161249461421b565b61249c61421b565b60015f805160206148ab833981519152556001600160a01b0394808616612889575b5036916108c5565b602080825183010191016138ff565b805182166001600160a01b03161561287757604080820165ffffffffffff612503825165ffffffffffff1690565b16156128665760c083018051909290612524906001600160a01b0316611293565b15612717575b5091612663610140926126026125dd6126c196612578612550875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b039092169190911790556125d16125a842612d8f565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b5165ffffffffffff1690565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b6126226126126060850151151590565b60ff80195f541691151516175f55565b6126496126326080850151151590565b61ff005f5491151560081b169061ff001916175f55565b61265660a0840151600455565b516001600160a01b031690565b848116612707575b5060e08101516001600160a01b03168481166126f7575b506101008101516001600160a01b03168481166126e7575b506101208101516001600160a01b03168481166126d7575b5001516001600160a01b031690565b9081166126cb5750565b6126d4906133ef565b50565b6126e090613380565b505f6126b2565b6126f090613311565b505f61269a565b6127009061323b565b505f612682565b6127109061318a565b505f61266b565b60e084015161272e906001600160a01b0316611293565b15612803575b61012084015161274c906001600160a01b0316611293565b61252a576080840151156127b95760a0840151158061279a575b61278a575091612663610140926126026125dd6126c1965b9496505050925061252a565b5163183c854560e21b8152600490fd5b506101408401516127b3906001600160a01b0316611293565b15612766565b60a0840151158015906127e3575b61278a575091612663610140926126026125dd6126c19661277e565b506101408401516127fc906001600160a01b0316611293565b15156127c7565b60608401511561283957610100840151612825906001600160a01b0316611293565b612734575163183c854560e21b8152600490fd5b610100840151612851906001600160a01b0316611293565b15612734575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b61289d9061289561421b565b61231661421b565b5f6124be565b6001600160a01b03165f908152600e602052604090206128c290613c6f565b6128ca613b82565b6128d2613bfb565b90600181018091116106d157600182018092116106d15761091692613a0a565b65ffffffffffff91821690821603919082116106d157565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff80911691821561293557160490565b61290a565b61294342612d8f565b61296a60015461296065ffffffffffff93848360a01c16906128f2565b9060d01c9061291e565b1690565b6001549065ffffffffffff91828160a01c169182848216106129975761296a92612960916128f2565b60405163b7d0949760e01b8152600490fd5b906129b2612be6565b5f926001600160a01b038316928315611ec9578115612a6a575f5b828110612a4857505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d279286929091612a1d918491612a189060101c6001600160a01b0316611293565b613a97565b612a2e604051928392339684612aa5565b0390a3906108a860015f805160206148ab83398151915255565b94612a636001916114dd612a5d898789612a90565b35613ae6565b95016129cd565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612aa05760051b0190565b612a7c565b604080825281018390529392916001600160fb1b03811161048a5760209160609160051b809183880137850101930152565b51906108a882610aa5565b9081602091031261048a575161091681610aa5565b51906108a882610502565b9081602091031261048a575161091681610502565b6001600160a01b03908116908115612b70575f8051602061482b83398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612bae90825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116106d157600182018092116106d15761091692613a0a565b5f805160206148ab8339815191526002815414612c035760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e6020526040902093929190612c3042612d8f565b335f908152600e60205260409020612c4790613c6f565b918483039283116106d157612c827febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f938593612d0d99613836565b5050612c9c612c9042612d8f565b610cb887611477613bfb565b5050612cb6612caa42612d8f565b610ca384611477613b82565b5050612d5b81612d46612ccf612cca61293a565b61242d565b612d25612ce4825f52600660205260405f2090565b54612cf7835f52600760205260405f2090565b54612d0382828b613cbc565b9d8e998a9361243b565b612d1f855f52600660205260405f2090565b5561243b565b612d37825f52600760205260405f2090565b555f52600860205260405f2090565b9060018060a01b03165f5260205260405f2090565b612d6683825461243b565b9055604080519485526020850195909552938301526001600160a01b03909216913391606090a3565b65ffffffffffff90818111612da2571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b61048a9136916108c5565b9081602091031261048a575163ffffffff8116810361048a5790565b90600163ffffffff809316019182116106d157565b90805115612ec85780602080612e1893518301019101612dcc565b612e2181613f2d565b90612e32825165ffffffffffff1690565b9065ffffffffffff8085169216828114612ebc5782119182612e68575b5050612e5f575061091690613cdd565b60209150015190565b909150612e76600a546123ff565b63ffffffff831614918215612e8f575b50505f80612e4f565b612eb49192506125d1612ea4612ea992612de8565b613f2d565b65ffffffffffff1690565b115f80612e86565b50505060209150015190565b5061091690613cdd565b90805115612f7d5780602080612eed93518301019101612dcc565b612ef681613fb7565b90612f07825165ffffffffffff1690565b9065ffffffffffff8085169216828114612ebc5782119182612f34575b5050612e5f575061091690613da4565b909150612f42600c546123ff565b63ffffffff831614918215612f5b575b50505f80612f24565b612f759192506125d1612f70612ea992612de8565b613fb7565b115f80612f52565b5061091690613da4565b918051156130495780602080612fa293518301019101612dcc565b91612fad8382614037565b92612fbe845165ffffffffffff1690565b9065ffffffffffff808516921682811461303d5782119182612ff4575b5050612feb576109169250613e64565b50506020015190565b90915061300183546123ff565b63ffffffff83161491821561301a575b50505f80612fdb565b6130359192506125d161302f612ea992612de8565b85614037565b115f80613011565b50505050506020015190565b5061091691613e64565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b5416156120075750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff906130a6565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff906130a6565b5f8181525f8051602061488b83398151915260209081526040808320338452909152902060ff906130a6565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f8051602061488b8339815191529060ff16613235575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f8051602061488b8339815191529060ff905b541661330a575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f8051602061488b8339815191529060ff906132a6565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f8051602061488b8339815191529060ff906132a6565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f8051602061488b8339815191529060ff906132a6565b5f8181525f8051602061488b833981519152602081815260408084206001600160a01b038716855290915290912060ff906132a6565b5f8181525f8051602061488b833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561330a575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b0384111761083a576108a8926040526140a5565b600b54811015612aa057600b5f525f8051602061486b83398151915201905f90565b600d54811015612aa057600d5f525f8051602061484b83398151915201905f90565b8054821015612aa0575f5260205f2001905f90565b600d54600160401b81101561083a576001810180600d55811015612aa057600d5f525f8051602061484b8339815191520155565b600b54600160401b81101561083a576001810180600b55811015612aa057600b5f525f8051602061486b8339815191520155565b90815491600160401b83101561083a57826136629160016108a8950181556135c2565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613725575b50613692614138565b509290918154926136a1613b82565b9481613710575b50156136ed57505f1982018281116106d15781541115612aa0575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613701926001600160d01b03169150614362565b505061370c836135d7565b9190565b65ffffffffffff83811691161490505f6136a8565b600160401b81101561083a5760018101808455811015612aa0575f908382525f8051602061484b83398151915201555f613689565b919091600b9081548015613801575b5061377261418d565b50929091815492613781613bfb565b94816137ec575b50156137cd57505f1982018281116106d15781541115612aa0575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b6137e1926001600160d01b03169150614432565b505061370c8361360b565b65ffffffffffff83811691161490505f613788565b600160401b81101561083a5760018101808455811015612aa0575f908382525f8051602061486b83398151915201555f613769565b909291926001820190815480156138c4575b5084613853846141e2565b5094909284549361386383613c6f565b96816138af575b501561388c575050505f1981019081116106d157613662859161370c936135c2565b61370c9492936138a8926001600160d01b0390911691906144d1565b505061363f565b65ffffffffffff83811691161490505f61386a565b600160401b81101561083a578060016138e092018455836135c2565b8154905f199060031b1b191690555f613848565b51906108a8826107fb565b908161016091031261048a5761391361087b565b9061391d81612af7565b825261392b60208201612af7565b602083015261393c604082016138f4565b604083015261394d60608201612ad7565b606083015261395e60808201612ad7565b608083015260a081015160a083015261397960c08201612af7565b60c083015261398a60e08201612af7565b60e083015261010061399d818301612af7565b908301526101206139af818301612af7565b908301526139c1610140809201612af7565b9082015290565b5f8051602061482b833981519152546001600160a01b031633036139e857565b60405163118cdaa760e01b8152336004820152602490fd5b8115612935570490565b91818302915f1981850993838086109503948086039514613a8a5784831115613a7d5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b8215600302601118614249565b5050906109169250613a00565b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815260808101916001600160401b0383118284101761083a576108a8926040526140a5565b90613aef61293a565b821015613b70575f82815260096020908152604080832033845290915290205460ff16613b5e57613b203383612b88565b918215613b4c575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600c5480613bc257505f5b6001600160d01b03811615613bbd57600d54811015612aa057600d5f525f8051602061484b833981519152015490565b505f90565b805f198101116106d157600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c613b8d565b600a5480613c3657505f5b6001600160d01b03811615613bbd57600b54811015612aa057600b5f525f8051602061486b833981519152015490565b805f198101116106d157600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c613c06565b805480613c9e57505f5b6001600160d01b03811615613235576001613c9492016135c2565b90549060031b1c90565b5f199080828101116106d157825f5260205f2001015460301c613c79565b9190600181018091116106d157600182018092116106d15761091692613a0a565b600a54905f829160058411613d4b575b613cf793506146b6565b80613d1a57505f5b6001600160d01b03811615613bbd57613c946109169161357e565b613d3f613d29613d46926123ff565b600a5f525f8051602061480b8339815191520190565b5460301c90565b613cff565b9192613d568161458b565b81039081116106d157613cf793600a5f5265ffffffffffff80835f8051602061480b833981519152015416908516105f14613d92575091613ced565b929150613d9e9061242d565b90613ced565b600c54905f829160058411613e0b575b613dbe935061471f565b80613de157505f5b6001600160d01b03811615613bbd57613c94610916916135a0565b613d3f613df0613e06926123ff565b600c5f525f805160206147eb8339815191520190565b613dc6565b9192613e168161458b565b81039081116106d157613dbe93600c5f5265ffffffffffff80835f805160206147eb833981519152015416908516105f14613e52575091613db4565b929150613e5e9061242d565b90613db4565b908154905f829160058411613ec7575b613e7f935084614788565b80613ea757505f905b6001600160d01b0382161561323557610916916001613c9492016135c2565b613d3f613eb6613ec1926123ff565b835f5260205f200190565b90613e88565b9192613ed28161458b565b81039081116106d157613e7f93855f5265ffffffffffff808360205f20015416908516105f14613f03575091613e74565b929150613f0f9061242d565b90613e74565b60405190613f228261083f565b5f6020838281520152565b613f35613f15565b50613f3e613f15565b50600a54811015612aa057600a5f52602060405191613f5c8361083f565b5f8051602061480b83398151915201549165ffffffffffff83169283825260301c9182910152600b54811015612aa057600b5f525f8051602061486b833981519152015460405191613fad8361083f565b8252602082015290565b613fbf613f15565b50613fc8613f15565b50600c54811015612aa057600c5f52602060405191613fe68361083f565b5f805160206147eb83398151915201549165ffffffffffff83169283825260301c9182910152600d54811015612aa057600d5f525f8051602061484b833981519152015460405191613fad8361083f565b906020600161405b6140879361404b613f15565b50614054613f15565b50856135c2565b50936040519461406a8661083f565b549465ffffffffffff86169586825260301c9384910152016135c2565b905490604051926140978461083f565b835260031b1c602082015290565b905f602091828151910182855af115612478575f513d6140f657506001600160a01b0381163b155b6140d45750565b604051635274afe760e01b81526001600160a01b039091166004820152602490fd5b600114156140cd565b9190600181018091116106d157600182018092116106d157614122828285613a0a565b9282156129355709151581018091116106d15790565b600c548061414957505f905f905f90565b805f198101116106d157600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460019165ffffffffffff82169160301c90565b600a548061419e57505f905f905f90565b805f198101116106d157600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460019165ffffffffffff82169160301c90565b8054806141f35750505f905f905f90565b5f199181838101116106d1575f5260205f2001015460019165ffffffffffff82169160301c90565b60ff5f805160206148cb8339815191525460401c161561423757565b604051631afcd79f60e31b8152600490fd5b634e487b715f526020526024601cfd5b600c5490600160401b82101561083a576001820180600c55821015612aa057600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206147eb83398151915290910155565b600a5490600160401b82101561083a576001820180600a55821015612aa057600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f8051602061480b83398151915290910155565b8054600160401b81101561083a57614324916001820181556135c2565b61434f57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c54919291801561440957613df061437a916123ff565b9081549165ffffffffffff908184169183168083116143f7578692036143bf576143b892509065ffffffffffff82549181199060301b169116179055565b60301c9190565b50506143f2906143de6143d061089b565b65ffffffffffff9092168252565b6001600160d01b0385166020820152614259565b6143b8565b604051632520601d60e01b8152600490fd5b5061442d906144196143d061089b565b6001600160d01b0384166020820152614259565b5f9190565b600a5491929180156144ad57613d2961444a916123ff565b9081549165ffffffffffff908184169183168083116143f757869203614488576143b892509065ffffffffffff82549181199060301b169116179055565b50506143f2906144996143d061089b565b6001600160d01b03851660208201526142b0565b5061442d906144bd6143d061089b565b6001600160d01b03841660208201526142b0565b80549293928015614566576144e86144f3916123ff565b825f5260205f200190565b9182549265ffffffffffff918285169281168084116143f75787930361453257506143b892509065ffffffffffff82549181199060301b169116179055565b9150506143f29161455261454461089b565b65ffffffffffff9093168352565b6001600160d01b0386166020830152614307565b509061442d9161457761454461089b565b6001600160d01b0385166020830152614307565b600181111561091657600181600160801b8110156146a4575b61464c61464261463861462e61462461461a61465897600488600160401b6146539a1015614697575b64010000000081101561468a575b6201000081101561467d575b610100811015614671575b6010811015614665575b101561465d575b60030260011c614613818b613a00565b0160011c90565b614613818a613a00565b6146138189613a00565b6146138188613a00565b6146138187613a00565b6146138186613a00565b8093613a00565b821190565b900390565b60011b614603565b811c9160021b916145fc565b60081c91811b916145f2565b60101c9160081b916145e7565b60201c9160101b916145db565b60401c9160201b916145cd565b50600160401b9050608082901c6145a4565b905b8281106146c457505090565b9091808216906001818418811c83018093116106d157600a5f5265ffffffffffff80845f8051602061480b833981519152015416908616105f1461470c575050915b906146b8565b9093925081018091116106d15790614706565b905b82811061472d57505090565b9091808216906001818418811c83018093116106d157600c5f5265ffffffffffff80845f805160206147eb833981519152015416908616105f14614775575050915b90614721565b9093925081018091116106d1579061476f565b91905b8382106147985750505090565b909192808316906001818518811c83018093116106d157855f5265ffffffffffff808460205f20015416908516105f146147d7575050925b919061478b565b9094935081018091116106d157916147d056fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a89016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220397482c9a8ce651b670b21962bb148b00fad05ebc198b873564640451f1ffc5164736f6c63430008190033","sourceMap":"981:14958:106:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;981:14958:106;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;981:14958:106;;;;;;;;;;3551:87:23;-1:-1:-1;;;1134:40:32;;-1:-1:-1;3551:87:23;;;981:14958:106;-1:-1:-1;981:14958:106;;;;;;;;-1:-1:-1;;981:14958:106;;;;;;;966:38:107;981:14958:106;;;;;;;;;-1:-1:-1;;981:14958:106;;;;;;;821:37:107;981:14958:106;;;;-1:-1:-1;;;;;981:14958:106;;;;;:::o;:::-;;;;;;-1:-1:-1;;981:14958:106;;;;;;;;;:::i;:::-;;;3361:103:30;;;:::i;:::-;-1:-1:-1;;;;;981:14958:106;;5525:21;5521:75;;5634:10;981:14958;;;;5606:15:107;981:14958:106;;;;;5606:33:107;;;:::i;:24::-;:33;:::i;:::-;5610:35:106;;5606:88;;1057:70:98;5173:21:107;;:::i;:::-;4803:22;;:::i;:::-;1057:70:98;;;:::i;:::-;5801:20:106;;;5797:82;;5904:43;;;;:::i;:::-;3426:1:30;;1949;-1:-1:-1;;;;;;;;;;;981:14958:106;3860:283:30;3426:1;981:14958:106;;;;;;;;;;;;;;;;;;5797:82;981:14958;;-1:-1:-1;;;;;;5844:24:106;;981:14958;;5844:24;5606:88;981:14958;;-1:-1:-1;;;5668:15:106;;981:14958;;5668:15;5521:75;981:14958;;-1:-1:-1;;;5569:16:106;;981:14958;;5569:16;981:14958;;;;;;-1:-1:-1;;981:14958:106;;;;;;-1:-1:-1;981:14958:106;-1:-1:-1;;;;;;;;;;;981:14958:106;;;4919:24:23;981:14958:106;-1:-1:-1;981:14958:106;4919:24:23;981:14958:106;;;;;;;;;;;;;-1:-1:-1;;981:14958:106;;;;;;;;-1:-1:-1;;;;;981:14958:106;;;;;;;;;;;;;;-1:-1:-1;;981:14958:106;;;;4084:14:107;;:::i;:::-;4112:10;;4108:65;;4190:17;981:14958:106;;;;;;;;;;;;;;;;4210:27:107;981:14958:106;;;4210:27:107;;:::i;:::-;981:14958:106;;;;;;;4189:60:107;981:14958:106;4189:60:107;;:::i;:::-;981:14958:106;;;;;;;;;;;;;;;;;;:::i;4108:65:107:-;981:14958:106;;-1:-1:-1;;;4145:17:107;;981:14958:106;;4145:17:107;981:14958:106;;;;-1:-1:-1;;;;;981:14958:106;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;981:14958:106;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;981:14958:106;;;;;;:::i;:::-;-1:-1:-1;;;;;981:14958:106;;;;;;;;;;;;;;:::i;:::-;3361:103:30;;;;;:::i;:::-;1673:7:82;-1:-1:-1;;;;;981:14958:106;1659:10:82;:21;1655:71;;-1:-1:-1;;;;;;;;;;;981:14958:106;;;;;;;6431:44:26;;;;;981:14958:106;6427:105:26;;;;1809:204:82;6427:105:26;;981:14958:106;;-1:-1:-1;;;6498:23:26;;981:14958:106;;6498:23:26;6431:44;981:14958:106;;;;6450:25:26;;;-1:-1:-1;6431:44:26;;;;;1655:71:82;981:14958:106;;-1:-1:-1;;;1703:12:82;;981:14958:106;;1703:12:82;981:14958:106;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;981:14958:106;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;981:14958:106;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;981:14958:106;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;981:14958:106;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;981:14958:106;;;;;;-1:-1:-1;;981:14958:106;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;981:14958:106;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;-1:-1:-1;;981:14958:106;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;981:14958:106;;;;;;;5383:59:107;981:14958:106;;;;;;:::i;:::-;-1:-1:-1;;;;;981:14958:106;;;-1:-1:-1;981:14958:106;;;5383:15:107;981:14958:106;;;;;5383:59:107;:::i;:::-;981:14958:106;;;;;;;;;;;;-1:-1:-1;;981:14958:106;;;;;;655:32:82;-1:-1:-1;;;;;981:14958:106;;;;;;;;;;;;-1:-1:-1;;981:14958:106;;;;5350:25:23;981:14958:106;;;;;;;:::i;:::-;;-1:-1:-1;981:14958:106;-1:-1:-1;;;;;;;;;;;981:14958:106;;3202:4:23;4919:24;981:14958:106;-1:-1:-1;981:14958:106;4919:24:23;981:14958:106;3202:4:23;:::i;:::-;5350:25;:::i;:::-;981:14958:106;;;;;;;-1:-1:-1;;981:14958:106;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;981:14958:106;;6441:34:23;6437:102;;6549:37;981:14958:106;;;6549:37:23;:::i;6437:102::-;981:14958:106;;-1:-1:-1;;;6498:30:23;;981:14958:106;;6498:30:23;981:14958:106;;;;;;-1:-1:-1;;981:14958:106;;;;;1524:22;981:14958;;;;1524:46;;;981:14958;;;;;;;;;;;1524:46;-1:-1:-1;1550:20:106;981:14958;;;;;1524:46;;981:14958;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;981:14958:106;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;981:14958:106;;;;;;;;;;;9542:26;9538:76;;-1:-1:-1;;981:14958:106;;;;;-1:-1:-1;981:14958:106;;;;;;9665:27;;981:14958;;9665:27;1949:1:30;-1:-1:-1;;;;;;;;;;;981:14958:106;;9538:76;981:14958;;-1:-1:-1;;;9591:12:106;;981:14958;;9591:12;981:14958;;;;;;-1:-1:-1;;981:14958:106;;;;;;1718:31:107;981:14958:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;-1:-1:-1;;;;;981:14958:106;;;;;3474:24;;3470:81;;-1:-1:-1;981:14958:106;;;;3565:55;;;981:14958;3561:118;;981:14958;;-1:-1:-1;;;3713:43:106;;;3750:4;3713:43;;;981:14958;;;;;;;;;;;;;;;;;;;;;;;;;3713:43;;;;;;;;;;-1:-1:-1;3713:43:106;;;981:14958;;3829:6;981:14958;;;3750:4;;3802:10;;3829:6;;:::i;:::-;-1:-1:-1;981:14958:106;;;3864:43;;;3750:4;3864:43;;;981:14958;;;;;;;;;;3864:43;981:14958;;;;;;3864:43;981:14958;;;;;3864:43;;;;;;;:59;:43;-1:-1:-1;3864:43:106;;;981:14958;3864:59;;;:::i;:::-;3938:20;;;3934:79;;981:14958;;;;;4027:64;;981:14958;4023:123;;5173:21:107;;981:14958:106;5173:21:107;4502:93:106;5173:21:107;;:::i;:::-;4803:22;4426:66:106;4803:22:107;;:::i;:::-;4349:67:106;390:70:98;;;;;:::i;:::-;837:15:73;4385:30:106;837:15:73;819:34;837:15;819:34;:::i;:::-;4385:30:106;;:::i;:::-;4349:67;;:::i;:::-;837:15:73;;4463:28:106;837:15:73;819:34;837:15;819:34;:::i;4463:28:106:-;4426:66;;:::i;:::-;-1:-1:-1;;;;;;;981:14958:106;;;;;;5606:15:107;981:14958:106;;;;;837:15:73;4553:41:106;837:15:73;5606:33:107;:24;819:34:73;837:15;819:34;:::i;:::-;-1:-1:-1;;;;;981:14958:106;;;;;;;5606:15:107;981:14958:106;;;;;;;5606:33:107;4553:41:106;:::i;:::-;4502:93;;:::i;:::-;-1:-1:-1;;981:14958:106;;;;;;;;;;;3802:10;;4611:62;;981:14958;;4611:62;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;981:14958:106;3860:283:30;3426:1;981:14958:106;;;;;;;;;;;;;;;;;;;4023:123;981:14958;;-1:-1:-1;;;4114:21:106;;;4027:64;5173:21:107;4045:31:106;5173:21:107;;;:::i;4045:31:106:-;981:14958;;-1:-1:-1;4027:64:106;;3934:79;-1:-1:-1;981:14958:106;;-1:-1:-1;;;3981:21:106;;;3864:43;;;;;;-1:-1:-1;3864:43:106;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;3713:::-;3829:6;3713:43;;;;;;;;;;;;;;;:::i;:::-;;;;;3561:118;-1:-1:-1;981:14958:106;;-1:-1:-1;;;3643:25:106;;;3565:55;-1:-1:-1;3609:10:106;981:14958;;;;3586:22;981:14958;;;;;;;;3585:35;3565:55;;3470:81;981:14958;;-1:-1:-1;;;3521:19:106;;;981:14958;;;;;;-1:-1:-1;;981:14958:106;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14958:106;;;;;1805:27:107;981:14958:106;;;;;;;;;;;;;;;-1:-1:-1;;981:14958:106;;;;;;1968:34:107;981:14958:106;;;;;;;;;;;;;;;-1:-1:-1;;981:14958:106;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;981:14958:106;;;;;;;;;:::i;:::-;;;;;4622:48:107;981:14958:106;;;:::i;:::-;4622:48:107;;:::i;981:14958:106:-;;;;;;-1:-1:-1;;981:14958:106;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;981:14958:106;;;;;;;;;;;;;10370:24;10366:74;;-1:-1:-1;;981:14958:106;;;;;;;;-1:-1:-1;981:14958:106;;;;;;10489:25;;981:14958;;10489:25;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;981:14958:106;3860:283:30;981:14958:106;;;;;;-1:-1:-1;;981:14958:106;;;;;-1:-1:-1;;;;;;;;;;;;;;;;981:14958:106;;;;;;;;;;;;;;-1:-1:-1;;981:14958:106;;;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;;;;;981:14958:106;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;8837:64:26;;981:14958:106;;;;;;734:29:82;730:87;;981:14958:106;;;;;6431:44:26;;;;;981:14958:106;6427:105:26;;;6656:20;981:14958:106;6656:20:26;981:14958:106;1167:340:82;981:14958:106;;;;-1:-1:-1;;;;;981:14958:106;;;;;6575:22:26;-1:-1:-1;;;;;;;;;;;;;;981:14958:106;;;;;;;;;6575:22:26;1167:340:82;:::i;:::-;-1:-1:-1;;;;;;;;;;;981:14958:106;;-1:-1:-1;;981:14958:106;;;;;-1:-1:-1;;;;;981:14958:106;;;;;;;;;;;;;6656:20:26;;;;981:14958:106;6431:44:26;981:14958:106;;;;;-1:-1:-1;6450:25:26;6431:44;;;730:87:82;981:14958:106;;-1:-1:-1;;;786:20:82;;981:14958:106;;786:20:82;981:14958:106;;;;;;-1:-1:-1;;981:14958:106;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;981:14958:106;;;;;;-1:-1:-1;981:14958:106;2431:59:107;981:14958:106;;;;-1:-1:-1;981:14958:106;;;;;;;;;;;;;;-1:-1:-1;;981:14958:106;;;;3875:17:107;981:14958:106;;3895:30:107;981:14958:106;;;;;3895:14:107;;;:::i;:::-;981:14958:106;;;3895:30:107;;:::i;:::-;981:14958:106;;;;;;;3874:63:107;981:14958:106;3874:63:107;;:::i;:::-;981:14958:106;;;;;;;;;;;;;-1:-1:-1;;981:14958:106;;;;;;1200:42:107;-1:-1:-1;;;;;981:14958:106;;;;;;;;;;;;-1:-1:-1;;981:14958:106;;;;;;2136:32:107;981:14958:106;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14958:106;;;;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;981:14958:106;;-1:-1:-1;;;;;;981:14958:106;;;;;;;-1:-1:-1;;;;;981:14958:106;3975:40:24;981:14958:106;;3975:40:24;981:14958:106;;;;;;;-1:-1:-1;;981:14958:106;;;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;7131:7:106;981:14958;7117:21;;-1:-1:-1;;;;;981:14958:106;;-1:-1:-1;;;;;981:14958:106;;;7117:21;:10;:21;7113:71;;7218:14;;:::i;:::-;7265:25;;;;:::i;:::-;7305:17;;;;:53;;;981:14958;7304:87;;;;981:14958;7300:146;;981:14958;5173:21:107;9310:48:106;5173:21:107;;;:::i;:::-;7540:17:106;7528:30;7540:17;;;:::i;:::-;981:14958;;7528:11;981:14958;;;;;;;7528:30;981:14958;;7572:29;;;;;7642:30;;;;;:::i;:::-;3066:5:68;;;3463;;;981:14958:106;3060:42:68;;7752:17:106;;;7748:384;;7568:1615;;;;;;;9197:17;9193:102;;7568:1615;981:14958;;;;;;;;;;;;;;;;;;;;;;;9310:48;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;981:14958:106;3860:283:30;3426:1;981:14958:106;;;;;;;;;;;;;9193:102;-1:-1:-1;981:14958:106;9270:13;;981:14958;;9230:18;;981:14958;;-1:-1:-1;;;;;981:14958:106;;;9230:18;7556:1;981:14958;-1:-1:-1;;;;;981:14958:106;9270:13;;:::i;:::-;9193:102;;7748:384;8045:29;7813:50;7962:65;7813:50;7998:28;7914:29;7813:50;8057:16;7813:50;8077:40;7813:50;;;:::i;:::-;7914:29;;;:::i;:::-;837:15:73;819:34;837:15;819:34;:::i;:::-;7998:28:106;;:::i;8077:40::-;8057:16;;:::i;8045:29::-;981:14958;7748:384;;;;;;;7568:1615;8185:26;;;;981:14958;;7528:11;981:14958;;;;;;;8185:26;981:14958;8250:27;:45;:27;;;;;:::i;:45::-;3463:5:68;3066;;;3463;;;981:14958:106;3060:42:68;;8375:17:106;;8371:802;;7568:1615;;;;;;;;8371:802;9096:26;8436:50;;8537:53;8436:50;8637:54;8436:50;8637:29;8436:50;9125:33;8436:50;;;;:::i;:::-;8537:53;;;;;;:::i;:::-;8637:29;;;;:::i;:::-;:54;:::i;:::-;8714:33;;;;8710:194;;8371:802;8922:65;837:15:73;8958:28:106;9038:40;837:15:73;;;819:34;837:15;819:34;:::i;9038:40:106:-;9005:30;9017:17;;;:::i;9005:30::-;981:14958;9125:33;:::i;:::-;9096:26;981:14958;;7528:11;981:14958;;;;;;;9096:26;981:14958;8371:802;;;;;;;8710:194;8797:33;8771:59;8922:65;8797:33;;;9038:40;8797:33;;;:::i;:::-;8771:59;;:::i;:::-;8852:33;;-1:-1:-1;8852:33:106;;-1:-1:-1;8710:194:106;;7300:146;981:14958;;-1:-1:-1;;;7414:21:106;;981:14958;;7414:21;7304:87;7363:28;;;;7304:87;;7305:53;7341:17;;;;:::i;:::-;7326:32;;7305:53;;7113:71;981:14958;;-1:-1:-1;;;7161:12:106;;981:14958;;7161:12;981:14958;;;;;;-1:-1:-1;;981:14958:106;;;;4384:17:107;981:14958:106;;;;;;;4405:14:107;;;:::i;:::-;4384:17;981:14958:106;;;;;;;4404:36:107;981:14958:106;;;4404:36:107;;:::i;981:14958:106:-;;;;;;-1:-1:-1;;981:14958:106;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;981:14958:106;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;981:14958:106;2307:68:107;981:14958:106;;;;;-1:-1:-1;981:14958:106;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14958:106;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;981:14958:106;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;981:14958:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6491:14;981:14958;;6491:14;;:::i;981:14958::-;;;;;4994:47:107;981:14958:106;;;:::i;:::-;4994:47:107;;:::i;981:14958:106:-;;;;;;;;;;;;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;10932:22:106;981:14958;;;;;10928:89;;981:14958;;-1:-1:-1;;;11032:49:106;;-1:-1:-1;;;;;981:14958:106;;;11032:49;;;981:14958;;;;;;;;;;;;;;;11032:49;11042:17;;;981:14958;11032:49;;;;;;;-1:-1:-1;11032:49:106;;;981:14958;11031:50;;11027:102;;981:14958;;-1:-1:-1;;;11143:34:106;;981:14958;;;;;11143:34;981:14958;11143:34;981:14958;;11143:34;;;;;;;-1:-1:-1;11143:34:106;;;981:14958;11189:4;;;981:14958;;11143:51;11139:107;;-1:-1:-1;10932:22:106;981:14958;;-1:-1:-1;;;;;981:14958:106;;;;-1:-1:-1;;;;;;981:14958:106;;;;;;;-1:-1:-1;;;981:14958:106;;;11334:24;-1:-1:-1;;11334:24:106;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;981:14958:106;3860:283:30;11139:107:106;981:14958;;-1:-1:-1;;;11217:18:106;;;11143:34;;;;;;;-1:-1:-1;11143:34:106;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;11027:102;-1:-1:-1;981:14958:106;;-1:-1:-1;;;11104:14:106;;;11032:49;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;10928:89;981:14958;;-1:-1:-1;;;10977:29:106;;;981:14958;;;;;;-1:-1:-1;;981:14958:106;;;;;;1298:40:107;-1:-1:-1;;;;;981:14958:106;;;;;;;;;;;;-1:-1:-1;;981:14958:106;;;;1703:14;;:::i;:::-;5173:21:107;;:::i;:::-;981:14958:106;;;;1750:11;981:14958;;;;;;;;;;;;;1791:1;981:14958;;;;;;;;;1750:11;981:14958;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14958:106;;;;-1:-1:-1;;;;;;;;;;;981:14958:106;;;-1:-1:-1;;;;;981:14958:106;;;;;;;;;;;;;;-1:-1:-1;;981:14958:106;;;;;;3901:31:23;981:14958:106;;;;;:::i;:::-;;;-1:-1:-1;981:14958:106;-1:-1:-1;;;;;;;;;;;981:14958:106;;;-1:-1:-1;981:14958:106;;;;;;;;;;;;;;;;;3901:31:23;981:14958:106;;;;;;;;;;;;;;;;-1:-1:-1;;981:14958:106;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;981:14958:106;5606:15:107;981:14958:106;;;5606:33:107;981:14958:106;-1:-1:-1;981:14958:106;5606:33:107;:::i;981:14958:106:-;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;981:14958:106;;;;-1:-1:-1;981:14958:106;477:31:86;981:14958:106;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:86;;;;981:14958:106;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;981:14958:106;;;;;;;;;;;;477:31:86;;;981:14958:106;;;;;;;;;;;;;;;;;;;;-1:-1:-1;981:14958:106;;;;;;;;;;;;;;477:31:86;981:14958:106;477:31:86;;;;;;;:::i;:::-;518:79;;;981:14958:106;518:79:86;;981:14958:106;;;;;;;;;;;-1:-1:-1;;981:14958:106;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14958:106;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14958:106;;;;;;;1109:35:107;981:14958:106;;;;;;;;;-1:-1:-1;;981:14958:106;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;;;;;981:14958:106;;;9907:21;;9903:75;;-1:-1:-1;981:14958:106;;;9992:22;981:14958;;;;;;;;;;;;;9992:41;9988:91;;-1:-1:-1;;;;;981:14958:106;;;;;3586:22;981:14958;;;;;10145:44;;;;10089:40;;:31;981:14958;;;;;;;;;;;;;;10089:40;981:14958;;;;;;;;;;;;;;;10145:44;;;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;981:14958:106;3860:283:30;9903:75:106;981:14958;;-1:-1:-1;;;9951:16:106;;981:14958;;9951:16;981:14958;;;;;;-1:-1:-1;;981:14958:106;;;;;2666:94:107;981:14958:106;;;;;:::i;:::-;;;-1:-1:-1;981:14958:106;2666:94:107;981:14958:106;;;-1:-1:-1;981:14958:106;;;;;;;;;;;;;;;;;2666:94:107;981:14958:106;;;;;;;;;;;;;-1:-1:-1;;981:14958:106;;;;;;2816:92:107;981:14958:106;;;;;:::i;:::-;;;-1:-1:-1;981:14958:106;2816:92:107;981:14958:106;;;-1:-1:-1;981:14958:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;11459:20:106;981:14958;;;;;11455:85;;-1:-1:-1;;;;;981:14958:106;;;;;;11550:312;;981:14958;11459:20;981:14958;;-1:-1:-1;;;;981:14958:106;-1:-1:-1;;;981:14958:106;;;11872:27;11915:20;-1:-1:-1;11915:20:106;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;981:14958:106;3860:283:30;11550:312:106;981:14958;;-1:-1:-1;;;11597:45:106;;-1:-1:-1;;;;;981:14958:106;;11597:45;;;981:14958;;;11597:45;;981:14958;;;;;;11597:45;11607:15;;;981:14958;11597:45;;;;;;;-1:-1:-1;11597:45:106;;;11550:312;11596:46;;11592:104;;981:14958;;-1:-1:-1;;;11714:30:106;;;981:14958;11714:30;981:14958;11714:30;;;;;;;;-1:-1:-1;11714:30:106;;;11550:312;11756:4;;;981:14958;;11714:47;11710:109;;-1:-1:-1;11459:20:106;981:14958;;-1:-1:-1;;;;;;981:14958:106;-1:-1:-1;;;;;981:14958:106;;;;;;;;;11550:312;;;;;;11710:109;981:14958;;-1:-1:-1;;;11788:16:106;;;11714:30;;;;;;;-1:-1:-1;11714:30:106;;;;;;:::i;:::-;;;;;;11592:104;981:14958;;-1:-1:-1;;;11669:12:106;;981:14958;;11669:12;11597:45;;;;;;;;;;;;;;:::i;:::-;;;;11455:85;981:14958;;-1:-1:-1;;;11502:27:106;;;981:14958;;;;;;-1:-1:-1;;981:14958:106;;;;;;;;;:::i;:::-;;;3361:103:30;;;:::i;:::-;-1:-1:-1;;;;;981:14958:106;;;;;6112:23;;6108:79;;6273:6;981:14958;6206:13;;;;:::i;:::-;981:14958;;;-1:-1:-1;981:14958:106;;;;6273:6;:::i;:::-;981:14958;;;;;;;;;;;;6302:10;;6296:43;;981:14958;6296:43;1949:1:30;-1:-1:-1;;;;;;;;;;;981:14958:106;;;;;;;;;;;;;;6108:79;981:14958;;-1:-1:-1;;;6158:18:106;;981:14958;;6158:18;981:14958;;;;;;-1:-1:-1;;981:14958:106;;;;;;-1:-1:-1;981:14958:106;2546:64:107;981:14958:106;;;;-1:-1:-1;981:14958:106;;;;;;;;;;;;;;-1:-1:-1;;981:14958:106;;;;2058:22:107;981:14958:106;;;-1:-1:-1;;;;;981:14958:106;;;;;;;;;;;;;;-1:-1:-1;;981:14958:106;;;;;5173:21:107;;:::i;981:14958:106:-;;;;;;-1:-1:-1;;981:14958:106;;;;;;3361:103:30;;:::i;:::-;966:10:28;-1:-1:-1;981:14958:106;;;;;;;;;;1109:35:107;;981:14958:106;;4468:23:23;4464:108;;981:14958:106;;;;10692:21;10688:71;;981:14958;;10805:22;981:14958;;;;;;;;10805:22;1949:1:30;-1:-1:-1;;;;;;;;;;;981:14958:106;;4464:108:23;981:14958:106;;;;4514:47:23;;;;;;966:10:28;981:14958:106;4514:47:23;;981:14958:106;;;;;4514:47:23;981:14958:106;;;;;;-1:-1:-1;;981:14958:106;;;;;4803:22:107;;:::i;981:14958:106:-;;;;;;-1:-1:-1;;981:14958:106;;;;;;;;;:::i;:::-;3123:14;;:::i;:::-;3154:24;;;:::i;:::-;3181:29;;;;;:::i;:::-;981:14958;;;;;;;3235:1;981:14958;;;;;;;3213:33;;;:::i;:::-;981:14958;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14958:106;;;;1888:24:107;981:14958:106;;;-1:-1:-1;;;;;981:14958:106;;;;;;;;;;;;;;-1:-1:-1;;981:14958:106;;;;5767:26:23;981:14958:106;;;;;;;:::i;:::-;;-1:-1:-1;981:14958:106;-1:-1:-1;;;;;;;;;;;981:14958:106;;3202:4:23;4919:24;981:14958:106;-1:-1:-1;981:14958:106;4919:24:23;981:14958:106;3202:4:23;:::i;:::-;5767:26;:::i;981:14958:106:-;;;;;;-1:-1:-1;;981:14958:106;;;;;;;;;;;;;-1:-1:-1;;;;;981:14958:106;;;;;;;;;;;;-1:-1:-1;;981:14958:106;;;;;;;675:39:107;981:14958:106;;;;;;;;;-1:-1:-1;;981:14958:106;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14958:106;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;981:14958:106;;;;;;;;;;;;;;;:::i;:::-;1972:48;;981:14958;;;;;;;:::i;:::-;;;;;;;;;;;;;;2034:16;;2030:111;;981:14958;;2233:39;1057:70:98;2233:39:106;;4622:48:107;2196:77:106;2233:39;;;;2196:77;;:::i;:::-;2312:36;;4994:47:107;981:14958:106;2312:36;;;4994:47:107;;:::i;:::-;2389:37:106;;;4622:48:107;;:::i;:::-;1057:70:98;;:::i;:::-;981:14958:106;;;;;;;;;;;;;2030:111;2089:41;;;;-1:-1:-1;981:14958:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;4622:48:107;981:14958:106;2196:77;981:14958;1057:70:98;981:14958:106;;;:::i;:::-;;;;;2030:111;;;;;981:14958;;;;;;-1:-1:-1;;981:14958:106;;;;2357:1:24;981:14958:106;;;;;:::i;:::-;2303:62:24;;:::i;:::-;2357:1;:::i;981:14958:106:-;;;;;;-1:-1:-1;;981:14958:106;;;;;;;;;:::i;:::-;;;3361:103:30;;:::i;:::-;-1:-1:-1;;;;;981:14958:106;;4890:21;4886:75;;4975:11;;4971:73;;845:69:98;4803:22:107;;:::i;:::-;5173:21;;:::i;:::-;845:69:98;;;:::i;:::-;5180:10:106;981:14958;;;;5606:15:107;981:14958:106;;;;;5180:10;;;5606:33:107;;;:::i;:::-;5150:41:106;;5146:96;;5267:40;;;;;:::i;5146:96::-;981:14958;;-1:-1:-1;;;5214:17:106;;981:14958;;5214:17;4971:73;981:14958;;-1:-1:-1;;;5009:24:106;;981:14958;;5009:24;981:14958;;;;;;-1:-1:-1;;981:14958:106;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;981:14958:106;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;7556:1;981:14958;;;;;;;:::o;:::-;;;;;;;;;;:::o;5256:193:107:-;-1:-1:-1;;;;;981:14958:106;-1:-1:-1;981:14958:106;;;5383:15:107;981:14958:106;;;;;5383:59:107;;5256:193;;5383:59;:::i;981:14958:106:-;;;;;;;;;;;:::o;:::-;;;;;;;;;;1167:340:82;;13510:30:106;1167:340:82;981:14958:106;1167:340:82;6893:76:26;;:::i;:::-;;;:::i;:::-;1949:1:30;-1:-1:-1;;;;;;;;;;;981:14958:106;-1:-1:-1;;;;;981:14958:106;;;;1376:73:82;;1167:340;981:14958:106;;;;:::i;:::-;13510:30;981:14958;;;13510:30;;;;;;:::i;:::-;981:14958;;;;-1:-1:-1;;;;;981:14958:106;13555:31;13551:88;;13653:20;;;;981:14958;;;;;;;;;;13653:25;13649:85;;13748:29;;;981:14958;;13748:29;;981:14958;13748:43;;-1:-1:-1;;;;;981:14958:106;;;13748:43;;13744:943;;1167:340:82;981:14958:106;;;15647:32;981:14958;14817:36;981:14958;;;14697:30;981:14958;;;;;;;;;;;;1398:1:82;981:14958:106;;-1:-1:-1;;;;;;981:14958:106;;;;;;-1:-1:-1;;;;;981:14958:106;;;;;;;;14697:30;13510;14747:13;;981:14958;;;;-1:-1:-1;;;;;;981:14958:106;-1:-1:-1;;;;;981:14958:106;;;;;;;;;14771:36;819:34:73;837:15;819:34;:::i;:::-;1949:1:30;981:14958:106;;-1:-1:-1;;;;981:14958:106;;;;;;-1:-1:-1;;;981:14958:106;;;;;;;;14771:36;981:14958;;;;;;1949:1:30;981:14958:106;;-1:-1:-1;;;;;981:14958:106;;;;;;-1:-1:-1;;;;;;981:14958:106;;;;;;;;14817:36;14864:42;981:14958;14883:23;;;981:14958;;;;;;;;;1398:1:82;981:14958:106;;;;;;;1398:1:82;981:14958:106;;14864:42;14917:38;981:14958;14934:21;;;981:14958;;;;;;;1398:1:82;981:14958:106;;;;;;;;;;;;1398:1:82;981:14958:106;;14917:38;14965:34;14980:19;;;981:14958;14965:34;981:14958;;14965:34;981:14958;-1:-1:-1;;;;;981:14958:106;;;;;;;15010:135;;1167:340:82;-1:-1:-1;15158:36:106;;;981:14958;-1:-1:-1;;;;;981:14958:106;;;;15154:157;;1167:340:82;-1:-1:-1;15324:35:106;;;981:14958;-1:-1:-1;;;;;981:14958:106;;;;15320:153;;1167:340:82;-1:-1:-1;15486:34:106;;;981:14958;-1:-1:-1;;;;;981:14958:106;;;;15482:152;;1167:340:82;-1:-1:-1;15647:32:106;981:14958;-1:-1:-1;;;;;981:14958:106;;;;;;;15643:145;;1167:340:82;:::o;15643:145:106:-;15709:68;;;:::i;:::-;;1167:340:82:o;15482:152:106:-;15550:73;;;:::i;:::-;;15482:152;;;15320:153;15389:73;;;:::i;:::-;;15320:153;;;15154:157;15224:76;;;:::i;:::-;;15154:157;;;15010:135;15073:61;;;:::i;:::-;;15010:135;;;13744:943;13811:36;;;981:14958;13811:50;;-1:-1:-1;;;;;981:14958:106;;;13811:50;;13807:405;;13744:943;14230:34;;;981:14958;14230:48;;-1:-1:-1;;;;;981:14958:106;;;14230:48;13744:943;14226:451;14302:21;;;981:14958;;14302:21;;14351:19;;;981:14958;14351:24;:74;;;14298:365;14347:150;;14298:365;;981:14958;15647:32;14298:365;14817:36;981:14958;;14298:365;;14226:451;;;;;;;13744:943;;14347:150;981:14958;-1:-1:-1;;;14460:14:106;;;;;14351:74;-1:-1:-1;14379:32:106;;;981:14958;14379:46;;-1:-1:-1;;;;;981:14958:106;;;14379:46;;14351:74;;14298:365;14525:19;;;981:14958;14525:24;;;:74;;;14298:365;14521:142;;14298:365;;981:14958;15647:32;14298:365;14817:36;981:14958;;14298:365;;;14525:74;-1:-1:-1;14553:32:106;;;981:14958;14553:46;;-1:-1:-1;;;;;981:14958:106;;;14553:46;;;14525:74;;13807:405;13885:23;;;981:14958;;13885:23;;13936:35;;;981:14958;13936:49;;-1:-1:-1;;;;;981:14958:106;;;13936:49;13807:405;13932:125;981:14958;-1:-1:-1;;;14020:14:106;;;;;13881:317;14085:35;;;981:14958;14085:49;;-1:-1:-1;;;;;981:14958:106;;;14085:49;14081:117;13807:405;14081:117;981:14958;-1:-1:-1;;;14165:14:106;;;;;13649:85;981:14958;;-1:-1:-1;;;13701:22:106;;;;;13551:88;981:14958;;-1:-1:-1;;;13609:19:106;;;;;1376:73:82;6961:1:26;6893:76;;;:::i;:::-;;;:::i;6961:1::-;1376:73:82;;;2492:191:106;-1:-1:-1;;;;;981:14958:106;-1:-1:-1;981:14958:106;;;5606:15:107;981:14958:106;;;;;5606:33:107;;;:::i;:::-;5173:21;;:::i;:::-;4803:22;;:::i;:::-;981:14958:106;1884:1:98;981:14958:106;;;;;;;1884:1:98;981:14958:106;;;;;;;9478:25:68;;;:::i;981:14958:106:-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;3612:132:107:-;819:34:73;837:15;819:34;:::i;:::-;3683:54:107;3703:17;981:14958:106;3684:36:107;981:14958:106;;;;;;;3684:36:107;;:::i;:::-;981:14958:106;;;3683:54:107;;:::i;:::-;981:14958:106;3612:132:107;:::o;3313:244::-;3418:17;981:14958:106;;;;;;;;;;;;;;3406:29:107;3402:85;;3503:47;3504:29;;;;:::i;3402:85::-;981:14958:106;;-1:-1:-1;;;3458:18:107;;;;;3361:103:30;;;;:::i;:::-;981:14958:106;;-1:-1:-1;;;;;981:14958:106;;;6521:23;;6517:79;;6650:11;;6646:70;;981:14958;6742:10;;;;;;-1:-1:-1;981:14958:106;;6887:49;;981:14958;;;;6864:6;;981:14958;;6821:18;;981:14958;;-1:-1:-1;;;;;981:14958:106;;;6821:18;6864:6;:::i;:::-;6887:49;981:14958;;6898:10;;;;6887:49;;;:::i;:::-;;;;3426:1:30;;1949;-1:-1:-1;;;;;;;;;;;981:14958:106;3860:283:30;6754:3:106;6790:9;6773:27;981:14958;6790:9;6783:17;6790:9;;;;;:::i;:::-;981:14958;6783:17;:::i;6773:27::-;6754:3;981:14958;6731:9;;6646:70;981:14958;;-1:-1:-1;;;6684:21:106;;;;;981:14958;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;981:14958:106;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;3405:215:24:-;-1:-1:-1;;;;;981:14958:106;;;;3489:22:24;;3485:91;;-1:-1:-1;;;;;;;;;;;981:14958:106;;-1:-1:-1;;;;;;981:14958:106;;;;;;;;3975:40:24;-1:-1:-1;;3975:40:24;3405:215::o;3485:91::-;981:14958:106;;-1:-1:-1;;;3534:31:24;;3509:1;3534:31;;;981:14958:106;;;3534:31:24;2731:227:106;;2871:34;2731:227;981:14958;-1:-1:-1;981:14958:106;2871:18;981:14958;;;-1:-1:-1;981:14958:106;;;;;;;;;;;;;;;;;2871:34;981:14958;;-1:-1:-1;981:14958:106;2907:11;981:14958;;;-1:-1:-1;981:14958:106;;2927:16;981:14958;;;-1:-1:-1;981:14958:106;;;1884:1:98;981:14958:106;;;;;;;1884:1:98;981:14958:106;;;;;;;9478:25:68;;;:::i;3470:384:30:-;-1:-1:-1;;;;;;;;;;;1991:1:30;981:14958:106;;3670:20:30;3666:88;;1991:1;981:14958:106;;3470:384:30:o;3666:88::-;981:14958:106;;-1:-1:-1;;;3713:30:30;;;;;11948:968:106;12135:10;981:14958;;;;5606:15:107;981:14958:106;;;;;;11948:968;;;819:34:73;837:15;819:34;:::i;:::-;12135:10:106;981:14958;;;;5606:15:107;981:14958:106;;;;;5606:33:107;;;:::i;:::-;981:14958:106;;;;;;;;;12119:93;12835:74;12119:93;;;12660:30;12119:93;;:::i;:::-;837:15:73;;12222:67:106;819:34:73;837:15;819:34;:::i;:::-;12259:29:106;4803:22:107;;;:::i;12222:67:106:-;837:15:73;;12299:68:106;819:34:73;837:15;819:34;:::i;:::-;12335:31:106;5173:21:107;;;:::i;12299:68:106:-;12394:14;;12769:34;12394:14;12769:25;12394:18;:14;;:::i;:::-;:18;:::i;:::-;12726:33;12445:18;;981:14958;;7528:11;981:14958;;;;;;;12445:18;981:14958;12502:23;;981:14958;;12502:16;981:14958;;;;;;;12502:23;981:14958;390:70:98;;;;;:::i;:::-;12660:30:106;;;;;;:::i;:::-;12639:18;;981:14958;;7528:11;981:14958;;;;;;;12639:18;981:14958;12726:33;:::i;:::-;12700:23;;981:14958;;12502:16;981:14958;;;;;;;12700:23;981:14958;;;12769:18;981:14958;;;;;;;12769:25;981:14958;;;;;;;;;;;;;;;;12769:34;:50;981:14958;;;12769:50;:::i;:::-;981:14958;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;981:14958:106;;;;12135:10;;981:14958;;12835:74;11948:968::o;14296:213:69:-;981:14958:106;14374:24:69;;;;14370:103;;981:14958:106;14296:213:69;:::o;14370:103::-;981:14958:106;;;;14421:41:69;;;;;;14452:2;14421:41;;;981:14958:106;;;;;14421:41:69;1809:204:82;981:14958:106;1809:204:82;981:14958:106;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:97:-;;981:14958:106;;7686:17:97;7682:83;;981:14958:106;7789:27:97;981:14958:106;7789:27:97;981:14958:106;;7789:27:97;;;;;;:::i;:::-;7860:14;;;:::i;:::-;981:14958:106;;;;;;;;;;;;;;;;7888:22:97;;;7884:77;;7975:21;-1:-1:-1;7975:84:97;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;7789:27;8082:17;;;981:14958:106;8075:24:97;:::o;7975:84::-;981:14958:106;;;8009:16:97;4622:13:107;981:14958:106;8009:16:97;:::i;:::-;981:14958:106;;;8001:24:97;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:23::-;981:14958:106;;;;8029:29:97;;8001:57;;;;7884:77;7933:17;;;7789:27;7933:17;;;981:14958:106;7926:24:97;:::o;7682:83::-;7726:28;;;;:::i;7558:604::-;;981:14958:106;;7686:17:97;7682:83;;981:14958:106;7789:27:97;981:14958:106;7789:27:97;981:14958:106;;7789:27:97;;;;;;:::i;:::-;7860:14;;;:::i;:::-;981:14958:106;;;;;;;;;;;;;;;;7888:22:97;;;7884:77;;7975:21;-1:-1:-1;7975:84:97;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7975:84::-;981:14958:106;;;8009:16:97;4994:12:107;981:14958:106;8009:16:97;:::i;:::-;981:14958:106;;;8001:24:97;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:29::-;;8001:57;;;;7682:83;7726:28;;;;:::i;7558:604::-;;981:14958:106;;7686:17:97;7682:83;;981:14958:106;7789:27:97;981:14958:106;7789:27:97;981:14958:106;;7789:27:97;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;981:14958:106;;;;;;;;;;;;;;;;7888:22:97;;;7884:77;;7975:21;-1:-1:-1;7975:84:97;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;981:14958:106;8075:24:97;:::o;7975:84::-;981:14958:106;;;8009:16:97;981:14958:106;;8009:16:97;:::i;:::-;981:14958:106;;;8001:24:97;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:29::-;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;981:14958:106;7926:24:97;:::o;7682:83::-;7726:28;;;;:::i;4148:103:23:-;966:10:28;-1:-1:-1;981:14958:106;;;;;;;;;675:39:107;;981:14958:106;;3901:31:23;981:14958:106;;4468:23:23;4464:108;;4148:103;:::o;:::-;966:10:28;-1:-1:-1;981:14958:106;;;;;;;;;966:38:107;;981:14958:106;;3901:31:23;981:14958:106;4148:103:23;966:10:28;-1:-1:-1;981:14958:106;;;;;;;;;821:37:107;;981:14958:106;;3901:31:23;981:14958:106;4148:103:23;-1:-1:-1;981:14958:106;;;-1:-1:-1;;;;;;;;;;;981:14958:106;;;;;;;;966:10:28;981:14958:106;;;;;;;;;3901:31:23;981:14958:106;7270:387:23;-1:-1:-1;;;;;981:14958:106;;1398:1:82;981:14958:106;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;981:14958:106;;;;1398:1:82;981:14958:106;;;;;;;;;;;-1:-1:-1;;;;;981:14958:106;;;;;;;;;;-1:-1:-1;;981:14958:106;7509:4:23;981:14958:106;;;966:10:28;;-1:-1:-1;;;;;981:14958:106;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;1398:1:82;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;981:14958:106;;-1:-1:-1;981:14958:106;;;;;;;;;675:39:107;;-1:-1:-1;;;;;;;;;;;2887:71:23;981:14958:106;;3901:31:23;981:14958:106;;;;-1:-1:-1;981:14958:106;;;;;;;;;;;-1:-1:-1;;;;;981:14958:106;;;;;;;;;;-1:-1:-1;;981:14958:106;7509:4:23;981:14958:106;;;966:10:28;;-1:-1:-1;;;;;981:14958:106;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;981:14958:106;;-1:-1:-1;981:14958:106;;;;;;;;;821:37:107;;-1:-1:-1;;;;;;;;;;;2887:71:23;981:14958:106;;3901:31:23;981:14958:106;7270:387:23;-1:-1:-1;;;;;981:14958:106;;-1:-1:-1;981:14958:106;;;;;;;;;966:38:107;;-1:-1:-1;;;;;;;;;;;2887:71:23;981:14958:106;;3901:31:23;981:14958:106;7270:387:23;-1:-1:-1;;;;;981:14958:106;;-1:-1:-1;981:14958:106;;;;;;;;;1109:35:107;;-1:-1:-1;;;;;;;;;;;2887:71:23;981:14958:106;;3901:31:23;981:14958:106;7270:387:23;-1:-1:-1;981:14958:106;;;-1:-1:-1;;;;;;;;;;;981:14958:106;;;;;;;;-1:-1:-1;;;;;981:14958:106;;;;;;;;;;;;3901:31:23;981:14958:106;7892:388:23;-1:-1:-1;981:14958:106;;;-1:-1:-1;;;;;;;;;;;981:14958:106;;;;;;;;-1:-1:-1;;;;;981:14958:106;;;;;;;;;;;;;;;;-1:-1:-1;981:14958:106;;;;;;;;;;;-1:-1:-1;;;;;981:14958:106;;;;;;;;;;-1:-1:-1;;981:14958:106;;;966:10:28;;-1:-1:-1;;;;;981:14958:106;;8155:40:23;-1:-1:-1;;8155:40:23;981:14958:106;8209:11:23;:::o;1670:188:55:-;981:14958:106;;-1:-1:-1;;;1797:53:55;;;;-1:-1:-1;;;;;981:14958:106;;;1797:53:55;;;981:14958:106;;;;;;;;;;;;;;;;;1797:53:55;;;981:14958:106;;;;;;;-1:-1:-1;;;;;981:14958:106;;;;;1797:53:55;981:14958:106;;;1797:53:55;:::i;981:14958:106:-;7178:12:97;981:14958:106;;;;;;7178:12:97;-1:-1:-1;981:14958:106;-1:-1:-1;;;;;;;;;;;981:14958:106;;-1:-1:-1;981:14958:106;:::o;:::-;7178:12:97;981:14958:106;;;;;;7178:12:97;-1:-1:-1;981:14958:106;-1:-1:-1;;;;;;;;;;;981:14958:106;;-1:-1:-1;981:14958:106;:::o;:::-;;;;;;;;-1:-1:-1;981:14958:106;;-1:-1:-1;981:14958:106;;;-1:-1:-1;981:14958:106;:::o;:::-;6360:12:97;981:14958:106;-1:-1:-1;;;981:14958:106;;;;;;;;;6360:12:97;981:14958:106;;;;;;6360:12:97;-1:-1:-1;981:14958:106;-1:-1:-1;;;;;;;;;;;981:14958:106;;:::o;:::-;6360:12:97;981:14958:106;-1:-1:-1;;;981:14958:106;;;;;;;;;6360:12:97;981:14958:106;;;;;;6360:12:97;-1:-1:-1;981:14958:106;-1:-1:-1;;;;;;;;;;;981:14958:106;;:::o;:::-;;;;;-1:-1:-1;;;981:14958:106;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6246:584:97;;;;6360:12;981:14958:106;;;6360:24:97;;6356:75;;6246:584;6474:30;;;:::i;:::-;981:14958:106;;;;;;6578:12:97;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:97;;;-1:-1:-1;;;981:14958:106;;;;;;;;;-1:-1:-1;981:14958:106;;;-1:-1:-1;981:14958:106;;;;;;6798:25:97;981:14958:106;6246:584:97:o;6600:188::-;8310:38:71;;-1:-1:-1;;;;;981:14958:106;;-1:-1:-1;8310:38:71;:::i;:::-;6753:24:97;;;;;:::i;:::-;6798:25;6246:584;:::o;6604:24::-;981:14958:106;;;;;;6614:14:97;;-1:-1:-1;6604:24:97;;;6356:75;-1:-1:-1;;;981:14958:106;;;;;;;;;;;;;;;;-1:-1:-1;981:14958:106;;;;-1:-1:-1;;;;;;;;;;;981:14958:106;;6356:75:97;;;6246:584;;;;6360:12;981:14958:106;;;6360:24:97;;6356:75;;6246:584;6474:30;;;:::i;:::-;981:14958:106;;;;;;6578:12:97;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:97;;;-1:-1:-1;;;981:14958:106;;;;;;;;;-1:-1:-1;981:14958:106;;;-1:-1:-1;981:14958:106;;;;;;6798:25:97;981:14958:106;6246:584:97:o;6600:188::-;8310:38:71;;-1:-1:-1;;;;;981:14958:106;;-1:-1:-1;8310:38:71;:::i;:::-;6753:24:97;;;;;:::i;6604:::-;981:14958:106;;;;;;6614:14:97;;-1:-1:-1;6604:24:97;;;6356:75;-1:-1:-1;;;981:14958:106;;;;;;;;;;;;;;;;-1:-1:-1;981:14958:106;;;;-1:-1:-1;;;;;;;;;;;981:14958:106;;6356:75:97;;;6246:584;;;;;6360:12;;;981:14958:106;;;6360:24:97;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;981:14958:106;;;;;;6578:12:97;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:97;;;-1:-1:-1;;;;;981:14958:106;;;;;;;6644:21:97;;;:29;:21;;:::i;6600:188::-;6753:24;;981:14958:106;;8310:38:71;;-1:-1:-1;;;;;981:14958:106;;;;;8310:38:71;:::i;:::-;6753:24:97;;;:::i;6604:::-;981:14958:106;;;;;;6614:14:97;;-1:-1:-1;6604:24:97;;;6356:75;-1:-1:-1;;;981:14958:106;;;;;;6360:12:97;981:14958:106;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:97;;;981:14958:106;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;:::o;2658:162:24:-;-1:-1:-1;;;;;;;;;;;981:14958:106;-1:-1:-1;;;;;981:14958:106;966:10:28;2717:23:24;2713:101;;2658:162::o;2713:101::-;981:14958:106;;-1:-1:-1;;;2763:40:24;;966:10:28;2763:40:24;;;981:14958:106;;;2763:40:24;981:14958:106;;;;;;;:::o;4996:4226:68:-;;981:14958:106;;;;-1:-1:-1;;981:14958:106;4996:4226:68;5584:131;;;;;;;;;;;;5796:10;;5792:368;;6270:20;;;;6266:143;;6695:300;;;;940:4:59;-1:-1:-1;940:4:59;7214:31:68;;7259:375;;;8094:1;981:14958:106;;8075:1:68;981:14958:106;8074:21:68;981:14958:106;;;940:4:59;;981:14958:106;;;;940:4:59;;981:14958:106;;;;940:4:59;;981:14958:106;;;;940:4:59;;981:14958:106;;;;940:4:59;;981:14958:106;;;;940:4:59;;981:14958:106;7259:375:68;;;;-1:-1:-1;7259:375:68;;;6695:300;;;;;;981:14958:106;6695:300:68;;7259:375;7700:21;981:14958:106;4996:4226:68;:::o;6266:143::-;6330:16;;3066:5;981:14958:106;940:4:59;3060:42:68;6322:71;:::i;5792:368::-;6126:19;;;;;;;:::i;1271:160:55:-;981:14958:106;;-1:-1:-1;;;1380:43:55;;;;-1:-1:-1;;;;;981:14958:106;;;1380:43:55;;;981:14958:106;;;;;;;;;1380:43:55;;;981:14958:106;;;;-1:-1:-1;;;;;981:14958:106;;;;;;;;1380:43:55;981:14958:106;;;1380:43:55;:::i;12922:460:106:-;;13024:14;;:::i;:::-;13015:23;;;13011:75;;-1:-1:-1;981:14958:106;;;13100:20;981:14958;;;;;;;;13128:10;981:14958;;;;;;;;;;13096:93;;13208:32;13128:10;13208:32;;:::i;:::-;13255:11;;;13251:68;;-1:-1:-1;981:14958:106;;;13100:20;981:14958;;;;;;;;13128:10;981:14958;;;;;;;;;-1:-1:-1;;981:14958:106;13371:4;981:14958;;;12922:460::o;13251:68::-;981:14958;;-1:-1:-1;;;13289:19:106;;;;;13096:93;981:14958;;-1:-1:-1;;;13162:16:106;;;;;13011:75;981:14958;;-1:-1:-1;;;13061:14:106;;;;;10580:184:97;5173:12:107;981:14958:106;10446:8:71;;;:63;-1:-1:-1;10446:63:71;-1:-1:-1;;;;;981:14958:106;;10726:7:97;981:14958:106;;10736:12:97;981:14958:106;;;;;;10736:12:97;-1:-1:-1;981:14958:106;-1:-1:-1;;;;;;;;;;;981:14958:106;;10580:184:97;:::o;10726:31::-;;-1:-1:-1;10580:184:97;:::o;10446:63:71:-;981:14958:106;;;;;;;;5173:12:107;-1:-1:-1;14439:109:71;;;981:14958:106;;;10446:63:71;;10580:184:97;4803:13:107;981:14958:106;10446:8:71;;;:63;-1:-1:-1;10446:63:71;-1:-1:-1;;;;;981:14958:106;;10726:7:97;981:14958:106;;10736:12:97;981:14958:106;;;;;;10736:12:97;-1:-1:-1;981:14958:106;-1:-1:-1;;;;;;;;;;;981:14958:106;;10580:184:97;:::o;10446:63:71:-;981:14958:106;;;;;;;;4803:13:107;-1:-1:-1;14439:109:71;;;981:14958:106;;;10446:63:71;;10580:184:97;981:14958:106;;10446:8:71;;;:63;-1:-1:-1;10446:63:71;-1:-1:-1;;;;;981:14958:106;;10726:7:97;981:14958:106;;10736:12:97;:17;:12;;:17;:::i;:::-;981:14958:106;;;;;;10580:184:97;:::o;10446:63:71:-;981:14958:106;;;;;;;;;;14439:109:71;-1:-1:-1;14439:109:71;;-1:-1:-1;14439:109:71;;;981:14958:106;;;10446:63:71;;1662:280:98;;;1884:1;981:14958:106;;;;;;;1884:1:98;981:14958:106;;;;;;;9478:25:68;;;:::i;6999:207:97:-;4622:13:107;981:14958:106;9737:15:71;-1:-1:-1;9762:18:71;9795:7;9801:1;9795:7;;9791:234;;6999:207:97;10049:53:71;;;;:::i;:::-;10120:8;;;:63;-1:-1:-1;10120:63:71;-1:-1:-1;;;;;981:14958:106;;7168:7:97;981:14958:106;;7178:17:97;981:14958:106;7178:17:97;;:::i;10120:63:71:-;10135:41;10168:7;10135:48;10168:7;;:::i;:::-;4622:13:107;14439:109:71;;-1:-1:-1;;;;;;;;;;;14439:109:71;14289:265;;10135:41;981:14958:106;;;;;10135:48:71;10120:63;;9791:234;9838:14;;;;;:::i;:::-;981:14958:106;;;;;;;10049:53:71;14439:109;4622:13:107;-1:-1:-1;14439:109:71;981:14958:106;14439:109:71;;-1:-1:-1;;;;;;;;;;;14439:109:71;981:14958:106;;;;;9870:48:71;9866:149;981:14958:106;;;9938:10:71;9866:149;9791:234;;9866:149;9993:7;;;;;;:::i;:::-;9866:149;9791:234;;6999:207:97;4994:12:107;981:14958:106;9737:15:71;-1:-1:-1;9762:18:71;9795:7;9801:1;9795:7;;9791:234;;6999:207:97;10049:53:71;;;;:::i;:::-;10120:8;;;:63;-1:-1:-1;10120:63:71;-1:-1:-1;;;;;981:14958:106;;7168:7:97;981:14958:106;;7178:17:97;981:14958:106;7178:17:97;;:::i;10120:63:71:-;10135:41;10168:7;10135:48;10168:7;;:::i;:::-;4994:12:107;14439:109:71;;-1:-1:-1;;;;;;;;;;;14439:109:71;14289:265;;10135:48;10120:63;;9791:234;9838:14;;;;;:::i;:::-;981:14958:106;;;;;;;10049:53:71;14439:109;4994:12:107;-1:-1:-1;14439:109:71;981:14958:106;14439:109:71;;-1:-1:-1;;;;;;;;;;;14439:109:71;981:14958:106;;;;;9870:48:71;9866:149;981:14958:106;;;9938:10:71;9866:149;9791:234;;9866:149;9993:7;;;;;;:::i;:::-;9866:149;9791:234;;6999:207:97;;981:14958:106;;9737:15:71;-1:-1:-1;9762:18:71;9795:7;9801:1;9795:7;;9791:234;;6999:207:97;10049:53:71;;;;;:::i;:::-;10120:8;;;:63;-1:-1:-1;10120:63:71;;-1:-1:-1;;;;;981:14958:106;;7168:7:97;981:14958:106;;;7178:12:97;;:17;:12;;:17;:::i;10120:63:71:-;10135:41;10168:7;10135:48;10168:7;;:::i;:::-;10135:41;14439:109;;;;;;14289:265;;10135:48;10120:63;;;9791:234;9838:14;;;;;:::i;:::-;981:14958:106;;;;;;;10049:53:71;14439:109;;-1:-1:-1;14439:109:71;981:14958:106;14439:109:71;;;-1:-1:-1;14439:109:71;;981:14958:106;;;;;9870:48:71;9866:149;981:14958:106;;;9938:10:71;9866:149;9791:234;;9866:149;9993:7;;;;;;:::i;:::-;9866:149;9791:234;;981:14958:106;;;;;;;:::i;:::-;-1:-1:-1;981:14958:106;;;;;;;:::o;11486:272:97:-;981:14958:106;;:::i;:::-;;;;:::i;:::-;;4622:13:107;981:14958:106;;;;;;4622:13:107;-1:-1:-1;981:14958:106;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;981:14958:106;;;;;;;;;;;;;;;;;11718:12:97;981:14958:106;;;;;;11718:12:97;-1:-1:-1;981:14958:106;-1:-1:-1;;;;;;;;;;;981:14958:106;;;;;;;;:::i;:::-;;;;11672:79:97;;981:14958:106;11486:272:97;:::o;:::-;981:14958:106;;:::i;:::-;;;;:::i;:::-;;4994:12:107;981:14958:106;;;;;;4994:12:107;-1:-1:-1;981:14958:106;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;981:14958:106;;;;;;;;;;;;;;;;;11718:12:97;981:14958:106;;;;;;11718:12:97;-1:-1:-1;981:14958:106;-1:-1:-1;;;;;;;;;;;981:14958:106;;;;;;;;:::i;11486:272:97:-;;981:14958:106;11718:12:97;11452:22:71;11718:31:97;11486:272;981:14958:106;;:::i;:::-;;;;:::i;:::-;;11452:22:71;;:::i;:::-;981:14958:106;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;11718:12:97;:31;:::i;:::-;981:14958:106;;;;;;;;;:::i;:::-;;;;;;;11672:79:97;;981:14958:106;11486:272:97;:::o;7738:720:55:-;;-1:-1:-1;7875:421:55;7738:720;7875:421;;;;;;;;;;;;-1:-1:-1;7875:421:55;;8310:15;;-1:-1:-1;;;;;;981:14958:106;;8328:26:55;:31;8310:68;8306:146;;7738:720;:::o;8306:146::-;981:14958:106;;-1:-1:-1;;;8401:40:55;;-1:-1:-1;;;;;981:14958:106;;;8401:40:55;;;981:14958:106;;;8401:40:55;8310:68;8377:1;8362:16;;8310:68;;1258:280:98;;;981:14958:106;;;;;;;;;;;;;;;;9478:25:68;;;;;:::i;:::-;9552;;;;;;:29;;981:14958:106;;;;;;;1258:280:98;:::o;10695:389:71:-;5173:12:107;981:14958:106;10871:8:71;;;10895:20;10833:17;10895:20;10833:17;10895:20;10833:17;10895:20;:::o;10867:211::-;981:14958:106;;;;;;;;5173:12:107;10833:17:71;14439:109;;;981:14958:106;11014:1:71;;981:14958:106;;;;;;;11030:37:71:o;10695:389::-;4803:13:107;981:14958:106;10871:8:71;;;10895:20;10833:17;10895:20;10833:17;10895:20;10833:17;10895:20;:::o;10867:211::-;981:14958:106;;;;;;;;4803:13:107;10833:17:71;14439:109;;;981:14958:106;11014:1:71;;981:14958:106;;;;;;;11030:37:71:o;10695:389::-;981:14958:106;;10871:8:71;;;10895:20;;10833:17;10895:20;10833:17;10895:20;10833:17;10895:20;:::o;10867:211::-;981:14958:106;;;;;;;;;;10833:17:71;14439:109;;10833:17;14439:109;;;981:14958:106;11014:1:71;981:14958:106;;;;;;;11030:37:71;:::o;7084:141:26:-;981:14958:106;-1:-1:-1;;;;;;;;;;;981:14958:106;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;981:14958:106;;-1:-1:-1;;;7191:17:26;;;;;1776:194:59;1829:135;;;;;;;;981:14958:106;5173:12:107;981:14958:106;;-1:-1:-1;;;981:14958:106;;;;;;;;;5173:12:107;981:14958:106;;;;;;5173:12:107;-1:-1:-1;981:14958:106;;;;;;;;;;-1:-1:-1;;981:14958:106;;;;;;;-1:-1:-1;;;;;;;;;;;981:14958:106;;;;:::o;:::-;4803:13:107;981:14958:106;;-1:-1:-1;;;981:14958:106;;;;;;;;;4803:13:107;981:14958:106;;;;;;4803:13:107;-1:-1:-1;981:14958:106;;;;;;;;;;-1:-1:-1;;981:14958:106;;;;;;;-1:-1:-1;;;;;;;;;;;981:14958:106;;;;:::o;:::-;;;-1:-1:-1;;;981:14958:106;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;981:14958:106;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11657:922:71;5173:12:107;981:14958:106;11657:922:71;;;11864:7;;;;11936;11916:28;11936:7;;:::i;11916:28::-;981:14958:106;;;;;;;;;;;;12103:13:71;;;12099:89;;12251:14;;;;;12285:19;;;981:14958:106;;;;;;;;;;;;;;;;;12285:19:71;981:14958:106;;12423:25:71;;:::o;12247:163::-;981:14958:106;;12343:52:71;981:14958:106;12353:41:71;981:14958:106;;:::i;:::-;;;;;;;;12353:41:71;-1:-1:-1;;;;;981:14958:106;;12353:41:71;;;981:14958:106;12343:52:71;:::i;:::-;12247:163;;12099:89;981:14958:106;;-1:-1:-1;;;12143:30:71;;;;;11860:713;981:14958:106;12479:52:71;981:14958:106;12489:41:71;981:14958:106;;:::i;12489:41:71:-;-1:-1:-1;;;;;981:14958:106;;12489:41:71;;;981:14958:106;12343:52:71;:::i;12479:::-;11870:1;12545:17;;:::o;11657:922::-;4803:13:107;981:14958:106;11657:922:71;;;11864:7;;;;11936;11916:28;11936:7;;:::i;11916:28::-;981:14958:106;;;;;;;;;;;;12103:13:71;;;12099:89;;12251:14;;;;;12285:19;;;981:14958:106;;;;;;;;;;;;;;;;;12247:163:71;981:14958:106;;12343:52:71;981:14958:106;12353:41:71;981:14958:106;;:::i;12353:41:71:-;-1:-1:-1;;;;;981:14958:106;;12353:41:71;;;981:14958:106;12343:52:71;:::i;11860:713::-;981:14958:106;12479:52:71;981:14958:106;12489:41:71;981:14958:106;;:::i;12489:41:71:-;-1:-1:-1;;;;;981:14958:106;;12489:41:71;;;981:14958:106;12343:52:71;:::i;11657:922::-;981:14958:106;;11657:922:71;;;11864:7;;;;11936;11916:28;11936:7;;:::i;:::-;11916:28;14439:109;;;;;;14289:265;;11916:28;981:14958:106;;;;;;;;;;;;12103:13:71;;;12099:89;;12251:14;;;;;12285:19;;;;981:14958:106;;;;;;;;;;;;;;;;;12247:163:71;981:14958:106;;;12343:52:71;981:14958:106;12353:41:71;981:14958:106;;:::i;:::-;;;;;;;;12353:41:71;-1:-1:-1;;;;;981:14958:106;;12353:41:71;;;981:14958:106;12343:52:71;:::i;11860:713::-;981:14958:106;;12479:52:71;981:14958:106;12489:41:71;981:14958:106;;:::i;12489:41:71:-;-1:-1:-1;;;;;981:14958:106;;12489:41:71;;;981:14958:106;12343:52:71;:::i;18080:5181:68:-;18246:1;18241:6;;;18237:53;;18246:1;19217:14;-1:-1:-1;;;19278:16:68;;;19274:92;;18080:5181;22827:18;22717;22607;22498;22387;22278;23216:28;19383:15;19898:6;19383:15;-1:-1:-1;;;23237:6:68;19383:15;;;19379:90;;18080:5181;19493:7;19486:15;;;19482:90;;18080:5181;19596:7;19589:15;;;19585:89;;18080:5181;19698:6;19691:14;;;19687:87;;18080:5181;19798:6;19791:14;;;19787:87;;18080:5181;19891:14;;19887:61;;18080:5181;20374:1;981:14958:106;18246:1:68;981:14958:106;22284:6:68;;;;:::i;:::-;981:14958:106;;;;;22278:18:68;22393:6;;;;:::i;22387:18::-;22504:6;;;;:::i;22498:18::-;22613:6;;;;:::i;22607:18::-;22723:6;;;;:::i;22717:18::-;22833:6;;;;:::i;22827:18::-;23237:6;;;:::i;:::-;23232:11;;;981:14958:106;23216:28:68;940:4:59;;18080:5181:68;:::o;19887:61::-;18246:1;981:14958:106;19887:61:68;;19787:87;981:14958:106;;;;;19787:87:68;;;19687;981:14958:106;;;;;19687:87:68;;;19585:89;981:14958:106;;;;;19585:89:68;;;19482:90;981:14958:106;;;;;19482:90:68;;;19379;981:14958:106;;;;;19379:90:68;;;19274:92;-1:-1:-1;;;;981:14958:106;-1:-1:-1;981:14958:106;;;;19274:92:68;;12929:433:71;;13112:10;;;;;;13344:11;;12929:433;:::o;13105:230::-;3721:5:68;;;;;981:14958:106;;3731:5:68;;;981:14958:106;;;;;;;;;4622:13:107;-1:-1:-1;14439:109:71;981:14958:106;14439:109:71;;-1:-1:-1;;;;;;;;;;;14439:109:71;981:14958:106;;;;;-1:-1:-1;13189:136:71;981:14958:106;;;13248:10:71;;13189:136;;13105:230;;;13189:136;981:14958:106;;;;;;;;;;;13189:136:71;;;12929:433;;13112:10;;;;;;13344:11;;12929:433;:::o;13105:230::-;3721:5:68;;;;;981:14958:106;;3731:5:68;;;981:14958:106;;;;;;;;;4994:12:107;-1:-1:-1;14439:109:71;981:14958:106;14439:109:71;;-1:-1:-1;;;;;;;;;;;14439:109:71;981:14958:106;;;;;-1:-1:-1;13189:136:71;981:14958:106;;;13248:10:71;;13189:136;;13105:230;;;13189:136;981:14958:106;;;;;;;;;;;13189:136:71;;;12929:433;;;13112:10;;;;;;13344:11;;;12929:433;:::o;13105:230::-;3721:5:68;;;;;;981:14958:106;;3731:5:68;;;981:14958:106;;;;;;;;;14439:109:71;-1:-1:-1;14439:109:71;981:14958:106;14439:109:71;;;-1:-1:-1;14439:109:71;;981:14958:106;;;;;-1:-1:-1;13189:136:71;981:14958:106;;;13248:10:71;;13189:136;;13105:230;;;;13189:136;981:14958:106;;;;;;;;;;;13189:136:71;;","linkReferences":{},"immutableReferences":{"60067":[{"start":1905,"length":32},{"start":2466,"length":32}],"70707":[{"start":4511,"length":32},{"start":5842,"length":32}],"70710":[{"start":6203,"length":32},{"start":7460,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","DELEGATOR_FACTORY()":"6da3e06d","DEPOSITOR_WHITELIST_ROLE()":"1b66c9e1","DEPOSIT_LIMIT_SET_ROLE()":"a21a1df9","DEPOSIT_WHITELIST_SET_ROLE()":"db388715","FACTORY()":"2dd31000","IS_DEPOSIT_LIMIT_SET_ROLE()":"1415519b","SLASHER_FACTORY()":"87df0788","activeBalanceOf(address)":"59f769a9","activeBalanceOfAt(address,uint48,bytes)":"efb559d6","activeShares()":"bfefcd7b","activeSharesAt(uint48,bytes)":"50f22068","activeSharesOf(address)":"9d66201b","activeSharesOfAt(address,uint48,bytes)":"2d73c69c","activeStake()":"bd49c35f","activeStakeAt(uint48,bytes)":"810da75d","burner()":"27810b6e","claim(address,uint256)":"aad3ec96","claimBatch(address,uint256[])":"7c04c80a","collateral()":"d8dfeb45","currentEpoch()":"76671808","currentEpochStart()":"61a8c8c4","delegator()":"ce9b7930","deposit(address,uint256)":"47e7ef24","depositLimit()":"ecf70858","depositWhitelist()":"48d3b775","epochAt(uint48)":"7953b33b","epochDuration()":"4ff0876a","epochDurationInit()":"46361671","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(uint64,address,bytes)":"57ec83cc","isDelegatorInitialized()":"50861adc","isDepositLimit()":"a1b12202","isDepositorWhitelisted(address)":"794b15b7","isInitialized()":"392e53cd","isSlasherInitialized()":"6ec1e3f8","isWithdrawalsClaimed(uint256,address)":"a5d03223","migrate(uint64,bytes)":"2abe3048","nextEpochStart()":"73790ab3","onSlash(uint256,uint48)":"7278e31c","owner()":"8da5cb5b","previousEpochStart()":"281f5752","redeem(address,uint256)":"1e9a6950","renounceOwnership()":"715018a6","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setDelegator(address)":"83cd9cc3","setDepositLimit(uint256)":"bdc8144b","setDepositWhitelist(bool)":"4105a7dd","setDepositorWhitelistStatus(address,bool)":"a2861466","setIsDepositLimit(bool)":"5346e34f","setSlasher(address)":"aabc2496","slashableBalanceOf(address)":"c31e8dd7","slasher()":"b1344271","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","totalStake()":"8b0e9f3f","transferOwnership(address)":"f2fde38b","version()":"54fd4d50","withdraw(address,uint256)":"f3fef3a3","withdrawalShares(uint256)":"afba70ad","withdrawalSharesOf(uint256,address)":"a3b54172","withdrawals(uint256)":"5cc07076","withdrawalsOf(uint256,address)":"f5e7ee0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slasherFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyClaimed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DepositLimitReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientDeposit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientRedemption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientWithdrawal\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidClaimer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLengthEpochs\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOnBehalfOf\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRecipient\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoles\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoPreviousEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotFactory\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhitelistedDepositor\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchRedeem\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchWithdraw\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Claim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ClaimBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"name\":\"OnSlash\",\"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\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"SetDelegator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"SetDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositWhitelist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositorWhitelistStatus\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetIsDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"}],\"name\":\"SetSlasher\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DELEGATOR_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSITOR_WHITELIST_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_WHITELIST_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"activeBalanceOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"burner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"}],\"name\":\"claimBatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"depositedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositWhitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"epochAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDurationInit\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"initialVersion\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDelegatorInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDepositLimit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isDepositorWhitelisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSlasherInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isWithdrawalsClaimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"onSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"previousEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"withdrawnAssets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator_\",\"type\":\"address\"}],\"name\":\"setDelegator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"setDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositorWhitelistStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setIsDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher_\",\"type\":\"address\"}],\"name\":\"setSlasher\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"slashableBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawalShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"Claim(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epoch\":\"epoch the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"ClaimBatch(address,address,uint256[],uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epochs\":\"epochs the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"Deposit(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral deposited\",\"depositor\":\"account that made the deposit\",\"onBehalfOf\":\"account the deposit was made on behalf of\",\"shares\":\"amount of the active shares minted\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(uint256,uint48,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to slash\",\"captureTimestamp\":\"time point when the stake was captured\",\"slashedAmount\":\"real amount of the collateral slashed\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetDelegator(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"delegator\":\"vault's delegator to delegate the stake to networks and operators\"}},\"SetDepositLimit(uint256)\":{\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"SetDepositWhitelist(bool)\":{\"params\":{\"status\":\"if enabled deposit whitelist\"}},\"SetDepositorWhitelistStatus(address,bool)\":{\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisted the account\"}},\"SetIsDepositLimit(bool)\":{\"params\":{\"status\":\"if enabled deposit limit\"}},\"SetSlasher(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"slasher\":\"vault's slasher to provide a slashing mechanism to networks\"}},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral withdrawn\",\"burnedShares\":\"amount of the active shares burned\",\"claimer\":\"account that needs to claim the withdrawal\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawer\":\"account that made the withdrawal\"}}},\"kind\":\"dev\",\"methods\":{\"activeBalanceOf(address)\":{\"params\":{\"account\":\"account to get the active balance for\"},\"returns\":{\"_0\":\"active balance for the account\"}},\"activeBalanceOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the active balance for\",\"hints\":\"hints for checkpoints' indexes\",\"timestamp\":\"time point to get the active balance for the account at\"},\"returns\":{\"_0\":\"active balance for the account at the timestamp\"}},\"activeShares()\":{\"returns\":{\"_0\":\"total number of active shares\"}},\"activeSharesAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total number of active shares at\"},\"returns\":{\"_0\":\"total number of active shares at the timestamp\"}},\"activeSharesOf(address)\":{\"params\":{\"account\":\"account to get the number of active shares for\"},\"returns\":{\"_0\":\"number of active shares for the account\"}},\"activeSharesOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the number of active shares for\",\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the number of active shares for the account at\"},\"returns\":{\"_0\":\"number of active shares for the account at the timestamp\"}},\"activeStake()\":{\"returns\":{\"_0\":\"total amount of active stake\"}},\"activeStakeAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total active stake at\"},\"returns\":{\"_0\":\"total amount of active stake at the timestamp\"}},\"claim(address,uint256)\":{\"params\":{\"epoch\":\"epoch to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"claimBatch(address,uint256[])\":{\"params\":{\"epochs\":\"epochs to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"currentEpoch()\":{\"returns\":{\"_0\":\"current epoch\"}},\"currentEpochStart()\":{\"returns\":{\"_0\":\"start of the current epoch\"}},\"deposit(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to deposit\",\"onBehalfOf\":\"account the deposit is made on behalf of\"},\"returns\":{\"depositedAmount\":\"real amount of the collateral deposited\",\"mintedShares\":\"amount of the active shares minted\"}},\"epochAt(uint48)\":{\"details\":\"Reverts if the timestamp is less than the start of the epoch 0.\",\"params\":{\"timestamp\":\"time point to get the epoch at\"},\"returns\":{\"_0\":\"epoch at the timestamp\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(uint64,address,bytes)\":{\"params\":{\"data\":\"some data to use\",\"initialVersion\":\"initial version of the entity\",\"owner\":\"initial owner of the entity\"}},\"isInitialized()\":{\"returns\":{\"_0\":\"if the vault is fully initialized\"}},\"migrate(uint64,bytes)\":{\"params\":{\"data\":\"some data to use\",\"newVersion\":\"new version of the entity\"}},\"nextEpochStart()\":{\"returns\":{\"_0\":\"start of the next epoch\"}},\"onSlash(uint256,uint48)\":{\"details\":\"Only the slasher can call this function.\",\"params\":{\"amount\":\"amount to slash\",\"captureTimestamp\":\"time point when the stake was captured\"},\"returns\":{\"slashedAmount\":\"real amount of the collateral slashed\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"previousEpochStart()\":{\"details\":\"Reverts if the current epoch is 0.\",\"returns\":{\"_0\":\"start of the previous epoch\"}},\"redeem(address,uint256)\":{\"params\":{\"claimer\":\"account that needs to claim the withdrawal\",\"shares\":\"amount of the active shares to redeem\"},\"returns\":{\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawnAssets\":\"amount of the collateral withdrawn\"}},\"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.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setDepositLimit(uint256)\":{\"details\":\"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"setDepositWhitelist(bool)\":{\"details\":\"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit whitelist\"}},\"setDepositorWhitelistStatus(address,bool)\":{\"details\":\"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.\",\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisting the account\"}},\"setIsDepositLimit(bool)\":{\"details\":\"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit limit\"}},\"slashableBalanceOf(address)\":{\"params\":{\"account\":\"account to get the slashable collateral for\"},\"returns\":{\"_0\":\"total amount of the account's slashable collateral\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"totalStake()\":{\"returns\":{\"_0\":\"total amount of the slashable collateral\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"version()\":{\"details\":\"Starts from 1.\",\"returns\":{\"_0\":\"version of the entity\"}},\"withdraw(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to withdraw\",\"claimer\":\"account that needs to claim the withdrawal\"},\"returns\":{\"burnedShares\":\"amount of the active shares burned\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\"}},\"withdrawalsOf(uint256,address)\":{\"params\":{\"account\":\"account to get the withdrawals for\",\"epoch\":\"epoch to get the withdrawals for the account at\"},\"returns\":{\"_0\":\"withdrawals for the account at the epoch\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Claim(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a claim is made.\"},\"ClaimBatch(address,address,uint256[],uint256)\":{\"notice\":\"Emitted when a batch claim is made.\"},\"Deposit(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a deposit is made.\"},\"OnSlash(uint256,uint48,uint256)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetDelegator(address)\":{\"notice\":\"Emitted when a delegator is set.\"},\"SetDepositLimit(uint256)\":{\"notice\":\"Emitted when a deposit limit is set.\"},\"SetDepositWhitelist(bool)\":{\"notice\":\"Emitted when a deposit whitelist status is enabled/disabled.\"},\"SetDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Emitted when a depositor whitelist status is set.\"},\"SetIsDepositLimit(bool)\":{\"notice\":\"Emitted when a deposit limit status is enabled/disabled.\"},\"SetSlasher(address)\":{\"notice\":\"Emitted when a slasher is set.\"},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"notice\":\"Emitted when a withdrawal is made.\"}},\"kind\":\"user\",\"methods\":{\"DELEGATOR_FACTORY()\":{\"notice\":\"Get the delegator factory's address.\"},\"DEPOSITOR_WHITELIST_ROLE()\":{\"notice\":\"Get a depositor whitelist status setter's role.\"},\"DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit setter's role.\"},\"DEPOSIT_WHITELIST_SET_ROLE()\":{\"notice\":\"Get a deposit whitelist enabler/disabler's role.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"IS_DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit enabler/disabler's role.\"},\"SLASHER_FACTORY()\":{\"notice\":\"Get the slasher factory's address.\"},\"activeBalanceOf(address)\":{\"notice\":\"Get an active balance for a particular account.\"},\"activeBalanceOfAt(address,uint48,bytes)\":{\"notice\":\"Get an active balance for a particular account at a given timestamp using hints.\"},\"activeShares()\":{\"notice\":\"Get a total number of active shares in the vault.\"},\"activeSharesAt(uint48,bytes)\":{\"notice\":\"Get a total number of active shares in the vault at a given timestamp using a hint.\"},\"activeSharesOf(address)\":{\"notice\":\"Get a number of active shares for a particular account.\"},\"activeSharesOfAt(address,uint48,bytes)\":{\"notice\":\"Get a total number of active shares for a particular account at a given timestamp using a hint.\"},\"activeStake()\":{\"notice\":\"Get a total amount of active stake in the vault.\"},\"activeStakeAt(uint48,bytes)\":{\"notice\":\"Get a total amount of active stake in the vault at a given timestamp using a hint.\"},\"burner()\":{\"notice\":\"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract).\"},\"claim(address,uint256)\":{\"notice\":\"Claim collateral from the vault.\"},\"claimBatch(address,uint256[])\":{\"notice\":\"Claim collateral from the vault for multiple epochs.\"},\"collateral()\":{\"notice\":\"Get a vault collateral.\"},\"currentEpoch()\":{\"notice\":\"Get a current vault epoch.\"},\"currentEpochStart()\":{\"notice\":\"Get a start of the current vault epoch.\"},\"delegator()\":{\"notice\":\"Get a delegator (it delegates the vault's stake to networks and operators).\"},\"deposit(address,uint256)\":{\"notice\":\"Deposit collateral into the vault.\"},\"depositLimit()\":{\"notice\":\"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously).\"},\"depositWhitelist()\":{\"notice\":\"Get if the deposit whitelist is enabled.\"},\"epochAt(uint48)\":{\"notice\":\"Get an epoch at a given timestamp.\"},\"epochDuration()\":{\"notice\":\"Get a duration of the vault epoch.\"},\"epochDurationInit()\":{\"notice\":\"Get a time point of the epoch duration set.\"},\"initialize(uint64,address,bytes)\":{\"notice\":\"Initialize this entity contract by using a given data and setting a particular version and owner.\"},\"isDelegatorInitialized()\":{\"notice\":\"Get if the delegator is initialized.\"},\"isDepositLimit()\":{\"notice\":\"Get if the deposit limit is set.\"},\"isDepositorWhitelisted(address)\":{\"notice\":\"Get if a given account is whitelisted as a depositor.\"},\"isInitialized()\":{\"notice\":\"Check if the vault is fully initialized (a delegator and a slasher are set).\"},\"isSlasherInitialized()\":{\"notice\":\"Get if the slasher is initialized.\"},\"isWithdrawalsClaimed(uint256,address)\":{\"notice\":\"Get if the withdrawals are claimed for a particular account at a given epoch.\"},\"migrate(uint64,bytes)\":{\"notice\":\"Migrate this entity to a particular newer version using a given data.\"},\"nextEpochStart()\":{\"notice\":\"Get a start of the next vault epoch.\"},\"onSlash(uint256,uint48)\":{\"notice\":\"Slash callback for burning collateral.\"},\"previousEpochStart()\":{\"notice\":\"Get a start of the previous vault epoch.\"},\"redeem(address,uint256)\":{\"notice\":\"Redeem collateral from the vault (it will be claimable after the next epoch).\"},\"setDepositLimit(uint256)\":{\"notice\":\"Set a deposit limit.\"},\"setDepositWhitelist(bool)\":{\"notice\":\"Enable/disable deposit whitelist.\"},\"setDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Set a depositor whitelist status.\"},\"setIsDepositLimit(bool)\":{\"notice\":\"Enable/disable deposit limit.\"},\"slashableBalanceOf(address)\":{\"notice\":\"Get a total amount of the collateral that can be slashed for a given account.\"},\"slasher()\":{\"notice\":\"Get a slasher (it provides networks a slashing mechanism).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"totalStake()\":{\"notice\":\"Get a total amount of the collateral that can be slashed.\"},\"version()\":{\"notice\":\"Get the entity's version.\"},\"withdraw(address,uint256)\":{\"notice\":\"Withdraw collateral from the vault (it will be claimable after the next epoch).\"},\"withdrawalShares(uint256)\":{\"notice\":\"Get a total number of withdrawal shares at a given epoch.\"},\"withdrawalSharesOf(uint256,address)\":{\"notice\":\"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed).\"},\"withdrawals(uint256)\":{\"notice\":\"Get a total amount of the withdrawals at a given epoch.\"},\"withdrawalsOf(uint256,address)\":{\"notice\":\"Get withdrawals for a particular account at a given epoch (zero if claimed).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/vault/Vault.sol\":\"Vault\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf\",\"dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44\",\"dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x303ad40a3de8fa808cc30a6fbd5998633f6a89b982e6db1fa981e0566ab445e7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fa8fb92995ead02798e013190b87b84b44cc68668262f045c9b0b4783940e2bf\",\"dweb:/ipfs/QmV1uKGVLKwWisc714R8fCt71gXUQJpaKvdc6LQ8WtvMpL\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x7ee6dbf060c45d6eba95315f4ac0b3b467dd9c4999b84c31d6f66d4d8b53a116\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://301948b8ea522db292aa2722ba42def3911dae95f0b376f7023c3fef470f8676\",\"dweb:/ipfs/QmSDbP2HdzhDAzstr8Zz5isEAcSkma8ABc5UwPsoazaumZ\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"address","name":"slasherFactory","type":"address"},{"internalType":"address","name":"vaultFactory","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadyClaimed"},{"inputs":[],"type":"error","name":"AlreadyInitialized"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DelegatorAlreadyInitialized"},{"inputs":[],"type":"error","name":"DepositLimitReached"},{"inputs":[],"type":"error","name":"InsufficientClaim"},{"inputs":[],"type":"error","name":"InsufficientDeposit"},{"inputs":[],"type":"error","name":"InsufficientRedemption"},{"inputs":[],"type":"error","name":"InsufficientWithdrawal"},{"inputs":[],"type":"error","name":"InvalidAccount"},{"inputs":[],"type":"error","name":"InvalidCaptureEpoch"},{"inputs":[],"type":"error","name":"InvalidClaimer"},{"inputs":[],"type":"error","name":"InvalidCollateral"},{"inputs":[],"type":"error","name":"InvalidDelegator"},{"inputs":[],"type":"error","name":"InvalidEpoch"},{"inputs":[],"type":"error","name":"InvalidEpochDuration"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidLengthEpochs"},{"inputs":[],"type":"error","name":"InvalidOnBehalfOf"},{"inputs":[],"type":"error","name":"InvalidRecipient"},{"inputs":[],"type":"error","name":"InvalidSlasher"},{"inputs":[],"type":"error","name":"InvalidTimestamp"},{"inputs":[],"type":"error","name":"MissingRoles"},{"inputs":[],"type":"error","name":"NoPreviousEpoch"},{"inputs":[],"type":"error","name":"NotDelegator"},{"inputs":[],"type":"error","name":"NotFactory"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotWhitelistedDepositor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"SlasherAlreadyInitialized"},{"inputs":[],"type":"error","name":"TooMuchRedeem"},{"inputs":[],"type":"error","name":"TooMuchWithdraw"},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"epoch","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Claim","anonymous":false},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256[]","name":"epochs","type":"uint256[]","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"ClaimBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"depositor","type":"address","indexed":true},{"internalType":"address","name":"onBehalfOf","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false}],"type":"event","name":"OnSlash","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":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true}],"type":"event","name":"SetDelegator","anonymous":false},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256","indexed":false}],"type":"event","name":"SetDepositLimit","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositWhitelist","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositorWhitelistStatus","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetIsDepositLimit","anonymous":false},{"inputs":[{"internalType":"address","name":"slasher","type":"address","indexed":true}],"type":"event","name":"SetSlasher","anonymous":false},{"inputs":[{"internalType":"address","name":"withdrawer","type":"address","indexed":true},{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"burnedShares","type":"uint256","indexed":false},{"internalType":"uint256","name":"mintedShares","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DELEGATOR_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSITOR_WHITELIST_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeBalanceOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeSharesOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeStakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"burner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256[]","name":"epochs","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"claimBatch","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"delegator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"onBehalfOf","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"depositedAmount","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"epochAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDurationInit","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"initialVersion","type":"uint64"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isDelegatorInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isDepositLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isDepositorWhitelisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isSlasherInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isWithdrawalsClaimed","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"newVersion","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"migrate"},{"inputs":[],"stateMutability":"view","type":"function","name":"nextEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"onSlash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"previousEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"withdrawnAssets","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"delegator_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegator"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDepositLimit"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositWhitelist"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositorWhitelistStatus"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setIsDepositLimit"},{"inputs":[{"internalType":"address","name":"slasher_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSlasher"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"slashableBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"slasher","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"burnedShares","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawalShares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalSharesOf","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawals","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"activeBalanceOf(address)":{"params":{"account":"account to get the active balance for"},"returns":{"_0":"active balance for the account"}},"activeBalanceOfAt(address,uint48,bytes)":{"params":{"account":"account to get the active balance for","hints":"hints for checkpoints' indexes","timestamp":"time point to get the active balance for the account at"},"returns":{"_0":"active balance for the account at the timestamp"}},"activeShares()":{"returns":{"_0":"total number of active shares"}},"activeSharesAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total number of active shares at"},"returns":{"_0":"total number of active shares at the timestamp"}},"activeSharesOf(address)":{"params":{"account":"account to get the number of active shares for"},"returns":{"_0":"number of active shares for the account"}},"activeSharesOfAt(address,uint48,bytes)":{"params":{"account":"account to get the number of active shares for","hint":"hint for the checkpoint index","timestamp":"time point to get the number of active shares for the account at"},"returns":{"_0":"number of active shares for the account at the timestamp"}},"activeStake()":{"returns":{"_0":"total amount of active stake"}},"activeStakeAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total active stake at"},"returns":{"_0":"total amount of active stake at the timestamp"}},"claim(address,uint256)":{"params":{"epoch":"epoch to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"claimBatch(address,uint256[])":{"params":{"epochs":"epochs to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"currentEpoch()":{"returns":{"_0":"current epoch"}},"currentEpochStart()":{"returns":{"_0":"start of the current epoch"}},"deposit(address,uint256)":{"params":{"amount":"amount of the collateral to deposit","onBehalfOf":"account the deposit is made on behalf of"},"returns":{"depositedAmount":"real amount of the collateral deposited","mintedShares":"amount of the active shares minted"}},"epochAt(uint48)":{"details":"Reverts if the timestamp is less than the start of the epoch 0.","params":{"timestamp":"time point to get the epoch at"},"returns":{"_0":"epoch at the timestamp"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(uint64,address,bytes)":{"params":{"data":"some data to use","initialVersion":"initial version of the entity","owner":"initial owner of the entity"}},"isInitialized()":{"returns":{"_0":"if the vault is fully initialized"}},"migrate(uint64,bytes)":{"params":{"data":"some data to use","newVersion":"new version of the entity"}},"nextEpochStart()":{"returns":{"_0":"start of the next epoch"}},"onSlash(uint256,uint48)":{"details":"Only the slasher can call this function.","params":{"amount":"amount to slash","captureTimestamp":"time point when the stake was captured"},"returns":{"slashedAmount":"real amount of the collateral slashed"}},"owner()":{"details":"Returns the address of the current owner."},"previousEpochStart()":{"details":"Reverts if the current epoch is 0.","returns":{"_0":"start of the previous epoch"}},"redeem(address,uint256)":{"params":{"claimer":"account that needs to claim the withdrawal","shares":"amount of the active shares to redeem"},"returns":{"mintedShares":"amount of the epoch withdrawal shares minted","withdrawnAssets":"amount of the collateral withdrawn"}},"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."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setDepositLimit(uint256)":{"details":"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"limit":"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)"}},"setDepositWhitelist(bool)":{"details":"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit whitelist"}},"setDepositorWhitelistStatus(address,bool)":{"details":"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.","params":{"account":"account for which the whitelist status is set","status":"if whitelisting the account"}},"setIsDepositLimit(bool)":{"details":"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit limit"}},"slashableBalanceOf(address)":{"params":{"account":"account to get the slashable collateral for"},"returns":{"_0":"total amount of the account's slashable collateral"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"totalStake()":{"returns":{"_0":"total amount of the slashable collateral"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"version()":{"details":"Starts from 1.","returns":{"_0":"version of the entity"}},"withdraw(address,uint256)":{"params":{"amount":"amount of the collateral to withdraw","claimer":"account that needs to claim the withdrawal"},"returns":{"burnedShares":"amount of the active shares burned","mintedShares":"amount of the epoch withdrawal shares minted"}},"withdrawalsOf(uint256,address)":{"params":{"account":"account to get the withdrawals for","epoch":"epoch to get the withdrawals for the account at"},"returns":{"_0":"withdrawals for the account at the epoch"}}},"version":1},"userdoc":{"kind":"user","methods":{"DELEGATOR_FACTORY()":{"notice":"Get the delegator factory's address."},"DEPOSITOR_WHITELIST_ROLE()":{"notice":"Get a depositor whitelist status setter's role."},"DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit setter's role."},"DEPOSIT_WHITELIST_SET_ROLE()":{"notice":"Get a deposit whitelist enabler/disabler's role."},"FACTORY()":{"notice":"Get the factory's address."},"IS_DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit enabler/disabler's role."},"SLASHER_FACTORY()":{"notice":"Get the slasher factory's address."},"activeBalanceOf(address)":{"notice":"Get an active balance for a particular account."},"activeBalanceOfAt(address,uint48,bytes)":{"notice":"Get an active balance for a particular account at a given timestamp using hints."},"activeShares()":{"notice":"Get a total number of active shares in the vault."},"activeSharesAt(uint48,bytes)":{"notice":"Get a total number of active shares in the vault at a given timestamp using a hint."},"activeSharesOf(address)":{"notice":"Get a number of active shares for a particular account."},"activeSharesOfAt(address,uint48,bytes)":{"notice":"Get a total number of active shares for a particular account at a given timestamp using a hint."},"activeStake()":{"notice":"Get a total amount of active stake in the vault."},"activeStakeAt(uint48,bytes)":{"notice":"Get a total amount of active stake in the vault at a given timestamp using a hint."},"burner()":{"notice":"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract)."},"claim(address,uint256)":{"notice":"Claim collateral from the vault."},"claimBatch(address,uint256[])":{"notice":"Claim collateral from the vault for multiple epochs."},"collateral()":{"notice":"Get a vault collateral."},"currentEpoch()":{"notice":"Get a current vault epoch."},"currentEpochStart()":{"notice":"Get a start of the current vault epoch."},"delegator()":{"notice":"Get a delegator (it delegates the vault's stake to networks and operators)."},"deposit(address,uint256)":{"notice":"Deposit collateral into the vault."},"depositLimit()":{"notice":"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously)."},"depositWhitelist()":{"notice":"Get if the deposit whitelist is enabled."},"epochAt(uint48)":{"notice":"Get an epoch at a given timestamp."},"epochDuration()":{"notice":"Get a duration of the vault epoch."},"epochDurationInit()":{"notice":"Get a time point of the epoch duration set."},"initialize(uint64,address,bytes)":{"notice":"Initialize this entity contract by using a given data and setting a particular version and owner."},"isDelegatorInitialized()":{"notice":"Get if the delegator is initialized."},"isDepositLimit()":{"notice":"Get if the deposit limit is set."},"isDepositorWhitelisted(address)":{"notice":"Get if a given account is whitelisted as a depositor."},"isInitialized()":{"notice":"Check if the vault is fully initialized (a delegator and a slasher are set)."},"isSlasherInitialized()":{"notice":"Get if the slasher is initialized."},"isWithdrawalsClaimed(uint256,address)":{"notice":"Get if the withdrawals are claimed for a particular account at a given epoch."},"migrate(uint64,bytes)":{"notice":"Migrate this entity to a particular newer version using a given data."},"nextEpochStart()":{"notice":"Get a start of the next vault epoch."},"onSlash(uint256,uint48)":{"notice":"Slash callback for burning collateral."},"previousEpochStart()":{"notice":"Get a start of the previous vault epoch."},"redeem(address,uint256)":{"notice":"Redeem collateral from the vault (it will be claimable after the next epoch)."},"setDepositLimit(uint256)":{"notice":"Set a deposit limit."},"setDepositWhitelist(bool)":{"notice":"Enable/disable deposit whitelist."},"setDepositorWhitelistStatus(address,bool)":{"notice":"Set a depositor whitelist status."},"setIsDepositLimit(bool)":{"notice":"Enable/disable deposit limit."},"slashableBalanceOf(address)":{"notice":"Get a total amount of the collateral that can be slashed for a given account."},"slasher()":{"notice":"Get a slasher (it provides networks a slashing mechanism)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"totalStake()":{"notice":"Get a total amount of the collateral that can be slashed."},"version()":{"notice":"Get the entity's version."},"withdraw(address,uint256)":{"notice":"Withdraw collateral from the vault (it will be claimable after the next epoch)."},"withdrawalShares(uint256)":{"notice":"Get a total number of withdrawal shares at a given epoch."},"withdrawalSharesOf(uint256,address)":{"notice":"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed)."},"withdrawals(uint256)":{"notice":"Get a total amount of the withdrawals at a given epoch."},"withdrawalsOf(uint256,address)":{"notice":"Get withdrawals for a particular account at a given epoch (zero if claimed)."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/vault/Vault.sol":"Vault"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866","urls":["bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf","dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab","urls":["bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89","dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606","urls":["bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1","dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f","urls":["bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44","dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x303ad40a3de8fa808cc30a6fbd5998633f6a89b982e6db1fa981e0566ab445e7","urls":["bzz-raw://fa8fb92995ead02798e013190b87b84b44cc68668262f045c9b0b4783940e2bf","dweb:/ipfs/QmV1uKGVLKwWisc714R8fCt71gXUQJpaKvdc6LQ8WtvMpL"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/vault/Vault.sol":{"keccak256":"0x7ee6dbf060c45d6eba95315f4ac0b3b467dd9c4999b84c31d6f66d4d8b53a116","urls":["bzz-raw://301948b8ea522db292aa2722ba42def3911dae95f0b376f7023c3fef470f8676","dweb:/ipfs/QmSDbP2HdzhDAzstr8Zz5isEAcSkma8ABc5UwPsoazaumZ"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":106} \ No newline at end of file diff --git a/out/VaultConfigurator.sol/VaultConfigurator.json b/out/VaultConfigurator.sol/VaultConfigurator.json index 05552d00..74909adb 100644 --- a/out/VaultConfigurator.sol/VaultConfigurator.json +++ b/out/VaultConfigurator.sol/VaultConfigurator.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"vaultFactory","type":"address","internalType":"address"},{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"slasherFactory","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"DELEGATOR_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"create","inputs":[{"name":"params","type":"tuple","internalType":"struct IVaultConfigurator.InitParams","components":[{"name":"version","type":"uint64","internalType":"uint64"},{"name":"owner","type":"address","internalType":"address"},{"name":"vaultParams","type":"bytes","internalType":"bytes"},{"name":"delegatorIndex","type":"uint64","internalType":"uint64"},{"name":"delegatorParams","type":"bytes","internalType":"bytes"},{"name":"withSlasher","type":"bool","internalType":"bool"},{"name":"slasherIndex","type":"uint64","internalType":"uint64"},{"name":"slasherParams","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"delegator","type":"address","internalType":"address"},{"name":"slasher","type":"address","internalType":"address"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x60e0346100a957601f61078338819003918201601f19168301916001600160401b038311848410176100ad578084926060946040528339810103126100a957610047816100c1565b906100606040610059602084016100c1565b92016100c1565b9160805260a05260c0526040516106ad90816100d682396080518181816101aa015261050a015260a05181818161023301526104c9015260c05181818161038201526104860152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036100a95756fe60806040818152600480361015610014575f80fd5b5f925f3560e01c908163103f2907146104f8575080636da3e06d146104b557806387df0788146104725763c48927e41461004c575f80fd5b346103385760031991602036840181136103385782359067ffffffffffffffff9485831161033857610100809184360301126103385783519081018181108782111761045f57845261009f838601610583565b81526001600160a01b039560248401358781168103610338578383019081526044850135828111610338576100d990883691880101610598565b918684019283526100ec60648701610583565b956060850196875260848101358281116103385761010f908a3691840101610598565b966080860197885260a48201359081151582036103385760a0870191825261013960c48401610583565b9260c0880193845260e481013596858811610338578d8d975f6101648f9b958b8f9736920101610598565b9960e08d019a8b526101a6848b849f511694511695519c519c8d9687958694633ac0491160e01b8652850152602484015260606044840152606483019061060d565b03927f0000000000000000000000000000000000000000000000000000000000000000165af19586156104555791888d8c95938e97955f9a61042e575b50908561022f9251169c515f8b6102008a51938492888401610631565b0398610214601f199a8b8101855284610561565b519e8f94859384926319a211df60e31b9d8e85528401610656565b03927f0000000000000000000000000000000000000000000000000000000000000000165af1998a1561042457908d979695949392915f9b6103f9575b50908995949392915161033c575b5050505050501695863b156103385784516383cd9cc360e01b8152938116868501819052935f81602481838c5af1801561032e5761031b575b50863b1561031757845163555e124b60e11b815291169481018590528681602481838a5af1801561030d576102f5575b50606095508251948552840152820152f35b6102ff8791610539565b61030957856102e3565b8580fd5b84513d89823e3d90fd5b8780fd5b610326919850610539565b5f965f6102b3565b86513d5f823e3d90fd5b5f80fd5b61036893949596985061035c9750511693518a5196879189888401610631565b03908101865285610561565b61037c8851948593849384528b8401610656565b03815f8b7f0000000000000000000000000000000000000000000000000000000000000000165af19081156103ef579087915f916103c2575b5091835f8080808061027a565b6103e29150843d86116103e8575b6103da8183610561565b8101906105ee565b5f6103b5565b503d6103d0565b85513d5f823e3d90fd5b8a9695949392919b5061041890873d89116103e8576103da8183610561565b9a90919293949561026c565b8b513d5f823e3d90fd5b61022f92919a5061044c8791853d87116103e8576103da8183610561565b9a9192506101e3565b8a513d5f823e3d90fd5b604186634e487b7160e01b5f525260245ffd5b8234610338575f36600319011261033857517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b8234610338575f36600319011261033857517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610338575f366003190112610338577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b67ffffffffffffffff811161054d57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761054d57604052565b359067ffffffffffffffff8216820361033857565b81601f820112156103385780359067ffffffffffffffff821161054d57604051926105cd601f8401601f191660200185610561565b8284526020838301011161033857815f926020809301838601378301015290565b9081602091031261033857516001600160a01b03811681036103385790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6001600160a01b0390911681526040602082018190526106539291019061060d565b90565b60409067ffffffffffffffff6106539493168152816020820152019061060d56fea264697066735822122020fa8a8dccb75ed79531c7b2d13bbe6e0ffea7af090bf70576d71b1d9ce0139964736f6c63430008190033","sourceMap":"392:1286:80:-:0;;;;;;;;;;;;;-1:-1:-1;;392:1286:80;;;;-1:-1:-1;;;;;392:1286:80;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;844:28;;;882:36;;928:32;;392:1286;;;;;;;;844:28;392:1286;;;;;;;;;;882:36;392:1286;;;;;;;;;;928:32;392:1286;;;;;;;;;;;;-1:-1:-1;392:1286:80;;;;;;-1:-1:-1;392:1286:80;;;;;-1:-1:-1;392:1286:80;;;;-1:-1:-1;;;;;392:1286:80;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040818152600480361015610014575f80fd5b5f925f3560e01c908163103f2907146104f8575080636da3e06d146104b557806387df0788146104725763c48927e41461004c575f80fd5b346103385760031991602036840181136103385782359067ffffffffffffffff9485831161033857610100809184360301126103385783519081018181108782111761045f57845261009f838601610583565b81526001600160a01b039560248401358781168103610338578383019081526044850135828111610338576100d990883691880101610598565b918684019283526100ec60648701610583565b956060850196875260848101358281116103385761010f908a3691840101610598565b966080860197885260a48201359081151582036103385760a0870191825261013960c48401610583565b9260c0880193845260e481013596858811610338578d8d975f6101648f9b958b8f9736920101610598565b9960e08d019a8b526101a6848b849f511694511695519c519c8d9687958694633ac0491160e01b8652850152602484015260606044840152606483019061060d565b03927f0000000000000000000000000000000000000000000000000000000000000000165af19586156104555791888d8c95938e97955f9a61042e575b50908561022f9251169c515f8b6102008a51938492888401610631565b0398610214601f199a8b8101855284610561565b519e8f94859384926319a211df60e31b9d8e85528401610656565b03927f0000000000000000000000000000000000000000000000000000000000000000165af1998a1561042457908d979695949392915f9b6103f9575b50908995949392915161033c575b5050505050501695863b156103385784516383cd9cc360e01b8152938116868501819052935f81602481838c5af1801561032e5761031b575b50863b1561031757845163555e124b60e11b815291169481018590528681602481838a5af1801561030d576102f5575b50606095508251948552840152820152f35b6102ff8791610539565b61030957856102e3565b8580fd5b84513d89823e3d90fd5b8780fd5b610326919850610539565b5f965f6102b3565b86513d5f823e3d90fd5b5f80fd5b61036893949596985061035c9750511693518a5196879189888401610631565b03908101865285610561565b61037c8851948593849384528b8401610656565b03815f8b7f0000000000000000000000000000000000000000000000000000000000000000165af19081156103ef579087915f916103c2575b5091835f8080808061027a565b6103e29150843d86116103e8575b6103da8183610561565b8101906105ee565b5f6103b5565b503d6103d0565b85513d5f823e3d90fd5b8a9695949392919b5061041890873d89116103e8576103da8183610561565b9a90919293949561026c565b8b513d5f823e3d90fd5b61022f92919a5061044c8791853d87116103e8576103da8183610561565b9a9192506101e3565b8a513d5f823e3d90fd5b604186634e487b7160e01b5f525260245ffd5b8234610338575f36600319011261033857517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b8234610338575f36600319011261033857517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610338575f366003190112610338577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b67ffffffffffffffff811161054d57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761054d57604052565b359067ffffffffffffffff8216820361033857565b81601f820112156103385780359067ffffffffffffffff821161054d57604051926105cd601f8401601f191660200185610561565b8284526020838301011161033857815f926020809301838601378301015290565b9081602091031261033857516001600160a01b03811681036103385790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6001600160a01b0390911681526040602082018190526106539291019061060d565b90565b60409067ffffffffffffffff6106539493168152816020820152019061060d56fea264697066735822122020fa8a8dccb75ed79531c7b2d13bbe6e0ffea7af090bf70576d71b1d9ce0139964736f6c63430008190033","sourceMap":"392:1286:80:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;392:1286:80;;;;;;-1:-1:-1;392:1286:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;392:1286:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;1133:15;;;392:1286;;;;;;1233:18;;392:1286;;;;;;;;;;;;1168:84;;;;392:1286;;;;;;;;;;;;;;;:::i;:::-;1168:84;1181:13;;392:1286;1168:84;;;;;;;;;;;;;;;;392:1286;1168:84;;;392:1286;;;;1287:108;392:1286;;;1371:22;;392:1286;;1353:41;392:1286;;1353:41;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;392:1286;;;;;;;;;;;1287:108;;;;;;;:::i;:::-;;1304:17;;392:1286;1287:108;;;;;;;;;;;;;;;;392:1286;1287:108;;;392:1286;;;;;;;;;;1406:175;;392:1286;;;;;;;;1591:36;;;;;;392:1286;;-1:-1:-1;;;1591:36:80;;392:1286;;;1591:36;;;392:1286;;;;;;;;;1591:36;;;;;;;;;392:1286;1637:32;;;;;;392:1286;;-1:-1:-1;;;1637:32:80;;392:1286;;1637:32;;;392:1286;;;1637:32;392:1286;;;1637:32;;;;;;;;;;392:1286;;;;;;;;;;;;;;;;;1637:32;;;;;:::i;:::-;392:1286;;1637:32;;;392:1286;;;;1637:32;392:1286;;;;;;;;;1637:32;392:1286;;;1591:36;;;;;;:::i;:::-;392:1286;1591:36;;;;;392:1286;;;;;;;;;1591:36;392:1286;;;1406:175;1530:39;392:1286;;;;;;1530:39;392:1286;;;;1548:20;;392:1286;;1530:39;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;1470:100;392:1286;;1470:100;;;;;;;;;;;:::i;:::-;;1485:15;392:1286;1485:15;;392:1286;1470:100;;;;;;;;;;392:1286;1470:100;;;1406:175;1444:126;1406:175;;;;;;;;;1470:100;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;392:1286;;;;;;;;;1287:108;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;392:1286;;;;;;;;;1168:84;1287:108;1168:84;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;392:1286;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;392:1286:80;;;;;703:40;-1:-1:-1;;;;;392:1286:80;;;;;;;;;;;;;-1:-1:-1;;392:1286:80;;;;;600:42;-1:-1:-1;;;;;392:1286:80;;;;;;;;;;;;-1:-1:-1;;392:1286:80;;;;501:38;-1:-1:-1;;;;;392:1286:80;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;1353:41;;392:1286;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;1353:41;392:1286;;-1:-1:-1;;392:1286:80;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;392:1286:80;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;392:1286:80;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;392:1286:80;;;;;;;;-1:-1:-1;;392:1286:80;;;;:::o;:::-;-1:-1:-1;;;;;392:1286:80;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i","linkReferences":{},"immutableReferences":{"59980":[{"start":426,"length":32},{"start":1290,"length":32}],"59983":[{"start":563,"length":32},{"start":1225,"length":32}],"59986":[{"start":898,"length":32},{"start":1158,"length":32}]}},"methodIdentifiers":{"DELEGATOR_FACTORY()":"6da3e06d","SLASHER_FACTORY()":"87df0788","VAULT_FACTORY()":"103f2907","create((uint64,address,bytes,uint64,bytes,bool,uint64,bytes))":"c48927e4"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slasherFactory\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"DELEGATOR_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"vaultParams\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"delegatorIndex\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"delegatorParams\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"withSlasher\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"slasherIndex\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"slasherParams\",\"type\":\"bytes\"}],\"internalType\":\"struct IVaultConfigurator.InitParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"create((uint64,address,bytes,uint64,bytes,bool,uint64,bytes))\":{\"params\":{\"params\":\"initial parameters needed for a vault with a delegator and a slasher deployment\"},\"returns\":{\"delegator\":\"address of the delegator\",\"slasher\":\"address of the slasher\",\"vault\":\"address of the vault\"}}},\"stateVariables\":{\"DELEGATOR_FACTORY\":{\"return\":\"address of the delegator factory\",\"returns\":{\"_0\":\"address of the delegator factory\"}},\"SLASHER_FACTORY\":{\"return\":\"address of the slasher factory\",\"returns\":{\"_0\":\"address of the slasher factory\"}},\"VAULT_FACTORY\":{\"return\":\"address of the vault factory\",\"returns\":{\"_0\":\"address of the vault factory\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DELEGATOR_FACTORY()\":{\"notice\":\"Get the delegator factory's address.\"},\"SLASHER_FACTORY()\":{\"notice\":\"Get the slasher factory's address.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"create((uint64,address,bytes,uint64,bytes,bool,uint64,bytes))\":{\"notice\":\"Create a new vault with a delegator and a slasher.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/VaultConfigurator.sol\":\"VaultConfigurator\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf\",\"dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/proxy/Clones.sol\":{\"keccak256\":\"0xf55d01dac75cffdabec6833a79bf3be0c108fc0db10e273daf7adfd3e9e59dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://540002a50a2a1a2b9dafffb976178e55adbf8d3a28db462c69f996921479c6b0\",\"dweb:/ipfs/QmQNAFyMf2FW3U1giM4Yej3zzd1pnxMtAA5GoADj4hTYYD\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0x0a8a5b994d4c4da9f61d128945cc8c9e60dcbc72bf532f72ae42a48ea90eed9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e63ae15b6b1079b9d3c73913424d4278139f9e9c9658316675b9c48d5883a50d\",\"dweb:/ipfs/QmWLxBYfp8j1YjNMabWgv75ELTaK2eEYEEGx7qsJbxVZZq\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44\",\"dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f\",\"dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/contracts/DelegatorFactory.sol\":{\"keccak256\":\"0x3c3fb62c441302f4f75d94703779f5c4bb755c06f310b4c923dbf24d6e0adda9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://597fa8be7179d8a555bf942c1dea0504273a1d34f6ac4c206fc2e816da143e68\",\"dweb:/ipfs/Qmf54DKNYXC7fTMcAFABw68RC6ZFenVgyAPGhbPTf6s5TR\"]},\"src/contracts/SlasherFactory.sol\":{\"keccak256\":\"0xbafc96e3d2511eb62942613645b4f5cbf6f603063a711b30e25940aaba08064c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://489440f1181b1858e3b27a90ec6f514c0c287c602b4779676048213202165867\",\"dweb:/ipfs/QmRG7AQ9m9qHr8ofEvP1Ur8S379fFXTo9rmiWaAtZ9rsUc\"]},\"src/contracts/VaultConfigurator.sol\":{\"keccak256\":\"0x2484ee5cfac134e27cedeeef22d4111d7ecd4a4b62f02381f2c2b67c57ed7955\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://adce2d9b8a9fb670c0f3266d5407b752901921f1c9f9406c7db65d84e48e779a\",\"dweb:/ipfs/QmTbcKhdGfepqexFc8kziqPdfFC8SGZzFrVnEcJ5nKBiPz\"]},\"src/contracts/VaultFactory.sol\":{\"keccak256\":\"0xa9122dd11e5f21fa97a813e90f8c4905f0a4967b9611dd03437a31377cbdecb8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4c2feda1f9c0c7ddf65bccdc99494e4bfbb820fcddc3e4222e3b58ef821424a3\",\"dweb:/ipfs/Qmdmt4rH214jDmDsF9ELvJXVCt8abhk6poSmhJqqzLse3R\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/Factory.sol\":{\"keccak256\":\"0x41764643e6a2a3d80d694a3efee91f50a2fd084fb2bcd13566259443840e6369\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fefc1e2a2189275388826f4f82ca421ca79c2866d3ef39dc2c7df46fe7cbf7c9\",\"dweb:/ipfs/QmSJ4VGmgpYUv5ni4ZYoSV4qMuZrk5DLjyB3Vv9NbFgeNZ\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/MigratableEntityProxy.sol\":{\"keccak256\":\"0x78ba27242276232ad10a45265e3c07f0a25722456f6abb3fb3f24a1c8e1b38d1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a19623df688e5085036b59fc934e35b72997f875d7ffda1cdc557c6ca468206d\",\"dweb:/ipfs/QmaQiT5uYZu5JmqhMjTDJnsq3nqaHbKrWAjrxKKLesdHV7\"]},\"src/contracts/common/MigratablesFactory.sol\":{\"keccak256\":\"0x5d1487c3456da4bd0bc2a131eeab97ab92484c923edefaebf190cc08d4080093\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fec38d2e52e9c5148e95599c133fd6fe66d41296d6fc06e7329d2db199a1798f\",\"dweb:/ipfs/QmeiaydBXHHkJRUnpaZH1C6JQ7HPocTvQbUJBqKTvUeEYv\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652\",\"dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/slasher/BaseSlasher.sol\":{\"keccak256\":\"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06\",\"dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/IDelegatorFactory.sol\":{\"keccak256\":\"0x7850453237ca93b301393506d2489a38830a60be0c29f39a4a1aee3508d836e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f418702b883c90e046af92d5654a25849baf79b61c11401ad603b861fed7b80\",\"dweb:/ipfs/Qmdju1XFJXx3uJidzoS7srcoSnzT8jUoPAmGEdbceYgB7j\"]},\"src/interfaces/ISlasherFactory.sol\":{\"keccak256\":\"0x30018af5c2719d9b5cfacbfc0277017896815b3fcc4dfbea78813e6ae81c1e56\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5e028fbed23ab973d8d9eb2be4e53a528dd01248e3233f56ab0f8ac9a7c9c220\",\"dweb:/ipfs/Qmd9cHMRSE52ESmxMiu5gTBpRNmDHQK5q18f7UTj8DQke4\"]},\"src/interfaces/IVaultConfigurator.sol\":{\"keccak256\":\"0x699d9b8c767780c4ea593fe7608bc0b3ef7646f54cea0610ae355f2974658eba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9ac4081f36b477025213f59c489cbb85f904580b145fa9f18ef9a7b794f0fba2\",\"dweb:/ipfs/QmPE3Ep6pTdaeFsJoixeom3NEaQiTe8WHrLoiFEGJo1zx4\"]},\"src/interfaces/IVaultFactory.sol\":{\"keccak256\":\"0x6f658b264fc8d530e458a98d83a09cb55ace4d3e509f0a3e9294471bb1bcf84d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7253435e4e1d1ae19a50d14091ddb254f6a36f296440106bfc094623dd1aeba\",\"dweb:/ipfs/QmbHK9yoQ7Ctf3nuDLmqxTWPYD8cEm1TKXzfxePtE87AQN\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IFactory.sol\":{\"keccak256\":\"0xe835ebda85d181b70874f6eb53f2a892aa3223d23efe247060da9b51d2b8e969\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b3dfb5f0491d90efbc8ed498b45358260ebac6e8f2aa0106b8b8fabdc988cb\",\"dweb:/ipfs/QmWnnCs3xiHeUvYfUWMJTSFZWc34bSYn9Zpm7f7syra3TA\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IMigratableEntityProxy.sol\":{\"keccak256\":\"0x9030ced51ad12e0b3ddaa11bba4a3adcfa29e67b909c46065c14b19d158bb9fd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d859c21510d1a0f06a71abe21dc6424608c1b2e3194a10e4df4cc88c4de9e9f\",\"dweb:/ipfs/QmNi6Buri2oaujc4vTv6bZ5mgMKFsjUmYmQLUNaDCXFEEt\"]},\"src/interfaces/common/IMigratablesFactory.sol\":{\"keccak256\":\"0xd4dfe9449bf005dbcbab9e0e85eaaca15a601ff971f34182a0b1832dc4b9d124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff8b73285192a9c64160b008d23a09da33e7164d10a9dc29d1a4464bd9c02be5\",\"dweb:/ipfs/QmZQW2LLV4dQfJ3coENKeycbzXJzi7zdvupsqWA4UV29Gq\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/slasher/IBurner.sol\":{\"keccak256\":\"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447\",\"dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"vaultFactory","type":"address"},{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"address","name":"slasherFactory","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"DELEGATOR_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct IVaultConfigurator.InitParams","name":"params","type":"tuple","components":[{"internalType":"uint64","name":"version","type":"uint64"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"bytes","name":"vaultParams","type":"bytes"},{"internalType":"uint64","name":"delegatorIndex","type":"uint64"},{"internalType":"bytes","name":"delegatorParams","type":"bytes"},{"internalType":"bool","name":"withSlasher","type":"bool"},{"internalType":"uint64","name":"slasherIndex","type":"uint64"},{"internalType":"bytes","name":"slasherParams","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"create","outputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"address","name":"delegator","type":"address"},{"internalType":"address","name":"slasher","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"create((uint64,address,bytes,uint64,bytes,bool,uint64,bytes))":{"params":{"params":"initial parameters needed for a vault with a delegator and a slasher deployment"},"returns":{"delegator":"address of the delegator","slasher":"address of the slasher","vault":"address of the vault"}}},"version":1},"userdoc":{"kind":"user","methods":{"DELEGATOR_FACTORY()":{"notice":"Get the delegator factory's address."},"SLASHER_FACTORY()":{"notice":"Get the slasher factory's address."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"create((uint64,address,bytes,uint64,bytes,bool,uint64,bytes))":{"notice":"Create a new vault with a delegator and a slasher."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/VaultConfigurator.sol":"VaultConfigurator"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866","urls":["bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf","dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab","urls":["bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89","dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606","urls":["bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1","dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Clones.sol":{"keccak256":"0xf55d01dac75cffdabec6833a79bf3be0c108fc0db10e273daf7adfd3e9e59dae","urls":["bzz-raw://540002a50a2a1a2b9dafffb976178e55adbf8d3a28db462c69f996921479c6b0","dweb:/ipfs/QmQNAFyMf2FW3U1giM4Yej3zzd1pnxMtAA5GoADj4hTYYD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0x0a8a5b994d4c4da9f61d128945cc8c9e60dcbc72bf532f72ae42a48ea90eed9a","urls":["bzz-raw://e63ae15b6b1079b9d3c73913424d4278139f9e9c9658316675b9c48d5883a50d","dweb:/ipfs/QmWLxBYfp8j1YjNMabWgv75ELTaK2eEYEEGx7qsJbxVZZq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f","urls":["bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44","dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212","urls":["bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f","dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/contracts/DelegatorFactory.sol":{"keccak256":"0x3c3fb62c441302f4f75d94703779f5c4bb755c06f310b4c923dbf24d6e0adda9","urls":["bzz-raw://597fa8be7179d8a555bf942c1dea0504273a1d34f6ac4c206fc2e816da143e68","dweb:/ipfs/Qmf54DKNYXC7fTMcAFABw68RC6ZFenVgyAPGhbPTf6s5TR"],"license":"BUSL-1.1"},"src/contracts/SlasherFactory.sol":{"keccak256":"0xbafc96e3d2511eb62942613645b4f5cbf6f603063a711b30e25940aaba08064c","urls":["bzz-raw://489440f1181b1858e3b27a90ec6f514c0c287c602b4779676048213202165867","dweb:/ipfs/QmRG7AQ9m9qHr8ofEvP1Ur8S379fFXTo9rmiWaAtZ9rsUc"],"license":"BUSL-1.1"},"src/contracts/VaultConfigurator.sol":{"keccak256":"0x2484ee5cfac134e27cedeeef22d4111d7ecd4a4b62f02381f2c2b67c57ed7955","urls":["bzz-raw://adce2d9b8a9fb670c0f3266d5407b752901921f1c9f9406c7db65d84e48e779a","dweb:/ipfs/QmTbcKhdGfepqexFc8kziqPdfFC8SGZzFrVnEcJ5nKBiPz"],"license":"BUSL-1.1"},"src/contracts/VaultFactory.sol":{"keccak256":"0xa9122dd11e5f21fa97a813e90f8c4905f0a4967b9611dd03437a31377cbdecb8","urls":["bzz-raw://4c2feda1f9c0c7ddf65bccdc99494e4bfbb820fcddc3e4222e3b58ef821424a3","dweb:/ipfs/Qmdmt4rH214jDmDsF9ELvJXVCt8abhk6poSmhJqqzLse3R"],"license":"BUSL-1.1"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/Factory.sol":{"keccak256":"0x41764643e6a2a3d80d694a3efee91f50a2fd084fb2bcd13566259443840e6369","urls":["bzz-raw://fefc1e2a2189275388826f4f82ca421ca79c2866d3ef39dc2c7df46fe7cbf7c9","dweb:/ipfs/QmSJ4VGmgpYUv5ni4ZYoSV4qMuZrk5DLjyB3Vv9NbFgeNZ"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntityProxy.sol":{"keccak256":"0x78ba27242276232ad10a45265e3c07f0a25722456f6abb3fb3f24a1c8e1b38d1","urls":["bzz-raw://a19623df688e5085036b59fc934e35b72997f875d7ffda1cdc557c6ca468206d","dweb:/ipfs/QmaQiT5uYZu5JmqhMjTDJnsq3nqaHbKrWAjrxKKLesdHV7"],"license":"BUSL-1.1"},"src/contracts/common/MigratablesFactory.sol":{"keccak256":"0x5d1487c3456da4bd0bc2a131eeab97ab92484c923edefaebf190cc08d4080093","urls":["bzz-raw://fec38d2e52e9c5148e95599c133fd6fe66d41296d6fc06e7329d2db199a1798f","dweb:/ipfs/QmeiaydBXHHkJRUnpaZH1C6JQ7HPocTvQbUJBqKTvUeEYv"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889","urls":["bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652","dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/slasher/BaseSlasher.sol":{"keccak256":"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6","urls":["bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06","dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/IDelegatorFactory.sol":{"keccak256":"0x7850453237ca93b301393506d2489a38830a60be0c29f39a4a1aee3508d836e6","urls":["bzz-raw://8f418702b883c90e046af92d5654a25849baf79b61c11401ad603b861fed7b80","dweb:/ipfs/Qmdju1XFJXx3uJidzoS7srcoSnzT8jUoPAmGEdbceYgB7j"],"license":"MIT"},"src/interfaces/ISlasherFactory.sol":{"keccak256":"0x30018af5c2719d9b5cfacbfc0277017896815b3fcc4dfbea78813e6ae81c1e56","urls":["bzz-raw://5e028fbed23ab973d8d9eb2be4e53a528dd01248e3233f56ab0f8ac9a7c9c220","dweb:/ipfs/Qmd9cHMRSE52ESmxMiu5gTBpRNmDHQK5q18f7UTj8DQke4"],"license":"MIT"},"src/interfaces/IVaultConfigurator.sol":{"keccak256":"0x699d9b8c767780c4ea593fe7608bc0b3ef7646f54cea0610ae355f2974658eba","urls":["bzz-raw://9ac4081f36b477025213f59c489cbb85f904580b145fa9f18ef9a7b794f0fba2","dweb:/ipfs/QmPE3Ep6pTdaeFsJoixeom3NEaQiTe8WHrLoiFEGJo1zx4"],"license":"MIT"},"src/interfaces/IVaultFactory.sol":{"keccak256":"0x6f658b264fc8d530e458a98d83a09cb55ace4d3e509f0a3e9294471bb1bcf84d","urls":["bzz-raw://a7253435e4e1d1ae19a50d14091ddb254f6a36f296440106bfc094623dd1aeba","dweb:/ipfs/QmbHK9yoQ7Ctf3nuDLmqxTWPYD8cEm1TKXzfxePtE87AQN"],"license":"MIT"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IFactory.sol":{"keccak256":"0xe835ebda85d181b70874f6eb53f2a892aa3223d23efe247060da9b51d2b8e969","urls":["bzz-raw://48b3dfb5f0491d90efbc8ed498b45358260ebac6e8f2aa0106b8b8fabdc988cb","dweb:/ipfs/QmWnnCs3xiHeUvYfUWMJTSFZWc34bSYn9Zpm7f7syra3TA"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IMigratableEntityProxy.sol":{"keccak256":"0x9030ced51ad12e0b3ddaa11bba4a3adcfa29e67b909c46065c14b19d158bb9fd","urls":["bzz-raw://2d859c21510d1a0f06a71abe21dc6424608c1b2e3194a10e4df4cc88c4de9e9f","dweb:/ipfs/QmNi6Buri2oaujc4vTv6bZ5mgMKFsjUmYmQLUNaDCXFEEt"],"license":"MIT"},"src/interfaces/common/IMigratablesFactory.sol":{"keccak256":"0xd4dfe9449bf005dbcbab9e0e85eaaca15a601ff971f34182a0b1832dc4b9d124","urls":["bzz-raw://ff8b73285192a9c64160b008d23a09da33e7164d10a9dc29d1a4464bd9c02be5","dweb:/ipfs/QmZQW2LLV4dQfJ3coENKeycbzXJzi7zdvupsqWA4UV29Gq"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/slasher/IBurner.sol":{"keccak256":"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b","urls":["bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447","dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":80} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"vaultFactory","type":"address","internalType":"address"},{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"slasherFactory","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"DELEGATOR_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"create","inputs":[{"name":"params","type":"tuple","internalType":"struct IVaultConfigurator.InitParams","components":[{"name":"version","type":"uint64","internalType":"uint64"},{"name":"owner","type":"address","internalType":"address"},{"name":"vaultParams","type":"bytes","internalType":"bytes"},{"name":"delegatorIndex","type":"uint64","internalType":"uint64"},{"name":"delegatorParams","type":"bytes","internalType":"bytes"},{"name":"withSlasher","type":"bool","internalType":"bool"},{"name":"slasherIndex","type":"uint64","internalType":"uint64"},{"name":"slasherParams","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"delegator","type":"address","internalType":"address"},{"name":"slasher","type":"address","internalType":"address"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x60e0346100a957601f61078338819003918201601f19168301916001600160401b038311848410176100ad578084926060946040528339810103126100a957610047816100c1565b906100606040610059602084016100c1565b92016100c1565b9160805260a05260c0526040516106ad90816100d682396080518181816101aa015261050a015260a05181818161023301526104c9015260c05181818161038201526104860152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036100a95756fe60806040818152600480361015610014575f80fd5b5f925f3560e01c908163103f2907146104f8575080636da3e06d146104b557806387df0788146104725763c48927e41461004c575f80fd5b346103385760031991602036840181136103385782359067ffffffffffffffff9485831161033857610100809184360301126103385783519081018181108782111761045f57845261009f838601610583565b81526001600160a01b039560248401358781168103610338578383019081526044850135828111610338576100d990883691880101610598565b918684019283526100ec60648701610583565b956060850196875260848101358281116103385761010f908a3691840101610598565b966080860197885260a48201359081151582036103385760a0870191825261013960c48401610583565b9260c0880193845260e481013596858811610338578d8d975f6101648f9b958b8f9736920101610598565b9960e08d019a8b526101a6848b849f511694511695519c519c8d9687958694633ac0491160e01b8652850152602484015260606044840152606483019061060d565b03927f0000000000000000000000000000000000000000000000000000000000000000165af19586156104555791888d8c95938e97955f9a61042e575b50908561022f9251169c515f8b6102008a51938492888401610631565b0398610214601f199a8b8101855284610561565b519e8f94859384926319a211df60e31b9d8e85528401610656565b03927f0000000000000000000000000000000000000000000000000000000000000000165af1998a1561042457908d979695949392915f9b6103f9575b50908995949392915161033c575b5050505050501695863b156103385784516383cd9cc360e01b8152938116868501819052935f81602481838c5af1801561032e5761031b575b50863b1561031757845163555e124b60e11b815291169481018590528681602481838a5af1801561030d576102f5575b50606095508251948552840152820152f35b6102ff8791610539565b61030957856102e3565b8580fd5b84513d89823e3d90fd5b8780fd5b610326919850610539565b5f965f6102b3565b86513d5f823e3d90fd5b5f80fd5b61036893949596985061035c9750511693518a5196879189888401610631565b03908101865285610561565b61037c8851948593849384528b8401610656565b03815f8b7f0000000000000000000000000000000000000000000000000000000000000000165af19081156103ef579087915f916103c2575b5091835f8080808061027a565b6103e29150843d86116103e8575b6103da8183610561565b8101906105ee565b5f6103b5565b503d6103d0565b85513d5f823e3d90fd5b8a9695949392919b5061041890873d89116103e8576103da8183610561565b9a90919293949561026c565b8b513d5f823e3d90fd5b61022f92919a5061044c8791853d87116103e8576103da8183610561565b9a9192506101e3565b8a513d5f823e3d90fd5b604186634e487b7160e01b5f525260245ffd5b8234610338575f36600319011261033857517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b8234610338575f36600319011261033857517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610338575f366003190112610338577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b67ffffffffffffffff811161054d57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761054d57604052565b359067ffffffffffffffff8216820361033857565b81601f820112156103385780359067ffffffffffffffff821161054d57604051926105cd601f8401601f191660200185610561565b8284526020838301011161033857815f926020809301838601378301015290565b9081602091031261033857516001600160a01b03811681036103385790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6001600160a01b0390911681526040602082018190526106539291019061060d565b90565b60409067ffffffffffffffff6106539493168152816020820152019061060d56fea264697066735822122060d3c9df75a621c4d113c39e4aac4a8c1382fc5d24821f7e1bbe3e7376d34ad564736f6c63430008190033","sourceMap":"392:1286:78:-:0;;;;;;;;;;;;;-1:-1:-1;;392:1286:78;;;;-1:-1:-1;;;;;392:1286:78;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;844:28;;;882:36;;928:32;;392:1286;;;;;;;;844:28;392:1286;;;;;;;;;;882:36;392:1286;;;;;;;;;;928:32;392:1286;;;;;;;;;;;;-1:-1:-1;392:1286:78;;;;;;-1:-1:-1;392:1286:78;;;;;-1:-1:-1;392:1286:78;;;;-1:-1:-1;;;;;392:1286:78;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040818152600480361015610014575f80fd5b5f925f3560e01c908163103f2907146104f8575080636da3e06d146104b557806387df0788146104725763c48927e41461004c575f80fd5b346103385760031991602036840181136103385782359067ffffffffffffffff9485831161033857610100809184360301126103385783519081018181108782111761045f57845261009f838601610583565b81526001600160a01b039560248401358781168103610338578383019081526044850135828111610338576100d990883691880101610598565b918684019283526100ec60648701610583565b956060850196875260848101358281116103385761010f908a3691840101610598565b966080860197885260a48201359081151582036103385760a0870191825261013960c48401610583565b9260c0880193845260e481013596858811610338578d8d975f6101648f9b958b8f9736920101610598565b9960e08d019a8b526101a6848b849f511694511695519c519c8d9687958694633ac0491160e01b8652850152602484015260606044840152606483019061060d565b03927f0000000000000000000000000000000000000000000000000000000000000000165af19586156104555791888d8c95938e97955f9a61042e575b50908561022f9251169c515f8b6102008a51938492888401610631565b0398610214601f199a8b8101855284610561565b519e8f94859384926319a211df60e31b9d8e85528401610656565b03927f0000000000000000000000000000000000000000000000000000000000000000165af1998a1561042457908d979695949392915f9b6103f9575b50908995949392915161033c575b5050505050501695863b156103385784516383cd9cc360e01b8152938116868501819052935f81602481838c5af1801561032e5761031b575b50863b1561031757845163555e124b60e11b815291169481018590528681602481838a5af1801561030d576102f5575b50606095508251948552840152820152f35b6102ff8791610539565b61030957856102e3565b8580fd5b84513d89823e3d90fd5b8780fd5b610326919850610539565b5f965f6102b3565b86513d5f823e3d90fd5b5f80fd5b61036893949596985061035c9750511693518a5196879189888401610631565b03908101865285610561565b61037c8851948593849384528b8401610656565b03815f8b7f0000000000000000000000000000000000000000000000000000000000000000165af19081156103ef579087915f916103c2575b5091835f8080808061027a565b6103e29150843d86116103e8575b6103da8183610561565b8101906105ee565b5f6103b5565b503d6103d0565b85513d5f823e3d90fd5b8a9695949392919b5061041890873d89116103e8576103da8183610561565b9a90919293949561026c565b8b513d5f823e3d90fd5b61022f92919a5061044c8791853d87116103e8576103da8183610561565b9a9192506101e3565b8a513d5f823e3d90fd5b604186634e487b7160e01b5f525260245ffd5b8234610338575f36600319011261033857517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b8234610338575f36600319011261033857517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610338575f366003190112610338577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b67ffffffffffffffff811161054d57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761054d57604052565b359067ffffffffffffffff8216820361033857565b81601f820112156103385780359067ffffffffffffffff821161054d57604051926105cd601f8401601f191660200185610561565b8284526020838301011161033857815f926020809301838601378301015290565b9081602091031261033857516001600160a01b03811681036103385790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6001600160a01b0390911681526040602082018190526106539291019061060d565b90565b60409067ffffffffffffffff6106539493168152816020820152019061060d56fea264697066735822122060d3c9df75a621c4d113c39e4aac4a8c1382fc5d24821f7e1bbe3e7376d34ad564736f6c63430008190033","sourceMap":"392:1286:78:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;392:1286:78;;;;;;-1:-1:-1;392:1286:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;392:1286:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;1133:15;;;392:1286;;;;;;1233:18;;392:1286;;;;;;;;;;;;1168:84;;;;392:1286;;;;;;;;;;;;;;;:::i;:::-;1168:84;1181:13;;392:1286;1168:84;;;;;;;;;;;;;;;;392:1286;1168:84;;;392:1286;;;;1287:108;392:1286;;;1371:22;;392:1286;;1353:41;392:1286;;1353:41;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;392:1286;;;;;;;;;;;1287:108;;;;;;;:::i;:::-;;1304:17;;392:1286;1287:108;;;;;;;;;;;;;;;;392:1286;1287:108;;;392:1286;;;;;;;;;;1406:175;;392:1286;;;;;;;;1591:36;;;;;;392:1286;;-1:-1:-1;;;1591:36:78;;392:1286;;;1591:36;;;392:1286;;;;;;;;;1591:36;;;;;;;;;392:1286;1637:32;;;;;;392:1286;;-1:-1:-1;;;1637:32:78;;392:1286;;1637:32;;;392:1286;;;1637:32;392:1286;;;1637:32;;;;;;;;;;392:1286;;;;;;;;;;;;;;;;;1637:32;;;;;:::i;:::-;392:1286;;1637:32;;;392:1286;;;;1637:32;392:1286;;;;;;;;;1637:32;392:1286;;;1591:36;;;;;;:::i;:::-;392:1286;1591:36;;;;;392:1286;;;;;;;;;1591:36;392:1286;;;1406:175;1530:39;392:1286;;;;;;1530:39;392:1286;;;;1548:20;;392:1286;;1530:39;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;1470:100;392:1286;;1470:100;;;;;;;;;;;:::i;:::-;;1485:15;392:1286;1485:15;;392:1286;1470:100;;;;;;;;;;392:1286;1470:100;;;1406:175;1444:126;1406:175;;;;;;;;;1470:100;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;392:1286;;;;;;;;;1287:108;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;392:1286;;;;;;;;;1168:84;1287:108;1168:84;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;392:1286;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;392:1286:78;;;;;703:40;-1:-1:-1;;;;;392:1286:78;;;;;;;;;;;;;-1:-1:-1;;392:1286:78;;;;;600:42;-1:-1:-1;;;;;392:1286:78;;;;;;;;;;;;-1:-1:-1;;392:1286:78;;;;501:38;-1:-1:-1;;;;;392:1286:78;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;1353:41;;392:1286;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;1353:41;392:1286;;-1:-1:-1;;392:1286:78;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;392:1286:78;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;392:1286:78;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;392:1286:78;;;;;;;;-1:-1:-1;;392:1286:78;;;;:::o;:::-;-1:-1:-1;;;;;392:1286:78;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i","linkReferences":{},"immutableReferences":{"59660":[{"start":426,"length":32},{"start":1290,"length":32}],"59663":[{"start":563,"length":32},{"start":1225,"length":32}],"59666":[{"start":898,"length":32},{"start":1158,"length":32}]}},"methodIdentifiers":{"DELEGATOR_FACTORY()":"6da3e06d","SLASHER_FACTORY()":"87df0788","VAULT_FACTORY()":"103f2907","create((uint64,address,bytes,uint64,bytes,bool,uint64,bytes))":"c48927e4"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slasherFactory\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"DELEGATOR_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"vaultParams\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"delegatorIndex\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"delegatorParams\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"withSlasher\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"slasherIndex\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"slasherParams\",\"type\":\"bytes\"}],\"internalType\":\"struct IVaultConfigurator.InitParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"create((uint64,address,bytes,uint64,bytes,bool,uint64,bytes))\":{\"params\":{\"params\":\"initial parameters needed for a vault with a delegator and a slasher deployment\"},\"returns\":{\"delegator\":\"address of the delegator\",\"slasher\":\"address of the slasher\",\"vault\":\"address of the vault\"}}},\"stateVariables\":{\"DELEGATOR_FACTORY\":{\"return\":\"address of the delegator factory\",\"returns\":{\"_0\":\"address of the delegator factory\"}},\"SLASHER_FACTORY\":{\"return\":\"address of the slasher factory\",\"returns\":{\"_0\":\"address of the slasher factory\"}},\"VAULT_FACTORY\":{\"return\":\"address of the vault factory\",\"returns\":{\"_0\":\"address of the vault factory\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DELEGATOR_FACTORY()\":{\"notice\":\"Get the delegator factory's address.\"},\"SLASHER_FACTORY()\":{\"notice\":\"Get the slasher factory's address.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"create((uint64,address,bytes,uint64,bytes,bool,uint64,bytes))\":{\"notice\":\"Create a new vault with a delegator and a slasher.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/VaultConfigurator.sol\":\"VaultConfigurator\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf\",\"dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/proxy/Clones.sol\":{\"keccak256\":\"0xf55d01dac75cffdabec6833a79bf3be0c108fc0db10e273daf7adfd3e9e59dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://540002a50a2a1a2b9dafffb976178e55adbf8d3a28db462c69f996921479c6b0\",\"dweb:/ipfs/QmQNAFyMf2FW3U1giM4Yej3zzd1pnxMtAA5GoADj4hTYYD\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0x0a8a5b994d4c4da9f61d128945cc8c9e60dcbc72bf532f72ae42a48ea90eed9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e63ae15b6b1079b9d3c73913424d4278139f9e9c9658316675b9c48d5883a50d\",\"dweb:/ipfs/QmWLxBYfp8j1YjNMabWgv75ELTaK2eEYEEGx7qsJbxVZZq\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44\",\"dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f\",\"dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/contracts/DelegatorFactory.sol\":{\"keccak256\":\"0x3c3fb62c441302f4f75d94703779f5c4bb755c06f310b4c923dbf24d6e0adda9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://597fa8be7179d8a555bf942c1dea0504273a1d34f6ac4c206fc2e816da143e68\",\"dweb:/ipfs/Qmf54DKNYXC7fTMcAFABw68RC6ZFenVgyAPGhbPTf6s5TR\"]},\"src/contracts/SlasherFactory.sol\":{\"keccak256\":\"0xbafc96e3d2511eb62942613645b4f5cbf6f603063a711b30e25940aaba08064c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://489440f1181b1858e3b27a90ec6f514c0c287c602b4779676048213202165867\",\"dweb:/ipfs/QmRG7AQ9m9qHr8ofEvP1Ur8S379fFXTo9rmiWaAtZ9rsUc\"]},\"src/contracts/VaultConfigurator.sol\":{\"keccak256\":\"0x2484ee5cfac134e27cedeeef22d4111d7ecd4a4b62f02381f2c2b67c57ed7955\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://adce2d9b8a9fb670c0f3266d5407b752901921f1c9f9406c7db65d84e48e779a\",\"dweb:/ipfs/QmTbcKhdGfepqexFc8kziqPdfFC8SGZzFrVnEcJ5nKBiPz\"]},\"src/contracts/VaultFactory.sol\":{\"keccak256\":\"0xa9122dd11e5f21fa97a813e90f8c4905f0a4967b9611dd03437a31377cbdecb8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4c2feda1f9c0c7ddf65bccdc99494e4bfbb820fcddc3e4222e3b58ef821424a3\",\"dweb:/ipfs/Qmdmt4rH214jDmDsF9ELvJXVCt8abhk6poSmhJqqzLse3R\"]},\"src/contracts/common/Entity.sol\":{\"keccak256\":\"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138\",\"dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa\"]},\"src/contracts/common/Factory.sol\":{\"keccak256\":\"0x41764643e6a2a3d80d694a3efee91f50a2fd084fb2bcd13566259443840e6369\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fefc1e2a2189275388826f4f82ca421ca79c2866d3ef39dc2c7df46fe7cbf7c9\",\"dweb:/ipfs/QmSJ4VGmgpYUv5ni4ZYoSV4qMuZrk5DLjyB3Vv9NbFgeNZ\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x303ad40a3de8fa808cc30a6fbd5998633f6a89b982e6db1fa981e0566ab445e7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fa8fb92995ead02798e013190b87b84b44cc68668262f045c9b0b4783940e2bf\",\"dweb:/ipfs/QmV1uKGVLKwWisc714R8fCt71gXUQJpaKvdc6LQ8WtvMpL\"]},\"src/contracts/common/MigratableEntityProxy.sol\":{\"keccak256\":\"0x78ba27242276232ad10a45265e3c07f0a25722456f6abb3fb3f24a1c8e1b38d1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a19623df688e5085036b59fc934e35b72997f875d7ffda1cdc557c6ca468206d\",\"dweb:/ipfs/QmaQiT5uYZu5JmqhMjTDJnsq3nqaHbKrWAjrxKKLesdHV7\"]},\"src/contracts/common/MigratablesFactory.sol\":{\"keccak256\":\"0x5d1487c3456da4bd0bc2a131eeab97ab92484c923edefaebf190cc08d4080093\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fec38d2e52e9c5148e95599c133fd6fe66d41296d6fc06e7329d2db199a1798f\",\"dweb:/ipfs/QmeiaydBXHHkJRUnpaZH1C6JQ7HPocTvQbUJBqKTvUeEYv\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652\",\"dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/contracts/slasher/BaseSlasher.sol\":{\"keccak256\":\"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06\",\"dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x7ee6dbf060c45d6eba95315f4ac0b3b467dd9c4999b84c31d6f66d4d8b53a116\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://301948b8ea522db292aa2722ba42def3911dae95f0b376f7023c3fef470f8676\",\"dweb:/ipfs/QmSDbP2HdzhDAzstr8Zz5isEAcSkma8ABc5UwPsoazaumZ\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/IDelegatorFactory.sol\":{\"keccak256\":\"0x7850453237ca93b301393506d2489a38830a60be0c29f39a4a1aee3508d836e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f418702b883c90e046af92d5654a25849baf79b61c11401ad603b861fed7b80\",\"dweb:/ipfs/Qmdju1XFJXx3uJidzoS7srcoSnzT8jUoPAmGEdbceYgB7j\"]},\"src/interfaces/ISlasherFactory.sol\":{\"keccak256\":\"0x30018af5c2719d9b5cfacbfc0277017896815b3fcc4dfbea78813e6ae81c1e56\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5e028fbed23ab973d8d9eb2be4e53a528dd01248e3233f56ab0f8ac9a7c9c220\",\"dweb:/ipfs/Qmd9cHMRSE52ESmxMiu5gTBpRNmDHQK5q18f7UTj8DQke4\"]},\"src/interfaces/IVaultConfigurator.sol\":{\"keccak256\":\"0x699d9b8c767780c4ea593fe7608bc0b3ef7646f54cea0610ae355f2974658eba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9ac4081f36b477025213f59c489cbb85f904580b145fa9f18ef9a7b794f0fba2\",\"dweb:/ipfs/QmPE3Ep6pTdaeFsJoixeom3NEaQiTe8WHrLoiFEGJo1zx4\"]},\"src/interfaces/IVaultFactory.sol\":{\"keccak256\":\"0x6f658b264fc8d530e458a98d83a09cb55ace4d3e509f0a3e9294471bb1bcf84d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7253435e4e1d1ae19a50d14091ddb254f6a36f296440106bfc094623dd1aeba\",\"dweb:/ipfs/QmbHK9yoQ7Ctf3nuDLmqxTWPYD8cEm1TKXzfxePtE87AQN\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IFactory.sol\":{\"keccak256\":\"0xe835ebda85d181b70874f6eb53f2a892aa3223d23efe247060da9b51d2b8e969\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b3dfb5f0491d90efbc8ed498b45358260ebac6e8f2aa0106b8b8fabdc988cb\",\"dweb:/ipfs/QmWnnCs3xiHeUvYfUWMJTSFZWc34bSYn9Zpm7f7syra3TA\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IMigratableEntityProxy.sol\":{\"keccak256\":\"0x9030ced51ad12e0b3ddaa11bba4a3adcfa29e67b909c46065c14b19d158bb9fd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d859c21510d1a0f06a71abe21dc6424608c1b2e3194a10e4df4cc88c4de9e9f\",\"dweb:/ipfs/QmNi6Buri2oaujc4vTv6bZ5mgMKFsjUmYmQLUNaDCXFEEt\"]},\"src/interfaces/common/IMigratablesFactory.sol\":{\"keccak256\":\"0xd4dfe9449bf005dbcbab9e0e85eaaca15a601ff971f34182a0b1832dc4b9d124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff8b73285192a9c64160b008d23a09da33e7164d10a9dc29d1a4464bd9c02be5\",\"dweb:/ipfs/QmZQW2LLV4dQfJ3coENKeycbzXJzi7zdvupsqWA4UV29Gq\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/slasher/IBurner.sol\":{\"keccak256\":\"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447\",\"dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"vaultFactory","type":"address"},{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"address","name":"slasherFactory","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"DELEGATOR_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct IVaultConfigurator.InitParams","name":"params","type":"tuple","components":[{"internalType":"uint64","name":"version","type":"uint64"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"bytes","name":"vaultParams","type":"bytes"},{"internalType":"uint64","name":"delegatorIndex","type":"uint64"},{"internalType":"bytes","name":"delegatorParams","type":"bytes"},{"internalType":"bool","name":"withSlasher","type":"bool"},{"internalType":"uint64","name":"slasherIndex","type":"uint64"},{"internalType":"bytes","name":"slasherParams","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"create","outputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"address","name":"delegator","type":"address"},{"internalType":"address","name":"slasher","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"create((uint64,address,bytes,uint64,bytes,bool,uint64,bytes))":{"params":{"params":"initial parameters needed for a vault with a delegator and a slasher deployment"},"returns":{"delegator":"address of the delegator","slasher":"address of the slasher","vault":"address of the vault"}}},"version":1},"userdoc":{"kind":"user","methods":{"DELEGATOR_FACTORY()":{"notice":"Get the delegator factory's address."},"SLASHER_FACTORY()":{"notice":"Get the slasher factory's address."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"create((uint64,address,bytes,uint64,bytes,bool,uint64,bytes))":{"notice":"Create a new vault with a delegator and a slasher."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/VaultConfigurator.sol":"VaultConfigurator"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866","urls":["bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf","dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab","urls":["bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89","dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606","urls":["bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1","dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Clones.sol":{"keccak256":"0xf55d01dac75cffdabec6833a79bf3be0c108fc0db10e273daf7adfd3e9e59dae","urls":["bzz-raw://540002a50a2a1a2b9dafffb976178e55adbf8d3a28db462c69f996921479c6b0","dweb:/ipfs/QmQNAFyMf2FW3U1giM4Yej3zzd1pnxMtAA5GoADj4hTYYD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0x0a8a5b994d4c4da9f61d128945cc8c9e60dcbc72bf532f72ae42a48ea90eed9a","urls":["bzz-raw://e63ae15b6b1079b9d3c73913424d4278139f9e9c9658316675b9c48d5883a50d","dweb:/ipfs/QmWLxBYfp8j1YjNMabWgv75ELTaK2eEYEEGx7qsJbxVZZq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f","urls":["bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44","dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212","urls":["bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f","dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/contracts/DelegatorFactory.sol":{"keccak256":"0x3c3fb62c441302f4f75d94703779f5c4bb755c06f310b4c923dbf24d6e0adda9","urls":["bzz-raw://597fa8be7179d8a555bf942c1dea0504273a1d34f6ac4c206fc2e816da143e68","dweb:/ipfs/Qmf54DKNYXC7fTMcAFABw68RC6ZFenVgyAPGhbPTf6s5TR"],"license":"BUSL-1.1"},"src/contracts/SlasherFactory.sol":{"keccak256":"0xbafc96e3d2511eb62942613645b4f5cbf6f603063a711b30e25940aaba08064c","urls":["bzz-raw://489440f1181b1858e3b27a90ec6f514c0c287c602b4779676048213202165867","dweb:/ipfs/QmRG7AQ9m9qHr8ofEvP1Ur8S379fFXTo9rmiWaAtZ9rsUc"],"license":"BUSL-1.1"},"src/contracts/VaultConfigurator.sol":{"keccak256":"0x2484ee5cfac134e27cedeeef22d4111d7ecd4a4b62f02381f2c2b67c57ed7955","urls":["bzz-raw://adce2d9b8a9fb670c0f3266d5407b752901921f1c9f9406c7db65d84e48e779a","dweb:/ipfs/QmTbcKhdGfepqexFc8kziqPdfFC8SGZzFrVnEcJ5nKBiPz"],"license":"BUSL-1.1"},"src/contracts/VaultFactory.sol":{"keccak256":"0xa9122dd11e5f21fa97a813e90f8c4905f0a4967b9611dd03437a31377cbdecb8","urls":["bzz-raw://4c2feda1f9c0c7ddf65bccdc99494e4bfbb820fcddc3e4222e3b58ef821424a3","dweb:/ipfs/Qmdmt4rH214jDmDsF9ELvJXVCt8abhk6poSmhJqqzLse3R"],"license":"BUSL-1.1"},"src/contracts/common/Entity.sol":{"keccak256":"0x3d61a932995b8443381f3950542d388223a2c26dd5d29a3274dea3baa7388bd7","urls":["bzz-raw://7cdf5f03ca72fd263fd32ff59c8d88ddca911ae83896a287d10772c1bbe9b138","dweb:/ipfs/QmbP84r5BWT1Rn9AYTntWSf3xUMTTCohTZJFhbBhDXFoHa"],"license":"BUSL-1.1"},"src/contracts/common/Factory.sol":{"keccak256":"0x41764643e6a2a3d80d694a3efee91f50a2fd084fb2bcd13566259443840e6369","urls":["bzz-raw://fefc1e2a2189275388826f4f82ca421ca79c2866d3ef39dc2c7df46fe7cbf7c9","dweb:/ipfs/QmSJ4VGmgpYUv5ni4ZYoSV4qMuZrk5DLjyB3Vv9NbFgeNZ"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x303ad40a3de8fa808cc30a6fbd5998633f6a89b982e6db1fa981e0566ab445e7","urls":["bzz-raw://fa8fb92995ead02798e013190b87b84b44cc68668262f045c9b0b4783940e2bf","dweb:/ipfs/QmV1uKGVLKwWisc714R8fCt71gXUQJpaKvdc6LQ8WtvMpL"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntityProxy.sol":{"keccak256":"0x78ba27242276232ad10a45265e3c07f0a25722456f6abb3fb3f24a1c8e1b38d1","urls":["bzz-raw://a19623df688e5085036b59fc934e35b72997f875d7ffda1cdc557c6ca468206d","dweb:/ipfs/QmaQiT5uYZu5JmqhMjTDJnsq3nqaHbKrWAjrxKKLesdHV7"],"license":"BUSL-1.1"},"src/contracts/common/MigratablesFactory.sol":{"keccak256":"0x5d1487c3456da4bd0bc2a131eeab97ab92484c923edefaebf190cc08d4080093","urls":["bzz-raw://fec38d2e52e9c5148e95599c133fd6fe66d41296d6fc06e7329d2db199a1798f","dweb:/ipfs/QmeiaydBXHHkJRUnpaZH1C6JQ7HPocTvQbUJBqKTvUeEYv"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889","urls":["bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652","dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/contracts/slasher/BaseSlasher.sol":{"keccak256":"0x190e5dce196a061bdad42468c52e9f5b0eb7810cd7d0c19f04d6a2e94984f1b6","urls":["bzz-raw://07ca08d0cd43c2fe5d54a5577f6bdd522ced410f5d3a52e764deaa7ba26b5f06","dweb:/ipfs/QmZe3PiMKBQKWcwodaLupragdqxPjgS4v1qMC7RXau8hDF"],"license":"BUSL-1.1"},"src/contracts/vault/Vault.sol":{"keccak256":"0x7ee6dbf060c45d6eba95315f4ac0b3b467dd9c4999b84c31d6f66d4d8b53a116","urls":["bzz-raw://301948b8ea522db292aa2722ba42def3911dae95f0b376f7023c3fef470f8676","dweb:/ipfs/QmSDbP2HdzhDAzstr8Zz5isEAcSkma8ABc5UwPsoazaumZ"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/IDelegatorFactory.sol":{"keccak256":"0x7850453237ca93b301393506d2489a38830a60be0c29f39a4a1aee3508d836e6","urls":["bzz-raw://8f418702b883c90e046af92d5654a25849baf79b61c11401ad603b861fed7b80","dweb:/ipfs/Qmdju1XFJXx3uJidzoS7srcoSnzT8jUoPAmGEdbceYgB7j"],"license":"MIT"},"src/interfaces/ISlasherFactory.sol":{"keccak256":"0x30018af5c2719d9b5cfacbfc0277017896815b3fcc4dfbea78813e6ae81c1e56","urls":["bzz-raw://5e028fbed23ab973d8d9eb2be4e53a528dd01248e3233f56ab0f8ac9a7c9c220","dweb:/ipfs/Qmd9cHMRSE52ESmxMiu5gTBpRNmDHQK5q18f7UTj8DQke4"],"license":"MIT"},"src/interfaces/IVaultConfigurator.sol":{"keccak256":"0x699d9b8c767780c4ea593fe7608bc0b3ef7646f54cea0610ae355f2974658eba","urls":["bzz-raw://9ac4081f36b477025213f59c489cbb85f904580b145fa9f18ef9a7b794f0fba2","dweb:/ipfs/QmPE3Ep6pTdaeFsJoixeom3NEaQiTe8WHrLoiFEGJo1zx4"],"license":"MIT"},"src/interfaces/IVaultFactory.sol":{"keccak256":"0x6f658b264fc8d530e458a98d83a09cb55ace4d3e509f0a3e9294471bb1bcf84d","urls":["bzz-raw://a7253435e4e1d1ae19a50d14091ddb254f6a36f296440106bfc094623dd1aeba","dweb:/ipfs/QmbHK9yoQ7Ctf3nuDLmqxTWPYD8cEm1TKXzfxePtE87AQN"],"license":"MIT"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IFactory.sol":{"keccak256":"0xe835ebda85d181b70874f6eb53f2a892aa3223d23efe247060da9b51d2b8e969","urls":["bzz-raw://48b3dfb5f0491d90efbc8ed498b45358260ebac6e8f2aa0106b8b8fabdc988cb","dweb:/ipfs/QmWnnCs3xiHeUvYfUWMJTSFZWc34bSYn9Zpm7f7syra3TA"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IMigratableEntityProxy.sol":{"keccak256":"0x9030ced51ad12e0b3ddaa11bba4a3adcfa29e67b909c46065c14b19d158bb9fd","urls":["bzz-raw://2d859c21510d1a0f06a71abe21dc6424608c1b2e3194a10e4df4cc88c4de9e9f","dweb:/ipfs/QmNi6Buri2oaujc4vTv6bZ5mgMKFsjUmYmQLUNaDCXFEEt"],"license":"MIT"},"src/interfaces/common/IMigratablesFactory.sol":{"keccak256":"0xd4dfe9449bf005dbcbab9e0e85eaaca15a601ff971f34182a0b1832dc4b9d124","urls":["bzz-raw://ff8b73285192a9c64160b008d23a09da33e7164d10a9dc29d1a4464bd9c02be5","dweb:/ipfs/QmZQW2LLV4dQfJ3coENKeycbzXJzi7zdvupsqWA4UV29Gq"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/slasher/IBurner.sol":{"keccak256":"0xaf495dacc19ae0b3c787ba8021c5944927d70261536addd234d7dab146158c2b","urls":["bzz-raw://9b3cc66251008be6ff9fc8b11ecc6831d5a9dca49a3fe9817fcd970253c1d447","dweb:/ipfs/QmVxfb9ALGdF9W3SN2h41gQbUct6tawvu5bw4K89kFQ4HW"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":78} \ No newline at end of file diff --git a/out/VaultHints.sol/VaultHints.json b/out/VaultHints.sol/VaultHints.json index 0d64e23b..8e37fa1f 100644 --- a/out/VaultHints.sol/VaultHints.json +++ b/out/VaultHints.sol/VaultHints.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DELEGATOR_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEPOSITOR_WHITELIST_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOfHints","inputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"activeShares","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesHint","inputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"activeSharesHintInternal","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOfHint","inputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOfHintInternal","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"activeStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStakeAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStakeHint","inputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"activeStakeHintInternal","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"burner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimBatch","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epochs","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"currentEpoch","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"currentEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"delegator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"onBehalfOf","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"depositedAmount","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"depositLimit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"depositWhitelist","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"epochAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"epochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"epochDurationInit","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialVersion","type":"uint64","internalType":"uint64"},{"name":"owner_","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isDelegatorInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositLimit","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositorWhitelisted","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSlasherInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isWithdrawalsClaimed","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"migrate","inputs":[{"name":"newVersion","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nextEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"previousEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"redeem","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"withdrawnAssets","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegator","inputs":[{"name":"delegator_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositLimit","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositWhitelist","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setIsDepositLimit","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSlasher","inputs":[{"name":"slasher_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slashableBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slasher","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"totalStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"burnedShares","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawalShares","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalSharesOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawals","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalsOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"Claim","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epoch","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ClaimBatch","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epochs","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"onBehalfOf","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"slashedAmount","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":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDelegator","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDepositLimit","inputs":[{"name":"limit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetDepositWhitelist","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetIsDepositLimit","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetSlasher","inputs":[{"name":"slasher","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"withdrawer","type":"address","indexed":true,"internalType":"address"},{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"burnedShares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"mintedShares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadyClaimed","inputs":[]},{"type":"error","name":"AlreadyInitialized","inputs":[]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DelegatorAlreadyInitialized","inputs":[]},{"type":"error","name":"DepositLimitReached","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientClaim","inputs":[]},{"type":"error","name":"InsufficientDeposit","inputs":[]},{"type":"error","name":"InsufficientRedemption","inputs":[]},{"type":"error","name":"InsufficientWithdrawal","inputs":[]},{"type":"error","name":"InvalidAccount","inputs":[]},{"type":"error","name":"InvalidCaptureEpoch","inputs":[]},{"type":"error","name":"InvalidClaimer","inputs":[]},{"type":"error","name":"InvalidCollateral","inputs":[]},{"type":"error","name":"InvalidDelegator","inputs":[]},{"type":"error","name":"InvalidEpoch","inputs":[]},{"type":"error","name":"InvalidEpochDuration","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidLengthEpochs","inputs":[]},{"type":"error","name":"InvalidOnBehalfOf","inputs":[]},{"type":"error","name":"InvalidRecipient","inputs":[]},{"type":"error","name":"InvalidSlasher","inputs":[]},{"type":"error","name":"InvalidTimestamp","inputs":[]},{"type":"error","name":"MissingRoles","inputs":[]},{"type":"error","name":"NoPreviousEpoch","inputs":[]},{"type":"error","name":"NotDelegator","inputs":[]},{"type":"error","name":"NotFactory","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotWhitelistedDepositor","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SlasherAlreadyInitialized","inputs":[]},{"type":"error","name":"TooMuchRedeem","inputs":[]},{"type":"error","name":"TooMuchWithdraw","inputs":[]}],"bytecode":{"object":"0x610100806040523461011057306080525f60a0525f60c0527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c1661010157506001600160401b036002600160401b0319828216016100bc575b5f60e0526040516150ea908161011582396080518181816110590152818161133101526123a5015260a05181818161137d01526118ca015260c051818181611a330152611ee3015260e0518181816107e00152610a2e0152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8080610062565b63f92ee8a960e01b8152600490fd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104a45780631415519b1461049f5780631b66c9e11461049a5780631e9a695014610495578063248a9ca31461049057806327810b6e1461048b578063281f5752146104865780632abe3048146104815780632d73c69c1461047c5780632dd31000146104775780632f2ff15d1461047257806336568abe1461046d578063392e53cd146104685780634105a7dd14610463578063463616711461045e57806347e7ef241461045957806348d3b775146104545780634ff0876a1461044f57806350861adc1461044a57806350f22068146104455780635346e34f1461044057806354fd4d501461043b57806355a2c6721461043657806357ec83cc1461043157806359f769a91461042c5780635cc070761461042757806361a8c8c41461042257806364b03fdc1461041d57806367567add146104185780636da3e06d146104135780636ec1e3f81461040e578063715018a6146104095780637278e31c1461040457806373790ab3146103ff57806376671808146103fa578063794b15b7146103f55780637953b33b146103f05780637c04c80a146103eb578063810da75d146103e65780638326056f146103e157806383cd9cc3146103dc57806387df0788146103d75780638b0e9f3f146103d25780638da5cb5b146103cd57806391d14854146103c85780639d66201b146103c35780639f86fd85146103be578063a1b12202146103b9578063a217fddf146103b4578063a21a1df9146103af578063a2861466146103aa578063a3b54172146103a5578063a5d03223146103a0578063aabc24961461039b578063aad3ec9614610396578063afba70ad14610391578063b13442711461038c578063bd49c35f14610387578063bdc8144b14610382578063bfefcd7b1461037d578063c31e8dd714610378578063ce9b793014610373578063d547741f1461036e578063d8dfeb4514610369578063db38871514610364578063de4997161461035f578063eb5562381461035a578063ecf7085814610355578063efb559d614610350578063f2fde38b1461034b578063f3fef3a314610346578063f5e7ee0f146103415763f9e1bf6c1461033c575f80fd5b61264a565b612620565b61257a565b61254d565b6123fe565b6123e1565b61238d565b612373565b612307565b6122dc565b612290565b612268565b6121fe565b6121e4565b612106565b6120ec565b6120c4565b61209a565b611fd9565b611e22565b611ddc565b611d8f565b611c9c565b611c62565b611c48565b611c24565b611b90565b611b56565b611af8565b611ac4565b611a62565b611a1e565b611865565b61184b565b611832565b6117cc565b6117a5565b611765565b61174b565b61170a565b611438565b6113d1565b6113ac565b611368565b611312565b6112e4565b611248565b61121e565b6111f7565b6110bf565b61103a565b611008565b610f73565b610f5a565b610efd565b610edd565b610ebc565b610bfe565b610bd6565b610b3b565b610af6565b610aab565b610a5d565b610a19565b6109a5565b61079b565b6106cd565b6106a5565b61066c565b610583565b610538565b6104fe565b346104fa5760203660031901126104fa5760043563ffffffff60e01b81168091036104fa57602090637965db0b60e01b81149081156104e9575b506040519015158152f35b6301ffc9a760e01b1490505f6104de565b5f80fd5b346104fa575f3660031901126104fa5760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b346104fa575f3660031901126104fa5760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b6001600160a01b038116036104fa57565b346104fa5760403660031901126104fa576004356105a081610572565b602435906105ac61307e565b6001600160a01b0381161561065b57335f908152600e602052604090206105d79061447f565b61447f565b8211610649576105f76105e8614392565b6105f061440b565b90846144c2565b9182156106345782610608926130ad565b9061061f60015f8051602061507583398151915255565b604080519182526020820192909252f35b0390f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b346104fa5760203660031901126104fa576004355f525f805160206150558339815191526020526020600160405f200154604051908152f35b346104fa575f3660031901126104fa576001546040516001600160a01b039091168152602090f35b346104fa575f3660031901126104fa576106e5612c64565b80156107465760015465ffffffffffff8160a01c16915f198101908111610741576107139160d01c90612693565b81018091116107415761072861063091613227565b60405165ffffffffffff90911681529081906020820190565b612664565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b03821682036104fa57565b9181601f840112156104fa578235916001600160401b0383116104fa57602083818601950101116104fa57565b346104fa5760403660031901126104fa576107b4610758565b6001600160401b036024358181116104fa576107d490369060040161076e565b50506107de61307e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361085a575f80516020615095833981519152549060ff8260401c1692831561084a575b505050610838575f80fd5b60405163f92ee8a960e01b8152600490fd5b81169116101590505f808061082d565b604051631966391b60e11b8152600490fd5b65ffffffffffff8116036104fa57565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b038211176108ab57604052565b61087c565b604081019081106001600160401b038211176108ab57604052565b608081019081106001600160401b038211176108ab57604052565b90601f801991011681019081106001600160401b038211176108ab57604052565b6040519061016082018281106001600160401b038211176108ab57604052565b60405190610934826108b0565b565b6001600160401b0381116108ab57601f01601f191660200190565b92919261095d82610936565b9161096b60405193846108e6565b8294818452818301116104fa578281602093845f960137010152565b9080601f830112156104fa578160206109a293359101610951565b90565b346104fa5760603660031901126104fa576004356109c281610572565b602435906109cf8261086c565b604435906001600160401b0382116104fa576020926109f5610a11933690600401610987565b6001600160a01b039092165f908152600e85526040902061340c565b604051908152f35b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa5760403660031901126104fa57610aa9602435600435610a8082610572565b805f525f80516020615055833981519152602052610aa4600160405f2001546135e3565b6138e3565b005b346104fa5760403660031901126104fa57602435610ac881610572565b336001600160a01b03821603610ae457610aa990600435613919565b60405163334bd91960e11b8152600490fd5b346104fa575f3660031901126104fa5760ff60025460a01c1680610b22575b6020906040519015158152f35b5060035460a01c60ff16610b15565b801515036104fa57565b346104fa5760203660031901126104fa57600435610b5881610b31565b610b6061307e565b610b686134d8565b5f54901515908160ff8216151514610bc45760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f8051602061507583398151915255005b60405163a741a04560e01b8152600490fd5b346104fa575f3660031901126104fa57602065ffffffffffff60015460a01c16604051908152f35b346104fa576040806003193601126104fa576004803591610c1e83610572565b610c2661307e565b6001600160a01b0391838316908115610eae575f5460ff811680610e95575b610e865783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610e5e575f93610e63575b50610c9a9060243590309033906139ab565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610e5e57610cd9935f92610e31575b5050612686565b938415610e225760081c60ff1680610e0d575b610dff57509061063091610d9d610d01614392565b95610d4a610d0d61440b565b610d35610d1b8a838b6144c2565b99610d2f8a610d2942613227565b926126b4565b90613aff565b5050610d4489610d2942613227565b90613bdf565b50506001600160a01b0381165f908152600e6020526040902090610d9788610d926105d2610d7742613227565b6001600160a01b039095165f908152600e6020526040902090565b6126b4565b91613cbb565b505081518481526020810186905233907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a3610de960015f8051602061507583398151915255565b5191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50610e1a84610d92614392565b815410610cec565b50825163070f6eed60e11b8152fd5b610e509250803d10610e57575b610e4881836108e6565b8101906126e2565b5f80610cd2565b503d610e3e565b6126f1565b610c9a919350610e7f90853d8711610e5757610e4881836108e6565b9290610c88565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610c45565b8251630d534ce360e11b8152fd5b346104fa575f3660031901126104fa57602060ff5f54166040519015158152f35b346104fa575f3660031901126104fa57602060015460d01c604051908152f35b346104fa575f3660031901126104fa57602060ff60025460a01c166040519015158152f35b9060406003198301126104fa57600435610f3b8161086c565b91602435906001600160401b0382116104fa576109a291600401610987565b346104fa576020610a11610f6d36610f22565b90613282565b346104fa5760203660031901126104fa57600435610f9081610b31565b610f9861307e565b610fa0613535565b5f54901515908160ff8260081c16151514610bc45761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610aa960015f8051602061507583398151915255565b346104fa575f3660031901126104fa5760206001600160401b035f805160206150958339815191525416604051908152f35b346104fa5760203660031901126104fa576004356110578161086c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036110ad5761109090613d9d565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b346104fa5760603660031901126104fa576110d8610758565b6024356110e481610572565b6001600160401b03916044358381116104fa5761110590369060040161076e565b5f805160206150958339815191529491855494838616806111e65760ff8760401c169081156111d9575b50610838577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966111d49661119c958716906001600160401b0319161790556111975f80516020615095833981519152600160401b68ff000000000000000019825416179055565b6126fc565b5f80516020615095833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f61112f565b60405162dc149f60e41b8152600490fd5b346104fa5760203660031901126104fa576020610a1160043561121981610572565b612b1c565b346104fa5760203660031901126104fa576004355f526006602052602060405f2054604051908152f35b346104fa575f3660031901126104fa5760015465ffffffffffff61127e818360a01c1692611274612c64565b9060d01c90612693565b820180921161074157611292602092613227565b60405191168152f35b60409060031901126104fa576004356112b381610572565b906024356109a28161086c565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346104fa576106306112fe6112f83661129b565b90612baa565b6040519182916020835260208301906112c0565b346104fa5760203660031901126104fa5760043561132f8161086c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036110ad5761109090613ea2565b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa575f3660031901126104fa57602060ff60035460a01c166040519015158152f35b346104fa575f3660031901126104fa576113e96141e9565b5f80516020614ff583398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346104fa5760403660031901126104fa576004356024356114588161086c565b61146061307e565b60035461147d906001600160a01b03165b6001600160a01b031690565b33036116f85761148b612c64565b9061149581612c98565b90821515806116e7575b80156116de575b6116cc57610630937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c7926114d8614392565b946114f36114e5826126a6565b5f52600660205260405f2090565b54908281036115e6575061150781876126b4565b83811881851002811896878061159f575b50505050505b8361156b575b6040805191825265ffffffffffff929092166020820152908101839052606090a161155b60015f8051602061507583398151915255565b6040519081529081906020820190565b5f5461159a9085906115889060101c6001600160a01b0316611471565b6001546001600160a01b0316906142b8565b611524565b6115db93610cd283610d2f6115c56115be6114e5986115d5988861422b565b8096612686565b946115cf42613227565b92612686565b926126a6565b555f80808087611518565b91506115fa825f52600660205260405f2090565b549061160a81610d92848a6126b4565b908482188286100282189788611625575b505050505061151e565b61169a938361164d9361165a8c61165561164361168b99888461422b565b978895858461422b565b948592612686565b612686565b938484106116a5575b610cd290610d2f6116799596976115cf42613227565b6116856114e5876126a6565b55612686565b915f52600660205260405f2090565b555f8080808061161b565b916116c1610cd2916116bb866116799798612686565b906126b4565b859450929050611663565b604051635e18d2a560e01b8152600490fd5b508282116114a6565b506116f183612678565b821061149f565b60405163dabc4ad960e01b8152600490fd5b346104fa575f3660031901126104fa5760015465ffffffffffff808260a01c1691611733612c64565b600181018091116107415761127e9160d01c90612693565b346104fa575f3660031901126104fa576020610a11612c64565b346104fa5760203660031901126104fa5760043561178281610572565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b346104fa5760203660031901126104fa576020610a116004356117c78161086c565b612c98565b346104fa5760403660031901126104fa576004356117e981610572565b6024356001600160401b038082116104fa57366023830112156104fa5781600401359081116104fa573660248260051b840101116104fa5761063092602461155b930190612cd3565b346104fa576020610a1161184536610f22565b90613357565b346104fa576106306112fe61185f3661129b565b90612e01565b346104fa576020806003193601126104fa57600480359061188582610572565b61188d61307e565b60025460a01c60ff16611a0f576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610e5e575f916119e2575b50156119d25760405163fbfa77cf60e01b8152838516949082818581895afa928315610e5e575f936119a3575b5050309116036119945750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610aa960015f8051602061507583398151915255565b60405163b9f0f17160e01b8152fd5b6119c3929350803d106119cb575b6119bb81836108e6565b810190612e58565b905f80611927565b503d6119b1565b506040516324e5af8d60e21b8152fd5b611a029150823d8411611a08575b6119fa81836108e6565b810190612e38565b5f6118fa565b503d6119f0565b604051631380833b60e01b8152fd5b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa575f3660031901126104fa57611a7a612c64565b611a82614392565b90805f52600660205260405f205482018092116107415760018101809111610741575f52600660205260405f2054810180911161074157602090604051908152f35b346104fa575f3660031901126104fa575f80516020614ff5833981519152546040516001600160a01b039091168152602090f35b346104fa5760403660031901126104fa57602060ff611b4a602435611b1c81610572565b6004355f525f80516020615055833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346104fa5760203660031901126104fa57600435611b7381610572565b60018060a01b03165f52600e6020526020610a1160405f2061447f565b346104fa5760403660031901126104fa57600435611bad81610572565b6024356001600160401b0381116104fa575f91611bcf8392369060040161076e565b90816040519283928337810184815203915af4611c1c611bed612e6d565b91611c0e6040519384921515602084015260408084015260608301906112c0565b03601f1981018352826108e6565b805190602001fd5b346104fa575f3660031901126104fa57602060ff5f5460081c166040519015158152f35b346104fa575f3660031901126104fa5760206040515f8152f35b346104fa575f3660031901126104fa5760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b346104fa5760403660031901126104fa57600435611cb981610572565b602435611cc581610b31565b611ccd61307e565b611cd561358c565b6001600160a01b038216918215611d7d575f8381526005602052604090205460ff16151582151514610bc4576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a6291611d6491611d52908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610aa960015f8051602061507583398151915255565b604051630da30f6560e31b8152600490fd5b346104fa5760403660031901126104fa576020611dd3602435611db181610572565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b346104fa5760403660031901126104fa57602060ff611b4a602435611e0081610572565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b346104fa576020806003193601126104fa576004803590611e4282610572565b611e4a61307e565b60035460a01c60ff16611fca576001600160a01b03828116939084611eb8575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610aa960015f8051602061507583398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610e5e575f91611fad575b5015611f9c5760405163fbfa77cf60e01b815282818581895afa928315610e5e575f93611f7d575b505030911603611f6e5750600380546001600160a01b0319166001600160a01b039092169190911790555f808080611e6a565b604051633f3e089160e21b8152fd5b611f94929350803d106119cb576119bb81836108e6565b905f80611f3b565b60405163dabc4ad960e01b81528390fd5b611fc49150833d8511611a08576119fa81836108e6565b5f611f13565b60405163703fe2e560e01b8152fd5b346104fa5760403660031901126104fa57600435611ff681610572565b6024359061200261307e565b6001600160a01b03918183169081156120885761203361063094612025836142f6565b9485915f5460101c166142b8565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f80516020615075833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b346104fa5760203660031901126104fa576004355f526007602052602060405f2054604051908152f35b346104fa575f3660031901126104fa576003546040516001600160a01b039091168152602090f35b346104fa575f3660031901126104fa576020610a11614392565b346104fa5760203660031901126104fa5760043561212261307e565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff16156121c657508060045414610bc4576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f8051602061507583398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346104fa575f3660031901126104fa576020610a1161440b565b346104fa5760203660031901126104fa5760043561221b81610572565b612223612c64565b61222c82612b1c565b916122378183612f57565b830180931161074157600182018092116107415761225491612f57565b810180911161074157602090604051908152f35b346104fa575f3660031901126104fa576002546040516001600160a01b039091168152602090f35b346104fa5760403660031901126104fa57610aa96024356004356122b382610572565b805f525f805160206150558339815191526020526122d7600160405f2001546135e3565b613919565b346104fa575f3660031901126104fa575f5460405160109190911c6001600160a01b03168152602090f35b346104fa575f3660031901126104fa5760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b60609060031901126104fa5760043561235981610572565b9060243561236681610572565b906044356109a28161086c565b346104fa576106306112fe61238736612341565b91612e9c565b346104fa5761239b3661129b565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811633036110ad5761109092165f52600e60205260405f20613f68565b346104fa575f3660031901126104fa576020600454604051908152f35b346104fa5760603660031901126104fa5760043561241b81610572565b602435906124288261086c565b6001600160401b03916044358381116104fa5761244990369060040161076e565b9092604093845161245981610890565b606081526060602082015260608682015292806124b8575b610630866124a987876124a361248a89848451916126c1565b928561249a602085015183613357565b93015190613282565b916144c2565b90519081529081906020820190565b81019392506020818503126104fa578035908682116104fa5701926060848203126104fa578451956124e987610890565b84358181116104fa57826124fe918701610987565b875260208501358181116104fa5782612518918701610987565b6020880152858501359081116104fa57610630966125416124a39361248a936124a99801610987565b87820152939450612471565b346104fa5760203660031901126104fa57610aa960043561256d81610572565b6125756141e9565b612ee6565b346104fa5760403660031901126104fa5760043561259781610572565b6024356125a261307e565b6001600160a01b0382161561065b57801561260e576125d16125c261440b565b6125ca614392565b90836148c9565b335f908152600e602052604090209092906125eb9061447f565b83116125fc576106089183916130ad565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b346104fa5760403660031901126104fa576020610a1160243561264281610572565b600435612f57565b346104fa576106306112fe61265e36612341565b91612fb5565b634e487b7160e01b5f52601160045260245ffd5b5f1981019190821161074157565b9190820391821161074157565b8181029291811591840414171561074157565b906001820180921161074157565b9190820180921161074157565b6001600160a01b03165f908152600e602052604090206109a292919061340c565b908160209103126104fa575190565b6040513d5f823e3d90fd5b9161274e9161273f9161270d614c44565b612715614c44565b60015f80516020615075833981519152556001600160a01b0394808616612b02575b503691610951565b60208082518301019101614052565b805182166001600160a01b031615612af057604080820165ffffffffffff61277c825165ffffffffffff1690565b1615612adf5760c08301805190929061279d906001600160a01b0316611471565b15612990575b50916128dc6101409261287b61285661293a966127f16127c9875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b0390921691909117905561284a61282142613227565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b5165ffffffffffff1690565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b61289b61288b6060850151151590565b60ff80195f541691151516175f55565b6128c26128ab6080850151151590565b61ff005f5491151560081b169061ff001916175f55565b6128cf60a0840151600455565b516001600160a01b031690565b848116612980575b5060e08101516001600160a01b0316848116612970575b506101008101516001600160a01b0316848116612960575b506101208101516001600160a01b0316848116612950575b5001516001600160a01b031690565b9081166129445750565b61294d90613874565b50565b61295990613805565b505f61292b565b61296990613796565b505f612913565b612979906136c0565b505f6128fb565b6129899061360f565b505f6128e4565b60e08401516129a7906001600160a01b0316611471565b15612a7c575b6101208401516129c5906001600160a01b0316611471565b6127a357608084015115612a325760a08401511580612a13575b612a035750916128dc6101409261287b61285661293a965b949650505092506127a3565b5163183c854560e21b8152600490fd5b50610140840151612a2c906001600160a01b0316611471565b156129df565b60a084015115801590612a5c575b612a035750916128dc6101409261287b61285661293a966129f7565b50610140840151612a75906001600160a01b0316611471565b1515612a40565b606084015115612ab257610100840151612a9e906001600160a01b0316611471565b6129ad575163183c854560e21b8152600490fd5b610100840151612aca906001600160a01b0316611471565b156129ad575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b612b1690612b0e614c44565b612575614c44565b5f612737565b6001600160a01b03165f908152600e60205260409020612b3b9061447f565b612b43614392565b612b4b61440b565b90600181018091116107415760018201809211610741576109a29261422b565b519061093482610b31565b519063ffffffff821682036104fa57565b91908260409103126104fa576109a260208351612ba381610b31565b9301612b76565b9190612be6612bf59160609465ffffffffffff604051926367567add60e01b602085015216602483015260248252612be182610890565b61411b565b60208082518301019101612b87565b90612bfd5750565b90915063ffffffff60405191166020820152602081526109a2816108b0565b65ffffffffffff918216908216039190821161074157565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff809116918215612c5f57160490565b612c34565b612c6d42613227565b612c94600154612c8a65ffffffffffff93848360a01c1690612c1c565b9060d01c90612c48565b1690565b6001549065ffffffffffff91828160a01c16918284821610612cc157612c9492612c8a91612c1c565b60405163b7d0949760e01b8152600490fd5b90612cdc61307e565b5f926001600160a01b038316928315612088578115612d94575f5b828110612d7257505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d279286929091612d47918491612d429060101c6001600160a01b0316611471565b6142b8565b612d58604051928392339684612dcf565b0390a39061093460015f8051602061507583398151915255565b94612d8d6001916116bb612d87898789612dba565b356142f6565b9501612cf7565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612dca5760051b0190565b612da6565b604080825281018390529392916001600160fb1b0381116104fa5760209160609160051b809183880137850101930152565b9190612be6612bf59160609465ffffffffffff60405192632ad1633960e11b602085015216602483015260248252612be182610890565b908160209103126104fa57516109a281610b31565b519061093482610572565b908160209103126104fa57516109a281610572565b3d15612e97573d90612e7e82610936565b91612e8c60405193846108e6565b82523d5f602084013e565b606090565b604051631d6aac4760e31b60208201526001600160a01b03909216602483015265ffffffffffff909216604480830191909152815260609291612bf591612be691612be1826108cb565b6001600160a01b03908116908115612f3f575f80516020614ff583398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612f7d90825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116107415760018201809211610741576109a29261422b565b92919092612fda612fc98360609684612e9c565b92612fd48184612baa565b92612e01565b90825115801590613074575b801561306a575b612ff657505050565b6130439394506109a29291611c0e916040519361301285610890565b84526020840190815260408401918252613059604051968795602080880152516060604088015260a08701906112c0565b915191603f1992838783030160608801526112c0565b9151908483030160808501526112c0565b5081511515612fed565b5080511515612fe6565b5f80516020615075833981519152600281541461309b5760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e60205260409020939291906130c842613227565b335f908152600e602052604090206130df9061447f565b918483039283116107415761311a7febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f9385936131a599613cbb565b505061313461312842613227565b610d448761165561440b565b505061314e61314242613227565b610d2f84611655614392565b50506131f3816131de613167613162612c64565b6126a6565b6131bd61317c825f52600660205260405f2090565b5461318f835f52600760205260405f2090565b5461319b82828b6144c2565b9d8e998a936126b4565b6131b7855f52600660205260405f2090565b556126b4565b6131cf825f52600760205260405f2090565b555f52600860205260405f2090565b9060018060a01b03165f5260205260405f2090565b6131fe8382546126b4565b9055604080519485526020850195909552938301526001600160a01b03909216913391606090a3565b65ffffffffffff9081811161323a571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b908160209103126104fa576109a290612b76565b90600163ffffffff8093160191821161074157565b9080511561334d578060208061329d93518301019101613259565b6132a681614707565b906132b7825165ffffffffffff1690565b9065ffffffffffff808516921682811461334157821191826132ed575b50506132e457506109a2906144e3565b60209150015190565b9091506132fb600a54612678565b63ffffffff831614918215613314575b50505f806132d4565b61333991925061284a61332961332e9261326d565b614707565b65ffffffffffff1690565b115f8061330b565b50505060209150015190565b506109a2906144e3565b90805115613402578060208061337293518301019101613259565b61337b8161478c565b9061338c825165ffffffffffff1690565b9065ffffffffffff808516921682811461334157821191826133b9575b50506132e457506109a290614594565b9091506133c7600c54612678565b63ffffffff8316149182156133e0575b50505f806133a9565b6133fa91925061284a6133f561332e9261326d565b61478c565b115f806133d7565b506109a290614594565b918051156134ce578060208061342793518301019101613259565b916134328382614807565b92613443845165ffffffffffff1690565b9065ffffffffffff80851692168281146134c25782119182613479575b5050613470576109a2925061463e565b50506020015190565b9091506134868354612678565b63ffffffff83161491821561349f575b50505f80613460565b6134ba91925061284a6134b461332e9261326d565b85614807565b115f80613496565b50505050506020015190565b506109a29161463e565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b5416156121c65750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff9061352b565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff9061352b565b5f8181525f8051602061505583398151915260209081526040808320338452909152902060ff9061352b565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206150558339815191529060ff166136ba575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f805160206150558339815191529060ff905b541661378f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f805160206150558339815191529060ff9061372b565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f805160206150558339815191529060ff9061372b565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f805160206150558339815191529060ff9061372b565b5f8181525f80516020615055833981519152602081815260408084206001600160a01b038716855290915290912060ff9061372b565b5f8181525f80516020615055833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561378f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b038411176108ab576109349260405261486f565b600b54811015612dca57600b5f525f8051602061503583398151915201905f90565b600d54811015612dca57600d5f525f8051602061501583398151915201905f90565b8054821015612dca575f5260205f2001905f90565b600d54600160401b8110156108ab576001810180600d55811015612dca57600d5f525f805160206150158339815191520155565b600b54600160401b8110156108ab576001810180600b55811015612dca57600b5f525f805160206150358339815191520155565b90815491600160401b8310156108ab5782613ae791600161093495018155613a47565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613baa575b50613b17614902565b50929091815492613b26614392565b9481613b95575b5015613b7257505f1982018281116107415781541115612dca575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613b86926001600160d01b03169150614d8b565b5050613b9183613a5c565b9190565b65ffffffffffff83811691161490505f613b2d565b600160401b8110156108ab5760018101808455811015612dca575f908382525f8051602061501583398151915201555f613b0e565b919091600b9081548015613c86575b50613bf7614957565b50929091815492613c0661440b565b9481613c71575b5015613c5257505f1982018281116107415781541115612dca575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b613c66926001600160d01b03169150614e5b565b5050613b9183613a90565b65ffffffffffff83811691161490505f613c0d565b600160401b8110156108ab5760018101808455811015612dca575f908382525f8051602061503583398151915201555f613bee565b90929192600182019081548015613d49575b5084613cd8846149ac565b50949092845493613ce88361447f565b9681613d34575b5015613d11575050505f19810190811161074157613ae78591613b9193613a47565b613b91949293613d2d926001600160d01b039091169190614efa565b5050613ac4565b65ffffffffffff83811691161490505f613cef565b600160401b8110156108ab57806001613d659201845583613a47565b8154905f199060031b1b191690555f613ccd565b90604051613d86816108b0565b915465ffffffffffff8116835260301c6020830152565b600a54905f829160058411613e48575b613db79350614b10565b8015613e3d57613de7613de2613dcc83612678565b600a5f525f80516020614fd58339815191520190565b613d79565b91613e36613e2d613e27613e1d613e186020613e09895165ffffffffffff1690565b9801516001600160d01b031690565b613a03565b90549060031b1c90565b93612678565b63ffffffff1690565b6001939291565b505f905f905f905f90565b9192613e53816149e5565b810390811161074157600a5f525f80516020614fd5833981519152810154613db7949065ffffffffffff9081169085161015613e90575091613dad565b929150613e9c906126a6565b90613dad565b600c54905f829160058411613f0e575b613ebc9350614b79565b8015613e3d57613ee7613de2613ed183612678565b600c5f525f80516020614fb58339815191520190565b91613e36613e2d613e27613e1d613f096020613e09895165ffffffffffff1690565b613a25565b9192613f19816149e5565b810390811161074157600c5f525f80516020614fb5833981519152810154613ebc949065ffffffffffff9081169085161015613f56575091613eb2565b929150613f62906126a6565b90613eb2565b91908254905f829160058411613feb575b613f84935085614be2565b908115613fdf57613e36613e2d613e27613e1d613fb1613de2613fa688612678565b895f5260205f200190565b966001613fd86020613fc98b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101613a47565b5f925082915081908190565b9192613ff6816149e5565b810390811161074157613f8493865f5261401f61332e8360205f200165ffffffffffff90541690565b65ffffffffffff85161015614035575091613f79565b929150614041906126a6565b90613f79565b51906109348261086c565b90816101609103126104fa57614066610907565b9061407081612e4d565b825261407e60208201612e4d565b602083015261408f60408201614047565b60408301526140a060608201612b6b565b60608301526140b160808201612b6b565b608083015260a081015160a08301526140cc60c08201612e4d565b60c08301526140dd60e08201612e4d565b60e08301526101006140f0818301612e4d565b90830152610120614102818301612e4d565b90830152614114610140809201612e4d565b9082015290565b905f8060409384519360209461415281611c0e88820194639f86fd8560e01b86523060248401528a604484015260648301906112c0565b51915afa5061415f612e6d565b805181019280828486019503126104fa57828201519161417e83610b31565b81810151906001600160401b0382116104fa57019084603f830112156104fa57838201516141ab81610936565b956141b8835197886108e6565b8187528282850101116104fa578085925f94018388015e85010152156141dc575090565b9080519182156104fa5701fd5b5f80516020614ff5833981519152546001600160a01b0316330361420957565b60405163118cdaa760e01b8152336004820152602490fd5b8115612c5f570490565b91818302915f19818509938380861095039480860395146142ab578483111561429e5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b8215600302601118614c72565b5050906109a29250614221565b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152610934916142f1826108cb565b61486f565b906142ff612c64565b821015614380575f82815260096020908152604080832033845290915290205460ff1661436e576143303383612f57565b91821561435c575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600c54806143d257505f5b6001600160d01b038116156143cd57600d54811015612dca57600d5f525f80516020615015833981519152015490565b505f90565b805f1981011161074157600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c61439d565b600a548061444657505f5b6001600160d01b038116156143cd57600b54811015612dca57600b5f525f80516020615035833981519152015490565b805f1981011161074157600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c614416565b8054806144a457505f5b6001600160d01b038116156136ba576001613e1d9201613a47565b5f1990808281011161074157825f5260205f2001015460301c614489565b9190600181018091116107415760018201809211610741576109a29261422b565b600a54905f82916005841161453b575b6144fd9350614b10565b8061452057505f5b6001600160d01b038116156143cd57613e1d6109a291613a03565b61452f613dcc61453692612678565b5460301c90565b614505565b9192614546816149e5565b8103908111610741576144fd93600a5f5265ffffffffffff80835f80516020614fd5833981519152015416908516105f146145825750916144f3565b92915061458e906126a6565b906144f3565b600c54905f8291600584116145e5575b6145ae9350614b79565b806145d157505f5b6001600160d01b038116156143cd57613e1d6109a291613a25565b61452f613ed16145e092612678565b6145b6565b91926145f0816149e5565b8103908111610741576145ae93600c5f5265ffffffffffff80835f80516020614fb5833981519152015416908516105f1461462c5750916145a4565b929150614638906126a6565b906145a4565b908154905f8291600584116146a1575b614659935084614be2565b8061468157505f905b6001600160d01b038216156136ba576109a2916001613e1d9201613a47565b61452f61469061469b92612678565b835f5260205f200190565b90614662565b91926146ac816149e5565b81039081116107415761465993855f5265ffffffffffff808360205f20015416908516105f146146dd57509161464e565b9291506146e9906126a6565b9061464e565b604051906146fc826108b0565b5f6020838281520152565b61470f6146ef565b506147186146ef565b50600a54811015612dca5761473f90600a5f525f80516020614fd583398151915201613d79565b65ffffffffffff81511690602060018060d01b0391015116600b54811015612dca57600b5f525f80516020615035833981519152015460405191614782836108b0565b8252602082015290565b6147946146ef565b5061479d6146ef565b50600c54811015612dca576147c490600c5f525f80516020614fb583398151915201613d79565b65ffffffffffff81511690602060018060d01b0391015116600d54811015612dca57600d5f525f80516020615015833981519152015460405191614782836108b0565b9061483061482a6148519261481a6146ef565b506148236146ef565b5084613a47565b50613d79565b91600165ffffffffffff845116936020828060d01b03910151169101613a47565b90549060405192614861846108b0565b835260031b1c602082015290565b905f602091828151910182855af1156126f1575f513d6148c057506001600160a01b0381163b155b61489e5750565b604051635274afe760e01b81526001600160a01b039091166004820152602490fd5b60011415614897565b9190600181018091116107415760018201809211610741576148ec82828561422b565b928215612c5f5709151581018091116107415790565b600c548061491357505f905f905f90565b805f1981011161074157600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460019165ffffffffffff82169160301c90565b600a548061496857505f905f905f90565b805f1981011161074157600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460019165ffffffffffff82169160301c90565b8054806149bd5750505f905f905f90565b5f19918183810111610741575f5260205f2001015460019165ffffffffffff82169160301c90565b60018111156109a257600181600160801b811015614afe575b614aa6614a9c614a92614a88614a7e614a74614ab297600488600160401b614aad9a1015614af1575b640100000000811015614ae4575b62010000811015614ad7575b610100811015614acb575b6010811015614abf575b1015614ab7575b60030260011c614a6d818b614221565b0160011c90565b614a6d818a614221565b614a6d8189614221565b614a6d8188614221565b614a6d8187614221565b614a6d8186614221565b8093614221565b821190565b900390565b60011b614a5d565b811c9160021b91614a56565b60081c91811b91614a4c565b60101c9160081b91614a41565b60201c9160101b91614a35565b60401c9160201b91614a27565b50600160401b9050608082901c6149fe565b905b828110614b1e57505090565b9091808216906001818418811c830180931161074157600a5f5265ffffffffffff80845f80516020614fd5833981519152015416908616105f14614b66575050915b90614b12565b9093925081018091116107415790614b60565b905b828110614b8757505090565b9091808216906001818418811c830180931161074157600c5f5265ffffffffffff80845f80516020614fb5833981519152015416908616105f14614bcf575050915b90614b7b565b9093925081018091116107415790614bc9565b91905b838210614bf25750505090565b909192808316906001818518811c830180931161074157855f5265ffffffffffff808460205f20015416908516105f14614c31575050925b9190614be5565b9094935081018091116107415791614c2a565b60ff5f805160206150958339815191525460401c1615614c6057565b604051631afcd79f60e31b8152600490fd5b634e487b715f526020526024601cfd5b600c5490600160401b8210156108ab576001820180600c55821015612dca57600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f80516020614fb583398151915290910155565b600a5490600160401b8210156108ab576001820180600a55821015612dca57600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f80516020614fd583398151915290910155565b8054600160401b8110156108ab57614d4d91600182018155613a47565b614d7857815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c549192918015614e3257613ed1614da391612678565b9081549165ffffffffffff90818416918316808311614e2057869203614de857614de192509065ffffffffffff82549181199060301b169116179055565b60301c9190565b5050614e1b90614e07614df9610927565b65ffffffffffff9092168252565b6001600160d01b0385166020820152614c82565b614de1565b604051632520601d60e01b8152600490fd5b50614e5690614e42614df9610927565b6001600160d01b0384166020820152614c82565b5f9190565b600a549192918015614ed657613dcc614e7391612678565b9081549165ffffffffffff90818416918316808311614e2057869203614eb157614de192509065ffffffffffff82549181199060301b169116179055565b5050614e1b90614ec2614df9610927565b6001600160d01b0385166020820152614cd9565b50614e5690614ee6614df9610927565b6001600160d01b0384166020820152614cd9565b80549293928015614f8f57614f11614f1c91612678565b825f5260205f200190565b9182549265ffffffffffff91828516928116808411614e2057879303614f5b5750614de192509065ffffffffffff82549181199060301b169116179055565b915050614e1b91614f7b614f6d610927565b65ffffffffffff9093168352565b6001600160d01b0386166020830152614d30565b5090614e5691614fa0614f6d610927565b6001600160d01b0385166020830152614d3056fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a89016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212201f4a24822a81b615e3adf94af24c29e95276cb5adcf755b4c7b98d659901d44864736f6c63430008190033","sourceMap":"199:2819:98:-:0;;;;;;;348:4:95;332:21;;318:1:98;3173:36:109;;318:1:98;3219:32:109;;8837:64:26;199:2819:98;;;;;;;;;7896:76:26;;-1:-1:-1;;;;;;;;;;;;199:2819:98;;;7985:34:26;7981:146;;-1:-1:-1;318:1:98;927:17:84;;199:2819:98;;;;;;;;332:21:95;199:2819:98;;;;;;;;;;;;;;;3173:36:109;199:2819:98;;;;;;;;;;3219:32:109;199:2819:98;;;;;;;;;;927:17:84;199:2819:98;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;199:2819:98;;;;;;;;;;;;;8087:29:26;;199:2819:98;;8087:29:26;7981:146;;;;;7896:76;-1:-1:-1;;;7938:23:26;;;;;199:2819:98;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104a45780631415519b1461049f5780631b66c9e11461049a5780631e9a695014610495578063248a9ca31461049057806327810b6e1461048b578063281f5752146104865780632abe3048146104815780632d73c69c1461047c5780632dd31000146104775780632f2ff15d1461047257806336568abe1461046d578063392e53cd146104685780634105a7dd14610463578063463616711461045e57806347e7ef241461045957806348d3b775146104545780634ff0876a1461044f57806350861adc1461044a57806350f22068146104455780635346e34f1461044057806354fd4d501461043b57806355a2c6721461043657806357ec83cc1461043157806359f769a91461042c5780635cc070761461042757806361a8c8c41461042257806364b03fdc1461041d57806367567add146104185780636da3e06d146104135780636ec1e3f81461040e578063715018a6146104095780637278e31c1461040457806373790ab3146103ff57806376671808146103fa578063794b15b7146103f55780637953b33b146103f05780637c04c80a146103eb578063810da75d146103e65780638326056f146103e157806383cd9cc3146103dc57806387df0788146103d75780638b0e9f3f146103d25780638da5cb5b146103cd57806391d14854146103c85780639d66201b146103c35780639f86fd85146103be578063a1b12202146103b9578063a217fddf146103b4578063a21a1df9146103af578063a2861466146103aa578063a3b54172146103a5578063a5d03223146103a0578063aabc24961461039b578063aad3ec9614610396578063afba70ad14610391578063b13442711461038c578063bd49c35f14610387578063bdc8144b14610382578063bfefcd7b1461037d578063c31e8dd714610378578063ce9b793014610373578063d547741f1461036e578063d8dfeb4514610369578063db38871514610364578063de4997161461035f578063eb5562381461035a578063ecf7085814610355578063efb559d614610350578063f2fde38b1461034b578063f3fef3a314610346578063f5e7ee0f146103415763f9e1bf6c1461033c575f80fd5b61264a565b612620565b61257a565b61254d565b6123fe565b6123e1565b61238d565b612373565b612307565b6122dc565b612290565b612268565b6121fe565b6121e4565b612106565b6120ec565b6120c4565b61209a565b611fd9565b611e22565b611ddc565b611d8f565b611c9c565b611c62565b611c48565b611c24565b611b90565b611b56565b611af8565b611ac4565b611a62565b611a1e565b611865565b61184b565b611832565b6117cc565b6117a5565b611765565b61174b565b61170a565b611438565b6113d1565b6113ac565b611368565b611312565b6112e4565b611248565b61121e565b6111f7565b6110bf565b61103a565b611008565b610f73565b610f5a565b610efd565b610edd565b610ebc565b610bfe565b610bd6565b610b3b565b610af6565b610aab565b610a5d565b610a19565b6109a5565b61079b565b6106cd565b6106a5565b61066c565b610583565b610538565b6104fe565b346104fa5760203660031901126104fa5760043563ffffffff60e01b81168091036104fa57602090637965db0b60e01b81149081156104e9575b506040519015158152f35b6301ffc9a760e01b1490505f6104de565b5f80fd5b346104fa575f3660031901126104fa5760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b346104fa575f3660031901126104fa5760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b6001600160a01b038116036104fa57565b346104fa5760403660031901126104fa576004356105a081610572565b602435906105ac61307e565b6001600160a01b0381161561065b57335f908152600e602052604090206105d79061447f565b61447f565b8211610649576105f76105e8614392565b6105f061440b565b90846144c2565b9182156106345782610608926130ad565b9061061f60015f8051602061507583398151915255565b604080519182526020820192909252f35b0390f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b346104fa5760203660031901126104fa576004355f525f805160206150558339815191526020526020600160405f200154604051908152f35b346104fa575f3660031901126104fa576001546040516001600160a01b039091168152602090f35b346104fa575f3660031901126104fa576106e5612c64565b80156107465760015465ffffffffffff8160a01c16915f198101908111610741576107139160d01c90612693565b81018091116107415761072861063091613227565b60405165ffffffffffff90911681529081906020820190565b612664565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b03821682036104fa57565b9181601f840112156104fa578235916001600160401b0383116104fa57602083818601950101116104fa57565b346104fa5760403660031901126104fa576107b4610758565b6001600160401b036024358181116104fa576107d490369060040161076e565b50506107de61307e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361085a575f80516020615095833981519152549060ff8260401c1692831561084a575b505050610838575f80fd5b60405163f92ee8a960e01b8152600490fd5b81169116101590505f808061082d565b604051631966391b60e11b8152600490fd5b65ffffffffffff8116036104fa57565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b038211176108ab57604052565b61087c565b604081019081106001600160401b038211176108ab57604052565b608081019081106001600160401b038211176108ab57604052565b90601f801991011681019081106001600160401b038211176108ab57604052565b6040519061016082018281106001600160401b038211176108ab57604052565b60405190610934826108b0565b565b6001600160401b0381116108ab57601f01601f191660200190565b92919261095d82610936565b9161096b60405193846108e6565b8294818452818301116104fa578281602093845f960137010152565b9080601f830112156104fa578160206109a293359101610951565b90565b346104fa5760603660031901126104fa576004356109c281610572565b602435906109cf8261086c565b604435906001600160401b0382116104fa576020926109f5610a11933690600401610987565b6001600160a01b039092165f908152600e85526040902061340c565b604051908152f35b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa5760403660031901126104fa57610aa9602435600435610a8082610572565b805f525f80516020615055833981519152602052610aa4600160405f2001546135e3565b6138e3565b005b346104fa5760403660031901126104fa57602435610ac881610572565b336001600160a01b03821603610ae457610aa990600435613919565b60405163334bd91960e11b8152600490fd5b346104fa575f3660031901126104fa5760ff60025460a01c1680610b22575b6020906040519015158152f35b5060035460a01c60ff16610b15565b801515036104fa57565b346104fa5760203660031901126104fa57600435610b5881610b31565b610b6061307e565b610b686134d8565b5f54901515908160ff8216151514610bc45760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f8051602061507583398151915255005b60405163a741a04560e01b8152600490fd5b346104fa575f3660031901126104fa57602065ffffffffffff60015460a01c16604051908152f35b346104fa576040806003193601126104fa576004803591610c1e83610572565b610c2661307e565b6001600160a01b0391838316908115610eae575f5460ff811680610e95575b610e865783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610e5e575f93610e63575b50610c9a9060243590309033906139ab565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610e5e57610cd9935f92610e31575b5050612686565b938415610e225760081c60ff1680610e0d575b610dff57509061063091610d9d610d01614392565b95610d4a610d0d61440b565b610d35610d1b8a838b6144c2565b99610d2f8a610d2942613227565b926126b4565b90613aff565b5050610d4489610d2942613227565b90613bdf565b50506001600160a01b0381165f908152600e6020526040902090610d9788610d926105d2610d7742613227565b6001600160a01b039095165f908152600e6020526040902090565b6126b4565b91613cbb565b505081518481526020810186905233907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a3610de960015f8051602061507583398151915255565b5191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50610e1a84610d92614392565b815410610cec565b50825163070f6eed60e11b8152fd5b610e509250803d10610e57575b610e4881836108e6565b8101906126e2565b5f80610cd2565b503d610e3e565b6126f1565b610c9a919350610e7f90853d8711610e5757610e4881836108e6565b9290610c88565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610c45565b8251630d534ce360e11b8152fd5b346104fa575f3660031901126104fa57602060ff5f54166040519015158152f35b346104fa575f3660031901126104fa57602060015460d01c604051908152f35b346104fa575f3660031901126104fa57602060ff60025460a01c166040519015158152f35b9060406003198301126104fa57600435610f3b8161086c565b91602435906001600160401b0382116104fa576109a291600401610987565b346104fa576020610a11610f6d36610f22565b90613282565b346104fa5760203660031901126104fa57600435610f9081610b31565b610f9861307e565b610fa0613535565b5f54901515908160ff8260081c16151514610bc45761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610aa960015f8051602061507583398151915255565b346104fa575f3660031901126104fa5760206001600160401b035f805160206150958339815191525416604051908152f35b346104fa5760203660031901126104fa576004356110578161086c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036110ad5761109090613d9d565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b346104fa5760603660031901126104fa576110d8610758565b6024356110e481610572565b6001600160401b03916044358381116104fa5761110590369060040161076e565b5f805160206150958339815191529491855494838616806111e65760ff8760401c169081156111d9575b50610838577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966111d49661119c958716906001600160401b0319161790556111975f80516020615095833981519152600160401b68ff000000000000000019825416179055565b6126fc565b5f80516020615095833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f61112f565b60405162dc149f60e41b8152600490fd5b346104fa5760203660031901126104fa576020610a1160043561121981610572565b612b1c565b346104fa5760203660031901126104fa576004355f526006602052602060405f2054604051908152f35b346104fa575f3660031901126104fa5760015465ffffffffffff61127e818360a01c1692611274612c64565b9060d01c90612693565b820180921161074157611292602092613227565b60405191168152f35b60409060031901126104fa576004356112b381610572565b906024356109a28161086c565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346104fa576106306112fe6112f83661129b565b90612baa565b6040519182916020835260208301906112c0565b346104fa5760203660031901126104fa5760043561132f8161086c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036110ad5761109090613ea2565b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa575f3660031901126104fa57602060ff60035460a01c166040519015158152f35b346104fa575f3660031901126104fa576113e96141e9565b5f80516020614ff583398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346104fa5760403660031901126104fa576004356024356114588161086c565b61146061307e565b60035461147d906001600160a01b03165b6001600160a01b031690565b33036116f85761148b612c64565b9061149581612c98565b90821515806116e7575b80156116de575b6116cc57610630937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c7926114d8614392565b946114f36114e5826126a6565b5f52600660205260405f2090565b54908281036115e6575061150781876126b4565b83811881851002811896878061159f575b50505050505b8361156b575b6040805191825265ffffffffffff929092166020820152908101839052606090a161155b60015f8051602061507583398151915255565b6040519081529081906020820190565b5f5461159a9085906115889060101c6001600160a01b0316611471565b6001546001600160a01b0316906142b8565b611524565b6115db93610cd283610d2f6115c56115be6114e5986115d5988861422b565b8096612686565b946115cf42613227565b92612686565b926126a6565b555f80808087611518565b91506115fa825f52600660205260405f2090565b549061160a81610d92848a6126b4565b908482188286100282189788611625575b505050505061151e565b61169a938361164d9361165a8c61165561164361168b99888461422b565b978895858461422b565b948592612686565b612686565b938484106116a5575b610cd290610d2f6116799596976115cf42613227565b6116856114e5876126a6565b55612686565b915f52600660205260405f2090565b555f8080808061161b565b916116c1610cd2916116bb866116799798612686565b906126b4565b859450929050611663565b604051635e18d2a560e01b8152600490fd5b508282116114a6565b506116f183612678565b821061149f565b60405163dabc4ad960e01b8152600490fd5b346104fa575f3660031901126104fa5760015465ffffffffffff808260a01c1691611733612c64565b600181018091116107415761127e9160d01c90612693565b346104fa575f3660031901126104fa576020610a11612c64565b346104fa5760203660031901126104fa5760043561178281610572565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b346104fa5760203660031901126104fa576020610a116004356117c78161086c565b612c98565b346104fa5760403660031901126104fa576004356117e981610572565b6024356001600160401b038082116104fa57366023830112156104fa5781600401359081116104fa573660248260051b840101116104fa5761063092602461155b930190612cd3565b346104fa576020610a1161184536610f22565b90613357565b346104fa576106306112fe61185f3661129b565b90612e01565b346104fa576020806003193601126104fa57600480359061188582610572565b61188d61307e565b60025460a01c60ff16611a0f576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610e5e575f916119e2575b50156119d25760405163fbfa77cf60e01b8152838516949082818581895afa928315610e5e575f936119a3575b5050309116036119945750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610aa960015f8051602061507583398151915255565b60405163b9f0f17160e01b8152fd5b6119c3929350803d106119cb575b6119bb81836108e6565b810190612e58565b905f80611927565b503d6119b1565b506040516324e5af8d60e21b8152fd5b611a029150823d8411611a08575b6119fa81836108e6565b810190612e38565b5f6118fa565b503d6119f0565b604051631380833b60e01b8152fd5b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa575f3660031901126104fa57611a7a612c64565b611a82614392565b90805f52600660205260405f205482018092116107415760018101809111610741575f52600660205260405f2054810180911161074157602090604051908152f35b346104fa575f3660031901126104fa575f80516020614ff5833981519152546040516001600160a01b039091168152602090f35b346104fa5760403660031901126104fa57602060ff611b4a602435611b1c81610572565b6004355f525f80516020615055833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346104fa5760203660031901126104fa57600435611b7381610572565b60018060a01b03165f52600e6020526020610a1160405f2061447f565b346104fa5760403660031901126104fa57600435611bad81610572565b6024356001600160401b0381116104fa575f91611bcf8392369060040161076e565b90816040519283928337810184815203915af4611c1c611bed612e6d565b91611c0e6040519384921515602084015260408084015260608301906112c0565b03601f1981018352826108e6565b805190602001fd5b346104fa575f3660031901126104fa57602060ff5f5460081c166040519015158152f35b346104fa575f3660031901126104fa5760206040515f8152f35b346104fa575f3660031901126104fa5760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b346104fa5760403660031901126104fa57600435611cb981610572565b602435611cc581610b31565b611ccd61307e565b611cd561358c565b6001600160a01b038216918215611d7d575f8381526005602052604090205460ff16151582151514610bc4576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a6291611d6491611d52908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610aa960015f8051602061507583398151915255565b604051630da30f6560e31b8152600490fd5b346104fa5760403660031901126104fa576020611dd3602435611db181610572565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b346104fa5760403660031901126104fa57602060ff611b4a602435611e0081610572565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b346104fa576020806003193601126104fa576004803590611e4282610572565b611e4a61307e565b60035460a01c60ff16611fca576001600160a01b03828116939084611eb8575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610aa960015f8051602061507583398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610e5e575f91611fad575b5015611f9c5760405163fbfa77cf60e01b815282818581895afa928315610e5e575f93611f7d575b505030911603611f6e5750600380546001600160a01b0319166001600160a01b039092169190911790555f808080611e6a565b604051633f3e089160e21b8152fd5b611f94929350803d106119cb576119bb81836108e6565b905f80611f3b565b60405163dabc4ad960e01b81528390fd5b611fc49150833d8511611a08576119fa81836108e6565b5f611f13565b60405163703fe2e560e01b8152fd5b346104fa5760403660031901126104fa57600435611ff681610572565b6024359061200261307e565b6001600160a01b03918183169081156120885761203361063094612025836142f6565b9485915f5460101c166142b8565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f80516020615075833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b346104fa5760203660031901126104fa576004355f526007602052602060405f2054604051908152f35b346104fa575f3660031901126104fa576003546040516001600160a01b039091168152602090f35b346104fa575f3660031901126104fa576020610a11614392565b346104fa5760203660031901126104fa5760043561212261307e565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff16156121c657508060045414610bc4576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f8051602061507583398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346104fa575f3660031901126104fa576020610a1161440b565b346104fa5760203660031901126104fa5760043561221b81610572565b612223612c64565b61222c82612b1c565b916122378183612f57565b830180931161074157600182018092116107415761225491612f57565b810180911161074157602090604051908152f35b346104fa575f3660031901126104fa576002546040516001600160a01b039091168152602090f35b346104fa5760403660031901126104fa57610aa96024356004356122b382610572565b805f525f805160206150558339815191526020526122d7600160405f2001546135e3565b613919565b346104fa575f3660031901126104fa575f5460405160109190911c6001600160a01b03168152602090f35b346104fa575f3660031901126104fa5760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b60609060031901126104fa5760043561235981610572565b9060243561236681610572565b906044356109a28161086c565b346104fa576106306112fe61238736612341565b91612e9c565b346104fa5761239b3661129b565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811633036110ad5761109092165f52600e60205260405f20613f68565b346104fa575f3660031901126104fa576020600454604051908152f35b346104fa5760603660031901126104fa5760043561241b81610572565b602435906124288261086c565b6001600160401b03916044358381116104fa5761244990369060040161076e565b9092604093845161245981610890565b606081526060602082015260608682015292806124b8575b610630866124a987876124a361248a89848451916126c1565b928561249a602085015183613357565b93015190613282565b916144c2565b90519081529081906020820190565b81019392506020818503126104fa578035908682116104fa5701926060848203126104fa578451956124e987610890565b84358181116104fa57826124fe918701610987565b875260208501358181116104fa5782612518918701610987565b6020880152858501359081116104fa57610630966125416124a39361248a936124a99801610987565b87820152939450612471565b346104fa5760203660031901126104fa57610aa960043561256d81610572565b6125756141e9565b612ee6565b346104fa5760403660031901126104fa5760043561259781610572565b6024356125a261307e565b6001600160a01b0382161561065b57801561260e576125d16125c261440b565b6125ca614392565b90836148c9565b335f908152600e602052604090209092906125eb9061447f565b83116125fc576106089183916130ad565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b346104fa5760403660031901126104fa576020610a1160243561264281610572565b600435612f57565b346104fa576106306112fe61265e36612341565b91612fb5565b634e487b7160e01b5f52601160045260245ffd5b5f1981019190821161074157565b9190820391821161074157565b8181029291811591840414171561074157565b906001820180921161074157565b9190820180921161074157565b6001600160a01b03165f908152600e602052604090206109a292919061340c565b908160209103126104fa575190565b6040513d5f823e3d90fd5b9161274e9161273f9161270d614c44565b612715614c44565b60015f80516020615075833981519152556001600160a01b0394808616612b02575b503691610951565b60208082518301019101614052565b805182166001600160a01b031615612af057604080820165ffffffffffff61277c825165ffffffffffff1690565b1615612adf5760c08301805190929061279d906001600160a01b0316611471565b15612990575b50916128dc6101409261287b61285661293a966127f16127c9875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b0390921691909117905561284a61282142613227565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b5165ffffffffffff1690565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b61289b61288b6060850151151590565b60ff80195f541691151516175f55565b6128c26128ab6080850151151590565b61ff005f5491151560081b169061ff001916175f55565b6128cf60a0840151600455565b516001600160a01b031690565b848116612980575b5060e08101516001600160a01b0316848116612970575b506101008101516001600160a01b0316848116612960575b506101208101516001600160a01b0316848116612950575b5001516001600160a01b031690565b9081166129445750565b61294d90613874565b50565b61295990613805565b505f61292b565b61296990613796565b505f612913565b612979906136c0565b505f6128fb565b6129899061360f565b505f6128e4565b60e08401516129a7906001600160a01b0316611471565b15612a7c575b6101208401516129c5906001600160a01b0316611471565b6127a357608084015115612a325760a08401511580612a13575b612a035750916128dc6101409261287b61285661293a965b949650505092506127a3565b5163183c854560e21b8152600490fd5b50610140840151612a2c906001600160a01b0316611471565b156129df565b60a084015115801590612a5c575b612a035750916128dc6101409261287b61285661293a966129f7565b50610140840151612a75906001600160a01b0316611471565b1515612a40565b606084015115612ab257610100840151612a9e906001600160a01b0316611471565b6129ad575163183c854560e21b8152600490fd5b610100840151612aca906001600160a01b0316611471565b156129ad575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b612b1690612b0e614c44565b612575614c44565b5f612737565b6001600160a01b03165f908152600e60205260409020612b3b9061447f565b612b43614392565b612b4b61440b565b90600181018091116107415760018201809211610741576109a29261422b565b519061093482610b31565b519063ffffffff821682036104fa57565b91908260409103126104fa576109a260208351612ba381610b31565b9301612b76565b9190612be6612bf59160609465ffffffffffff604051926367567add60e01b602085015216602483015260248252612be182610890565b61411b565b60208082518301019101612b87565b90612bfd5750565b90915063ffffffff60405191166020820152602081526109a2816108b0565b65ffffffffffff918216908216039190821161074157565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff809116918215612c5f57160490565b612c34565b612c6d42613227565b612c94600154612c8a65ffffffffffff93848360a01c1690612c1c565b9060d01c90612c48565b1690565b6001549065ffffffffffff91828160a01c16918284821610612cc157612c9492612c8a91612c1c565b60405163b7d0949760e01b8152600490fd5b90612cdc61307e565b5f926001600160a01b038316928315612088578115612d94575f5b828110612d7257505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d279286929091612d47918491612d429060101c6001600160a01b0316611471565b6142b8565b612d58604051928392339684612dcf565b0390a39061093460015f8051602061507583398151915255565b94612d8d6001916116bb612d87898789612dba565b356142f6565b9501612cf7565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612dca5760051b0190565b612da6565b604080825281018390529392916001600160fb1b0381116104fa5760209160609160051b809183880137850101930152565b9190612be6612bf59160609465ffffffffffff60405192632ad1633960e11b602085015216602483015260248252612be182610890565b908160209103126104fa57516109a281610b31565b519061093482610572565b908160209103126104fa57516109a281610572565b3d15612e97573d90612e7e82610936565b91612e8c60405193846108e6565b82523d5f602084013e565b606090565b604051631d6aac4760e31b60208201526001600160a01b03909216602483015265ffffffffffff909216604480830191909152815260609291612bf591612be691612be1826108cb565b6001600160a01b03908116908115612f3f575f80516020614ff583398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612f7d90825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116107415760018201809211610741576109a29261422b565b92919092612fda612fc98360609684612e9c565b92612fd48184612baa565b92612e01565b90825115801590613074575b801561306a575b612ff657505050565b6130439394506109a29291611c0e916040519361301285610890565b84526020840190815260408401918252613059604051968795602080880152516060604088015260a08701906112c0565b915191603f1992838783030160608801526112c0565b9151908483030160808501526112c0565b5081511515612fed565b5080511515612fe6565b5f80516020615075833981519152600281541461309b5760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e60205260409020939291906130c842613227565b335f908152600e602052604090206130df9061447f565b918483039283116107415761311a7febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f9385936131a599613cbb565b505061313461312842613227565b610d448761165561440b565b505061314e61314242613227565b610d2f84611655614392565b50506131f3816131de613167613162612c64565b6126a6565b6131bd61317c825f52600660205260405f2090565b5461318f835f52600760205260405f2090565b5461319b82828b6144c2565b9d8e998a936126b4565b6131b7855f52600660205260405f2090565b556126b4565b6131cf825f52600760205260405f2090565b555f52600860205260405f2090565b9060018060a01b03165f5260205260405f2090565b6131fe8382546126b4565b9055604080519485526020850195909552938301526001600160a01b03909216913391606090a3565b65ffffffffffff9081811161323a571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b908160209103126104fa576109a290612b76565b90600163ffffffff8093160191821161074157565b9080511561334d578060208061329d93518301019101613259565b6132a681614707565b906132b7825165ffffffffffff1690565b9065ffffffffffff808516921682811461334157821191826132ed575b50506132e457506109a2906144e3565b60209150015190565b9091506132fb600a54612678565b63ffffffff831614918215613314575b50505f806132d4565b61333991925061284a61332961332e9261326d565b614707565b65ffffffffffff1690565b115f8061330b565b50505060209150015190565b506109a2906144e3565b90805115613402578060208061337293518301019101613259565b61337b8161478c565b9061338c825165ffffffffffff1690565b9065ffffffffffff808516921682811461334157821191826133b9575b50506132e457506109a290614594565b9091506133c7600c54612678565b63ffffffff8316149182156133e0575b50505f806133a9565b6133fa91925061284a6133f561332e9261326d565b61478c565b115f806133d7565b506109a290614594565b918051156134ce578060208061342793518301019101613259565b916134328382614807565b92613443845165ffffffffffff1690565b9065ffffffffffff80851692168281146134c25782119182613479575b5050613470576109a2925061463e565b50506020015190565b9091506134868354612678565b63ffffffff83161491821561349f575b50505f80613460565b6134ba91925061284a6134b461332e9261326d565b85614807565b115f80613496565b50505050506020015190565b506109a29161463e565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b5416156121c65750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff9061352b565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff9061352b565b5f8181525f8051602061505583398151915260209081526040808320338452909152902060ff9061352b565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206150558339815191529060ff166136ba575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f805160206150558339815191529060ff905b541661378f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f805160206150558339815191529060ff9061372b565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f805160206150558339815191529060ff9061372b565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f805160206150558339815191529060ff9061372b565b5f8181525f80516020615055833981519152602081815260408084206001600160a01b038716855290915290912060ff9061372b565b5f8181525f80516020615055833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561378f575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b038411176108ab576109349260405261486f565b600b54811015612dca57600b5f525f8051602061503583398151915201905f90565b600d54811015612dca57600d5f525f8051602061501583398151915201905f90565b8054821015612dca575f5260205f2001905f90565b600d54600160401b8110156108ab576001810180600d55811015612dca57600d5f525f805160206150158339815191520155565b600b54600160401b8110156108ab576001810180600b55811015612dca57600b5f525f805160206150358339815191520155565b90815491600160401b8310156108ab5782613ae791600161093495018155613a47565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613baa575b50613b17614902565b50929091815492613b26614392565b9481613b95575b5015613b7257505f1982018281116107415781541115612dca575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613b86926001600160d01b03169150614d8b565b5050613b9183613a5c565b9190565b65ffffffffffff83811691161490505f613b2d565b600160401b8110156108ab5760018101808455811015612dca575f908382525f8051602061501583398151915201555f613b0e565b919091600b9081548015613c86575b50613bf7614957565b50929091815492613c0661440b565b9481613c71575b5015613c5257505f1982018281116107415781541115612dca575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b613c66926001600160d01b03169150614e5b565b5050613b9183613a90565b65ffffffffffff83811691161490505f613c0d565b600160401b8110156108ab5760018101808455811015612dca575f908382525f8051602061503583398151915201555f613bee565b90929192600182019081548015613d49575b5084613cd8846149ac565b50949092845493613ce88361447f565b9681613d34575b5015613d11575050505f19810190811161074157613ae78591613b9193613a47565b613b91949293613d2d926001600160d01b039091169190614efa565b5050613ac4565b65ffffffffffff83811691161490505f613cef565b600160401b8110156108ab57806001613d659201845583613a47565b8154905f199060031b1b191690555f613ccd565b90604051613d86816108b0565b915465ffffffffffff8116835260301c6020830152565b600a54905f829160058411613e48575b613db79350614b10565b8015613e3d57613de7613de2613dcc83612678565b600a5f525f80516020614fd58339815191520190565b613d79565b91613e36613e2d613e27613e1d613e186020613e09895165ffffffffffff1690565b9801516001600160d01b031690565b613a03565b90549060031b1c90565b93612678565b63ffffffff1690565b6001939291565b505f905f905f905f90565b9192613e53816149e5565b810390811161074157600a5f525f80516020614fd5833981519152810154613db7949065ffffffffffff9081169085161015613e90575091613dad565b929150613e9c906126a6565b90613dad565b600c54905f829160058411613f0e575b613ebc9350614b79565b8015613e3d57613ee7613de2613ed183612678565b600c5f525f80516020614fb58339815191520190565b91613e36613e2d613e27613e1d613f096020613e09895165ffffffffffff1690565b613a25565b9192613f19816149e5565b810390811161074157600c5f525f80516020614fb5833981519152810154613ebc949065ffffffffffff9081169085161015613f56575091613eb2565b929150613f62906126a6565b90613eb2565b91908254905f829160058411613feb575b613f84935085614be2565b908115613fdf57613e36613e2d613e27613e1d613fb1613de2613fa688612678565b895f5260205f200190565b966001613fd86020613fc98b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101613a47565b5f925082915081908190565b9192613ff6816149e5565b810390811161074157613f8493865f5261401f61332e8360205f200165ffffffffffff90541690565b65ffffffffffff85161015614035575091613f79565b929150614041906126a6565b90613f79565b51906109348261086c565b90816101609103126104fa57614066610907565b9061407081612e4d565b825261407e60208201612e4d565b602083015261408f60408201614047565b60408301526140a060608201612b6b565b60608301526140b160808201612b6b565b608083015260a081015160a08301526140cc60c08201612e4d565b60c08301526140dd60e08201612e4d565b60e08301526101006140f0818301612e4d565b90830152610120614102818301612e4d565b90830152614114610140809201612e4d565b9082015290565b905f8060409384519360209461415281611c0e88820194639f86fd8560e01b86523060248401528a604484015260648301906112c0565b51915afa5061415f612e6d565b805181019280828486019503126104fa57828201519161417e83610b31565b81810151906001600160401b0382116104fa57019084603f830112156104fa57838201516141ab81610936565b956141b8835197886108e6565b8187528282850101116104fa578085925f94018388015e85010152156141dc575090565b9080519182156104fa5701fd5b5f80516020614ff5833981519152546001600160a01b0316330361420957565b60405163118cdaa760e01b8152336004820152602490fd5b8115612c5f570490565b91818302915f19818509938380861095039480860395146142ab578483111561429e5790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b8215600302601118614c72565b5050906109a29250614221565b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152610934916142f1826108cb565b61486f565b906142ff612c64565b821015614380575f82815260096020908152604080832033845290915290205460ff1661436e576143303383612f57565b91821561435c575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600c54806143d257505f5b6001600160d01b038116156143cd57600d54811015612dca57600d5f525f80516020615015833981519152015490565b505f90565b805f1981011161074157600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c61439d565b600a548061444657505f5b6001600160d01b038116156143cd57600b54811015612dca57600b5f525f80516020615035833981519152015490565b805f1981011161074157600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c614416565b8054806144a457505f5b6001600160d01b038116156136ba576001613e1d9201613a47565b5f1990808281011161074157825f5260205f2001015460301c614489565b9190600181018091116107415760018201809211610741576109a29261422b565b600a54905f82916005841161453b575b6144fd9350614b10565b8061452057505f5b6001600160d01b038116156143cd57613e1d6109a291613a03565b61452f613dcc61453692612678565b5460301c90565b614505565b9192614546816149e5565b8103908111610741576144fd93600a5f5265ffffffffffff80835f80516020614fd5833981519152015416908516105f146145825750916144f3565b92915061458e906126a6565b906144f3565b600c54905f8291600584116145e5575b6145ae9350614b79565b806145d157505f5b6001600160d01b038116156143cd57613e1d6109a291613a25565b61452f613ed16145e092612678565b6145b6565b91926145f0816149e5565b8103908111610741576145ae93600c5f5265ffffffffffff80835f80516020614fb5833981519152015416908516105f1461462c5750916145a4565b929150614638906126a6565b906145a4565b908154905f8291600584116146a1575b614659935084614be2565b8061468157505f905b6001600160d01b038216156136ba576109a2916001613e1d9201613a47565b61452f61469061469b92612678565b835f5260205f200190565b90614662565b91926146ac816149e5565b81039081116107415761465993855f5265ffffffffffff808360205f20015416908516105f146146dd57509161464e565b9291506146e9906126a6565b9061464e565b604051906146fc826108b0565b5f6020838281520152565b61470f6146ef565b506147186146ef565b50600a54811015612dca5761473f90600a5f525f80516020614fd583398151915201613d79565b65ffffffffffff81511690602060018060d01b0391015116600b54811015612dca57600b5f525f80516020615035833981519152015460405191614782836108b0565b8252602082015290565b6147946146ef565b5061479d6146ef565b50600c54811015612dca576147c490600c5f525f80516020614fb583398151915201613d79565b65ffffffffffff81511690602060018060d01b0391015116600d54811015612dca57600d5f525f80516020615015833981519152015460405191614782836108b0565b9061483061482a6148519261481a6146ef565b506148236146ef565b5084613a47565b50613d79565b91600165ffffffffffff845116936020828060d01b03910151169101613a47565b90549060405192614861846108b0565b835260031b1c602082015290565b905f602091828151910182855af1156126f1575f513d6148c057506001600160a01b0381163b155b61489e5750565b604051635274afe760e01b81526001600160a01b039091166004820152602490fd5b60011415614897565b9190600181018091116107415760018201809211610741576148ec82828561422b565b928215612c5f5709151581018091116107415790565b600c548061491357505f905f905f90565b805f1981011161074157600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460019165ffffffffffff82169160301c90565b600a548061496857505f905f905f90565b805f1981011161074157600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460019165ffffffffffff82169160301c90565b8054806149bd5750505f905f905f90565b5f19918183810111610741575f5260205f2001015460019165ffffffffffff82169160301c90565b60018111156109a257600181600160801b811015614afe575b614aa6614a9c614a92614a88614a7e614a74614ab297600488600160401b614aad9a1015614af1575b640100000000811015614ae4575b62010000811015614ad7575b610100811015614acb575b6010811015614abf575b1015614ab7575b60030260011c614a6d818b614221565b0160011c90565b614a6d818a614221565b614a6d8189614221565b614a6d8188614221565b614a6d8187614221565b614a6d8186614221565b8093614221565b821190565b900390565b60011b614a5d565b811c9160021b91614a56565b60081c91811b91614a4c565b60101c9160081b91614a41565b60201c9160101b91614a35565b60401c9160201b91614a27565b50600160401b9050608082901c6149fe565b905b828110614b1e57505090565b9091808216906001818418811c830180931161074157600a5f5265ffffffffffff80845f80516020614fd5833981519152015416908616105f14614b66575050915b90614b12565b9093925081018091116107415790614b60565b905b828110614b8757505090565b9091808216906001818418811c830180931161074157600c5f5265ffffffffffff80845f80516020614fb5833981519152015416908616105f14614bcf575050915b90614b7b565b9093925081018091116107415790614bc9565b91905b838210614bf25750505090565b909192808316906001818518811c830180931161074157855f5265ffffffffffff808460205f20015416908516105f14614c31575050925b9190614be5565b9094935081018091116107415791614c2a565b60ff5f805160206150958339815191525460401c1615614c6057565b604051631afcd79f60e31b8152600490fd5b634e487b715f526020526024601cfd5b600c5490600160401b8210156108ab576001820180600c55821015612dca57600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f80516020614fb583398151915290910155565b600a5490600160401b8210156108ab576001820180600a55821015612dca57600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f80516020614fd583398151915290910155565b8054600160401b8110156108ab57614d4d91600182018155613a47565b614d7857815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c549192918015614e3257613ed1614da391612678565b9081549165ffffffffffff90818416918316808311614e2057869203614de857614de192509065ffffffffffff82549181199060301b169116179055565b60301c9190565b5050614e1b90614e07614df9610927565b65ffffffffffff9092168252565b6001600160d01b0385166020820152614c82565b614de1565b604051632520601d60e01b8152600490fd5b50614e5690614e42614df9610927565b6001600160d01b0384166020820152614c82565b5f9190565b600a549192918015614ed657613dcc614e7391612678565b9081549165ffffffffffff90818416918316808311614e2057869203614eb157614de192509065ffffffffffff82549181199060301b169116179055565b5050614e1b90614ec2614df9610927565b6001600160d01b0385166020820152614cd9565b50614e5690614ee6614df9610927565b6001600160d01b0384166020820152614cd9565b80549293928015614f8f57614f11614f1c91612678565b825f5260205f200190565b9182549265ffffffffffff91828516928116808411614e2057879303614f5b5750614de192509065ffffffffffff82549181199060301b169116179055565b915050614e1b91614f7b614f6d610927565b65ffffffffffff9093168352565b6001600160d01b0386166020830152614d30565b5090614e5691614fa0614f6d610927565b6001600160d01b0385166020830152614d3056fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a89016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212201f4a24822a81b615e3adf94af24c29e95276cb5adcf755b4c7b98d659901d44864736f6c63430008190033","sourceMap":"199:2819:98:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;199:2819:98;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;199:2819:98;;;;;;;;;;3551:87:23;-1:-1:-1;;;1134:40:32;;-1:-1:-1;3551:87:23;;;199:2819:98;-1:-1:-1;199:2819:98;;;;;;;;-1:-1:-1;;199:2819:98;;;;;;;966:38:109;199:2819:98;;;;;;;;;-1:-1:-1;;199:2819:98;;;;;;;821:37:109;199:2819:98;;;;-1:-1:-1;;;;;199:2819:98;;;;;:::o;:::-;;;;;;-1:-1:-1;;199:2819:98;;;;;;;;;:::i;:::-;;;3361:103:30;;;:::i;:::-;-1:-1:-1;;;;;199:2819:98;;5525:21:108;5521:75;;5634:10;199:2819:98;;;;5606:15:109;199:2819:98;;;;;5606:33:109;;;:::i;:24::-;:33;:::i;:::-;5610:35:108;;5606:88;;1057:70:100;5173:21:109;;:::i;:::-;4803:22;;:::i;:::-;1057:70:100;;;:::i;:::-;5801:20:108;;;5797:82;;5904:43;;;;:::i;:::-;3426:1:30;;1949;-1:-1:-1;;;;;;;;;;;199:2819:98;3860:283:30;3426:1;199:2819:98;;;;;;;;;;;;;;;;;;5797:82:108;199:2819:98;;-1:-1:-1;;;;;;5844:24:108;;199:2819:98;;5844:24:108;5606:88;199:2819:98;;-1:-1:-1;;;5668:15:108;;199:2819:98;;5668:15:108;5521:75;199:2819:98;;-1:-1:-1;;;5569:16:108;;199:2819:98;;5569:16:108;199:2819:98;;;;;;-1:-1:-1;;199:2819:98;;;;;;-1:-1:-1;199:2819:98;-1:-1:-1;;;;;;;;;;;199:2819:98;;;4919:24:23;199:2819:98;-1:-1:-1;199:2819:98;4919:24:23;199:2819:98;;;;;;;;;;;;;-1:-1:-1;;199:2819:98;;;;;;;;-1:-1:-1;;;;;199:2819:98;;;;;;;;;;;;;;-1:-1:-1;;199:2819:98;;;;4084:14:109;;:::i;:::-;4112:10;;4108:65;;4190:17;199:2819:98;;;;;;;;;;;;;;;;4210:27:109;199:2819:98;;;4210:27:109;;:::i;:::-;199:2819:98;;;;;;;4189:60:109;199:2819:98;4189:60:109;;:::i;:::-;199:2819:98;;;;;;;;;;;;;;;;;;:::i;4108:65:109:-;199:2819:98;;-1:-1:-1;;;4145:17:109;;199:2819:98;;4145:17:109;199:2819:98;;;;-1:-1:-1;;;;;199:2819:98;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:98;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;199:2819:98;;;;;;:::i;:::-;-1:-1:-1;;;;;199:2819:98;;;;;;;;;;;;;;:::i;:::-;3361:103:30;;;;:::i;:::-;1673:7:84;-1:-1:-1;;;;;199:2819:98;1659:10:84;:21;1655:71;;-1:-1:-1;;;;;;;;;;;199:2819:98;;;;;;;6431:44:26;;;;;199:2819:98;6427:105:26;;;;;-1:-1:-1;15924:8:108;;6427:105:26;199:2819:98;;-1:-1:-1;;;6498:23:26;;199:2819:98;;6498:23:26;6431:44;199:2819:98;;;;6450:25:26;;;-1:-1:-1;6431:44:26;;;;;1655:71:84;199:2819:98;;-1:-1:-1;;;1703:12:84;;199:2819:98;;1703:12:84;199:2819:98;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:98;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;199:2819:98;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;199:2819:98;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:98;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;199:2819:98;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;199:2819:98;;;;;;-1:-1:-1;;199:2819:98;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;199:2819:98;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;-1:-1:-1;;199:2819:98;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;199:2819:98;;;;;;;5383:59:109;199:2819:98;;;;;;:::i;:::-;-1:-1:-1;;;;;199:2819:98;;;-1:-1:-1;199:2819:98;;;5383:15:109;199:2819:98;;;;;5383:59:109;:::i;:::-;199:2819:98;;;;;;;;;;;;-1:-1:-1;;199:2819:98;;;;;;655:32:84;-1:-1:-1;;;;;199:2819:98;;;;;;;;;;;;-1:-1:-1;;199:2819:98;;;;5350:25:23;199:2819:98;;;;;;;:::i;:::-;;-1:-1:-1;199:2819:98;-1:-1:-1;;;;;;;;;;;199:2819:98;;3202:4:23;4919:24;199:2819:98;-1:-1:-1;199:2819:98;4919:24:23;199:2819:98;3202:4:23;:::i;:::-;5350:25;:::i;:::-;199:2819:98;;;;;;;-1:-1:-1;;199:2819:98;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;199:2819:98;;6441:34:23;6437:102;;6549:37;199:2819:98;;;6549:37:23;:::i;6437:102::-;199:2819:98;;-1:-1:-1;;;6498:30:23;;199:2819:98;;6498:30:23;199:2819:98;;;;;;-1:-1:-1;;199:2819:98;;;;;1524:22:108;199:2819:98;;;;1524:46:108;;;199:2819:98;;;;;;;;;;;1524:46:108;-1:-1:-1;1550:20:108;199:2819:98;;;;;1524:46:108;;199:2819:98;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;199:2819:98;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;199:2819:98;;;;;;;;;;;9542:26:108;9538:76;;-1:-1:-1;;199:2819:98;;;;;-1:-1:-1;199:2819:98;;;;;;9665:27:108;;199:2819:98;;9665:27:108;1949:1:30;-1:-1:-1;;;;;;;;;;;199:2819:98;;9538:76:108;199:2819:98;;-1:-1:-1;;;9591:12:108;;199:2819:98;;9591:12:108;199:2819:98;;;;;;-1:-1:-1;;199:2819:98;;;;;;1718:31:109;199:2819:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;-1:-1:-1;;;;;199:2819:98;;;;;3474:24:108;;3470:81;;-1:-1:-1;199:2819:98;;;;3565:55:108;;;199:2819:98;3561:118:108;;199:2819:98;;-1:-1:-1;;;3713:43:108;;;3750:4;3713:43;;;199:2819:98;;;;;;;;;;;;;;;;;;;;;;;;;3713:43:108;;;;;;;;;;-1:-1:-1;3713:43:108;;;199:2819:98;;3829:6:108;199:2819:98;;;3750:4:108;;3802:10;;3829:6;;:::i;:::-;-1:-1:-1;199:2819:98;;;3864:43:108;;;3750:4;3864:43;;;199:2819:98;;;;;;;;;;3864:43:108;199:2819:98;;;;;;3864:43:108;199:2819:98;;;;;3864:43:108;;;;;;;:59;:43;-1:-1:-1;3864:43:108;;;199:2819:98;3864:59:108;;;:::i;:::-;3938:20;;;3934:79;;199:2819:98;;;;;4027:64:108;;199:2819:98;4023:123:108;;5173:21:109;;199:2819:98;5173:21:109;4502:93:108;5173:21:109;;:::i;:::-;4803:22;4426:66:108;4803:22:109;;:::i;:::-;4349:67:108;390:70:100;;;;;:::i;:::-;837:15:75;4385:30:108;837:15:75;819:34;837:15;819:34;:::i;:::-;4385:30:108;;:::i;:::-;4349:67;;:::i;:::-;837:15:75;;4463:28:108;837:15:75;819:34;837:15;819:34;:::i;4463:28:108:-;4426:66;;:::i;:::-;-1:-1:-1;;;;;;;199:2819:98;;;;;;5606:15:109;199:2819:98;;;;;837:15:75;4553:41:108;837:15:75;5606:33:109;:24;819:34:75;837:15;819:34;:::i;:::-;-1:-1:-1;;;;;199:2819:98;;;;;;;5606:15:109;199:2819:98;;;;;;;5606:33:109;4553:41:108;:::i;:::-;4502:93;;:::i;:::-;-1:-1:-1;;199:2819:98;;;;;;;;;;;3802:10:108;;4611:62;;199:2819:98;;4611:62:108;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;199:2819:98;3860:283:30;3426:1;199:2819:98;;;;;;;;;;;;;;;;;;;4023:123:108;199:2819:98;;-1:-1:-1;;;4114:21:108;;;4027:64;5173:21:109;4045:31:108;5173:21:109;;;:::i;4045:31:108:-;199:2819:98;;-1:-1:-1;4027:64:108;;3934:79;-1:-1:-1;199:2819:98;;-1:-1:-1;;;3981:21:108;;;3864:43;;;;;;-1:-1:-1;3864:43:108;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;3713:::-;3829:6;3713:43;;;;;;;;;;;;;;;:::i;:::-;;;;;3561:118;-1:-1:-1;199:2819:98;;-1:-1:-1;;;3643:25:108;;;3565:55;-1:-1:-1;3609:10:108;199:2819:98;;;;3586:22:108;199:2819:98;;;;;;;;3585:35:108;3565:55;;3470:81;199:2819:98;;-1:-1:-1;;;3521:19:108;;;199:2819:98;;;;;;-1:-1:-1;;199:2819:98;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:98;;;;;1805:27:109;199:2819:98;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:98;;;;;;1968:34:109;199:2819:98;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:98;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;199:2819:98;;;;;;;;;:::i;:::-;;;;;4622:48:109;199:2819:98;;;:::i;:::-;4622:48:109;;:::i;199:2819:98:-;;;;;;-1:-1:-1;;199:2819:98;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;199:2819:98;;;;;;;;;;;;;10370:24:108;10366:74;;-1:-1:-1;;199:2819:98;;;;;;;;-1:-1:-1;199:2819:98;;;;;;10489:25:108;;199:2819:98;;10489:25:108;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;199:2819:98;3860:283:30;199:2819:98;;;;;;-1:-1:-1;;199:2819:98;;;;;-1:-1:-1;;;;;;;;;;;;;;;;199:2819:98;;;;;;;;;;;;;;-1:-1:-1;;199:2819:98;;;;;;;;;:::i;:::-;449:5:95;-1:-1:-1;;;;;199:2819:98;435:10:95;:19;431:71;;1113:52:98;;;:::i;:::-;199:2819;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:98;431:71:95;199:2819:98;;-1:-1:-1;;;477:14:95;;199:2819:98;;477:14:95;199:2819:98;;;;;;-1:-1:-1;;199:2819:98;;;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;;;;;199:2819:98;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;8837:64:26;;199:2819:98;;;;;;734:29:84;730:87;;199:2819:98;;;;;6431:44:26;;;;;199:2819:98;6427:105:26;;;6656:20;199:2819:98;6656:20:26;199:2819:98;1167:340:84;199:2819:98;;;;-1:-1:-1;;;;;199:2819:98;;;;;6575:22:26;-1:-1:-1;;;;;;;;;;;;;;199:2819:98;;;;;;;;;6575:22:26;1167:340:84;:::i;:::-;-1:-1:-1;;;;;;;;;;;199:2819:98;;-1:-1:-1;;199:2819:98;;;;;-1:-1:-1;;;;;199:2819:98;;;;;;;;;;;;;6656:20:26;;;;199:2819:98;6431:44:26;199:2819:98;;;;;-1:-1:-1;6450:25:26;6431:44;;;730:87:84;199:2819:98;;-1:-1:-1;;;786:20:84;;199:2819:98;;786:20:84;199:2819:98;;;;;;-1:-1:-1;;199:2819:98;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;199:2819:98;;;;;;-1:-1:-1;199:2819:98;2431:59:109;199:2819:98;;;;-1:-1:-1;199:2819:98;;;;;;;;;;;;;;-1:-1:-1;;199:2819:98;;;;3875:17:109;199:2819:98;;3895:30:109;199:2819:98;;;;;3895:14:109;;;:::i;:::-;199:2819:98;;;3895:30:109;;:::i;:::-;199:2819:98;;;;;;;3874:63:109;199:2819:98;3874:63:109;;:::i;:::-;199:2819:98;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;199:2819:98;;;;;;;;-1:-1:-1;;199:2819:98;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;199:2819:98;;;;;;;;;:::i;:::-;449:5:95;-1:-1:-1;;;;;199:2819:98;435:10:95;:19;431:71;;514:51:98;;;:::i;199:2819::-;;;;;;-1:-1:-1;;199:2819:98;;;;;;1200:42:109;-1:-1:-1;;;;;199:2819:98;;;;;;;;;;;;-1:-1:-1;;199:2819:98;;;;;;2136:32:109;199:2819:98;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:98;;;;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;199:2819:98;;-1:-1:-1;;;;;;199:2819:98;;;;;;;-1:-1:-1;;;;;199:2819:98;3975:40:24;199:2819:98;;3975:40:24;199:2819:98;;;;;;;-1:-1:-1;;199:2819:98;;;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;7131:7:108;199:2819:98;7117:21:108;;-1:-1:-1;;;;;199:2819:98;;-1:-1:-1;;;;;199:2819:98;;;7117:21:108;:10;:21;7113:71;;7218:14;;:::i;:::-;7265:25;;;;:::i;:::-;7305:17;;;;:53;;;199:2819:98;7304:87:108;;;;199:2819:98;7300:146:108;;199:2819:98;5173:21:109;9310:48:108;5173:21:109;;;:::i;:::-;7540:17:108;7528:30;7540:17;;;:::i;:::-;199:2819:98;;7528:11:108;199:2819:98;;;;;;;7528:30:108;199:2819:98;;7572:29:108;;;;;7642:30;;;;;:::i;:::-;3066:5:70;;;3463;;;199:2819:98;3060:42:70;;7752:17:108;;;7748:384;;7568:1615;;;;;;;9197:17;9193:102;;7568:1615;199:2819:98;;;;;;;;;;;;;;;;;;;;;;;9310:48:108;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;199:2819:98;3860:283:30;3426:1;199:2819:98;;;;;;;;;;;;;9193:102:108;-1:-1:-1;199:2819:98;9270:13:108;;199:2819:98;;9230:18:108;;199:2819:98;;-1:-1:-1;;;;;199:2819:98;;;9230:18:108;7556:1;199:2819:98;-1:-1:-1;;;;;199:2819:98;9270:13:108;;:::i;:::-;9193:102;;7748:384;8045:29;7813:50;7962:65;7813:50;7998:28;7914:29;7813:50;8057:16;7813:50;8077:40;7813:50;;;:::i;:::-;7914:29;;;:::i;:::-;837:15:75;819:34;837:15;819:34;:::i;:::-;7998:28:108;;:::i;8077:40::-;8057:16;;:::i;8045:29::-;199:2819:98;7748:384:108;;;;;;;7568:1615;8185:26;;;;199:2819:98;;7528:11:108;199:2819:98;;;;;;;8185:26:108;199:2819:98;8250:27:108;:45;:27;;;;;:::i;:45::-;3463:5:70;3066;;;3463;;;199:2819:98;3060:42:70;;8375:17:108;;8371:802;;7568:1615;;;;;;;;8371:802;9096:26;8436:50;;8537:53;8436:50;8637:54;8436:50;8637:29;8436:50;9125:33;8436:50;;;;:::i;:::-;8537:53;;;;;;:::i;:::-;8637:29;;;;:::i;:::-;:54;:::i;:::-;8714:33;;;;8710:194;;8371:802;8922:65;837:15:75;8958:28:108;9038:40;837:15:75;;;819:34;837:15;819:34;:::i;9038:40:108:-;9005:30;9017:17;;;:::i;9005:30::-;199:2819:98;9125:33:108;:::i;:::-;9096:26;199:2819:98;;7528:11:108;199:2819:98;;;;;;;9096:26:108;199:2819:98;8371:802:108;;;;;;;8710:194;8797:33;8771:59;8922:65;8797:33;;;9038:40;8797:33;;;:::i;:::-;8771:59;;:::i;:::-;8852:33;;-1:-1:-1;8852:33:108;;-1:-1:-1;8710:194:108;;7300:146;199:2819:98;;-1:-1:-1;;;7414:21:108;;199:2819:98;;7414:21:108;7304:87;7363:28;;;;7304:87;;7305:53;7341:17;;;;:::i;:::-;7326:32;;7305:53;;7113:71;199:2819:98;;-1:-1:-1;;;7161:12:108;;199:2819:98;;7161:12:108;199:2819:98;;;;;;-1:-1:-1;;199:2819:98;;;;4384:17:109;199:2819:98;;;;;;;4405:14:109;;;:::i;:::-;4384:17;199:2819:98;;;;;;;4404:36:109;199:2819:98;;;4404:36:109;;:::i;199:2819:98:-;;;;;;-1:-1:-1;;199:2819:98;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;199:2819:98;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;199:2819:98;2307:68:109;199:2819:98;;;;;-1:-1:-1;199:2819:98;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:98;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;199:2819:98;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;199:2819:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6491:14:108;199:2819:98;;6491:14:108;;:::i;199:2819:98:-;;;;;4994:47:109;199:2819:98;;;:::i;:::-;4994:47:109;;:::i;199:2819:98:-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;10932:22:108;199:2819:98;;;;;10928:89:108;;199:2819:98;;-1:-1:-1;;;11032:49:108;;-1:-1:-1;;;;;199:2819:98;;;11032:49:108;;;199:2819:98;;;;;;;;;;;;;;;11032:49:108;11042:17;;;199:2819:98;11032:49:108;;;;;;;-1:-1:-1;11032:49:108;;;199:2819:98;11031:50:108;;11027:102;;199:2819:98;;-1:-1:-1;;;11143:34:108;;199:2819:98;;;;;11143:34:108;199:2819:98;11143:34:108;199:2819:98;;11143:34:108;;;;;;;-1:-1:-1;11143:34:108;;;199:2819:98;11189:4:108;;;199:2819:98;;11143:51:108;11139:107;;-1:-1:-1;10932:22:108;199:2819:98;;-1:-1:-1;;;;;199:2819:98;;;;-1:-1:-1;;;;;;199:2819:98;;;;;;;-1:-1:-1;;;199:2819:98;;;11334:24:108;-1:-1:-1;;11334:24:108;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;199:2819:98;3860:283:30;11139:107:108;199:2819:98;;-1:-1:-1;;;11217:18:108;;;11143:34;;;;;;;-1:-1:-1;11143:34:108;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;11027:102;-1:-1:-1;199:2819:98;;-1:-1:-1;;;11104:14:108;;;11032:49;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;10928:89;199:2819:98;;-1:-1:-1;;;10977:29:108;;;199:2819:98;;;;;;-1:-1:-1;;199:2819:98;;;;;;1298:40:109;-1:-1:-1;;;;;199:2819:98;;;;;;;;;;;;-1:-1:-1;;199:2819:98;;;;1703:14:108;;:::i;:::-;5173:21:109;;:::i;:::-;199:2819:98;;;;1750:11:108;199:2819:98;;;;;;;;;;;;;1791:1:108;199:2819:98;;;;;;;;;1750:11:108;199:2819:98;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:98;;;;-1:-1:-1;;;;;;;;;;;199:2819:98;;;-1:-1:-1;;;;;199:2819:98;;;;;;;;;;;;;;-1:-1:-1;;199:2819:98;;;;;;3901:31:23;199:2819:98;;;;;:::i;:::-;;;-1:-1:-1;199:2819:98;-1:-1:-1;;;;;;;;;;;199:2819:98;;;-1:-1:-1;199:2819:98;;;;;;;;;;;;;;;;;3901:31:23;199:2819:98;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:98;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;199:2819:98;5606:15:109;199:2819:98;;;5606:33:109;199:2819:98;-1:-1:-1;199:2819:98;5606:33:109;:::i;199:2819:98:-;;;;;;-1:-1:-1;;199:2819:98;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;199:2819:98;;;;-1:-1:-1;199:2819:98;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:88;;;;477:31;416:25;;:::i;:::-;199:2819:98;;;;;;;;;;477:31:88;;199:2819:98;;;;;;;;;;;:::i;:::-;477:31:88;199:2819:98;;477:31:88;;;;;;:::i;:::-;518:79;;;199:2819:98;518:79:88;;199:2819:98;;;;;;-1:-1:-1;;199:2819:98;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:98;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:98;;;;;;;1109:35:109;199:2819:98;;;;;;;;;-1:-1:-1;;199:2819:98;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;;;;;199:2819:98;;;9907:21:108;;9903:75;;-1:-1:-1;199:2819:98;;;9992:22:108;199:2819:98;;;;;;;;;;;;;9992:41:108;9988:91;;-1:-1:-1;;;;;199:2819:98;;;;;3586:22:108;199:2819:98;;;;;10145:44:108;;;;10089:40;;:31;199:2819:98;;;;;;;;;;;;;;10089:40:108;199:2819:98;;;;;;;;;;;;;;;10145:44:108;;;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;199:2819:98;3860:283:30;9903:75:108;199:2819:98;;-1:-1:-1;;;9951:16:108;;199:2819:98;;9951:16:108;199:2819:98;;;;;;-1:-1:-1;;199:2819:98;;;;;2666:94:109;199:2819:98;;;;;:::i;:::-;;;-1:-1:-1;199:2819:98;2666:94:109;199:2819:98;;;-1:-1:-1;199:2819:98;;;;;;;;;;;;;;;;;2666:94:109;199:2819:98;;;;;;;;;;;;;-1:-1:-1;;199:2819:98;;;;;;2816:92:109;199:2819:98;;;;;:::i;:::-;;;-1:-1:-1;199:2819:98;2816:92:109;199:2819:98;;;-1:-1:-1;199:2819:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;11459:20:108;199:2819:98;;;;;11455:85:108;;-1:-1:-1;;;;;199:2819:98;;;;;;11550:312:108;;199:2819:98;11459:20:108;199:2819:98;;-1:-1:-1;;;;199:2819:98;-1:-1:-1;;;199:2819:98;;;11872:27:108;11915:20;-1:-1:-1;11915:20:108;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;199:2819:98;3860:283:30;11550:312:108;199:2819:98;;-1:-1:-1;;;11597:45:108;;-1:-1:-1;;;;;199:2819:98;;11597:45:108;;;199:2819:98;;;11597:45:108;;199:2819:98;;;;;;11597:45:108;11607:15;;;199:2819:98;11597:45:108;;;;;;;-1:-1:-1;11597:45:108;;;11550:312;11596:46;;11592:104;;199:2819:98;;-1:-1:-1;;;11714:30:108;;;199:2819:98;11714:30:108;199:2819:98;11714:30:108;;;;;;;;-1:-1:-1;11714:30:108;;;11550:312;11756:4;;;199:2819:98;;11714:47:108;11710:109;;-1:-1:-1;11459:20:108;199:2819:98;;-1:-1:-1;;;;;;199:2819:98;-1:-1:-1;;;;;199:2819:98;;;;;;;;;11550:312:108;;;;;;11710:109;199:2819:98;;-1:-1:-1;;;11788:16:108;;;11714:30;;;;;;;-1:-1:-1;11714:30:108;;;;;;:::i;:::-;;;;;;11592:104;199:2819:98;;-1:-1:-1;;;11669:12:108;;199:2819:98;;11669:12:108;11597:45;;;;;;;;;;;;;;:::i;:::-;;;;11455:85;199:2819:98;;-1:-1:-1;;;11502:27:108;;;199:2819:98;;;;;;-1:-1:-1;;199:2819:98;;;;;;;;;:::i;:::-;;;3361:103:30;;;:::i;:::-;-1:-1:-1;;;;;199:2819:98;;;;;6112:23:108;;6108:79;;6273:6;199:2819:98;6206:13:108;;;;:::i;:::-;199:2819:98;;;-1:-1:-1;199:2819:98;;;;6273:6:108;:::i;:::-;199:2819:98;;;;;;;;;;;;6302:10:108;;6296:43;;199:2819:98;6296:43:108;1949:1:30;-1:-1:-1;;;;;;;;;;;199:2819:98;;;;;;;;;;;;;;6108:79:108;199:2819:98;;-1:-1:-1;;;6158:18:108;;199:2819:98;;6158:18:108;199:2819:98;;;;;;-1:-1:-1;;199:2819:98;;;;;;-1:-1:-1;199:2819:98;2546:64:109;199:2819:98;;;;-1:-1:-1;199:2819:98;;;;;;;;;;;;;;-1:-1:-1;;199:2819:98;;;;2058:22:109;199:2819:98;;;-1:-1:-1;;;;;199:2819:98;;;;;;;;;;;;;;-1:-1:-1;;199:2819:98;;;;;5173:21:109;;:::i;199:2819:98:-;;;;;;-1:-1:-1;;199:2819:98;;;;;;3361:103:30;;:::i;:::-;966:10:28;-1:-1:-1;199:2819:98;;;;;;;;;;1109:35:109;;199:2819:98;;4468:23:23;4464:108;;199:2819:98;;;;10692:21:108;10688:71;;199:2819:98;;10805:22:108;199:2819:98;;;;;;;;10805:22:108;1949:1:30;-1:-1:-1;;;;;;;;;;;199:2819:98;;4464:108:23;199:2819:98;;;;4514:47:23;;;;;;966:10:28;199:2819:98;4514:47:23;;199:2819:98;;;;;4514:47:23;199:2819:98;;;;;;-1:-1:-1;;199:2819:98;;;;;4803:22:109;;:::i;199:2819:98:-;;;;;;-1:-1:-1;;199:2819:98;;;;;;;;;:::i;:::-;3123:14:108;;:::i;:::-;3154:24;;;:::i;:::-;3181:29;;;;;:::i;:::-;199:2819:98;;;;;;;3235:1:108;199:2819:98;;;;;;;3213:33:108;;;:::i;:::-;199:2819:98;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:98;;;;1888:24:109;199:2819:98;;;-1:-1:-1;;;;;199:2819:98;;;;;;;;;;;;;;-1:-1:-1;;199:2819:98;;;;5767:26:23;199:2819:98;;;;;;;:::i;:::-;;-1:-1:-1;199:2819:98;-1:-1:-1;;;;;;;;;;;199:2819:98;;3202:4:23;4919:24;199:2819:98;-1:-1:-1;199:2819:98;4919:24:23;199:2819:98;3202:4:23;:::i;:::-;5767:26;:::i;199:2819:98:-;;;;;;-1:-1:-1;;199:2819:98;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:98;;;;;;;;;;;;-1:-1:-1;;199:2819:98;;;;;;;675:39:109;199:2819:98;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;449:5:95;199:2819:98;;435:10:95;:19;431:71;;1742:63:98;199:2819;;-1:-1:-1;199:2819:98;1742:15;199:2819;;;-1:-1:-1;199:2819:98;1742:63;:::i;199:2819::-;;;;;;-1:-1:-1;;199:2819:98;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:98;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;199:2819:98;;;;;;;;;;;;;;;:::i;:::-;1972:48:108;;199:2819:98;;;;;;;:::i;:::-;;;;;;;;;;;;;;2034:16:108;;2030:111;;199:2819:98;;2233:39:108;1057:70:100;2233:39:108;;4622:48:109;2196:77:108;2233:39;;;;2196:77;;:::i;:::-;2312:36;;4994:47:109;199:2819:98;2312:36:108;;;4994:47:109;;:::i;:::-;2389:37:108;;;4622:48:109;;:::i;:::-;1057:70:100;;:::i;:::-;199:2819:98;;;;;;;;;;;;;2030:111:108;2089:41;;;;-1:-1:-1;199:2819:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;4622:48:109;199:2819:98;2196:77:108;199:2819:98;1057:70:100;199:2819:98;;;:::i;:::-;;;;;2030:111:108;;;;;199:2819:98;;;;;;-1:-1:-1;;199:2819:98;;;;2357:1:24;199:2819:98;;;;;:::i;:::-;2303:62:24;;:::i;:::-;2357:1;:::i;199:2819:98:-;;;;;;-1:-1:-1;;199:2819:98;;;;;;;;;:::i;:::-;;;3361:103:30;;:::i;:::-;-1:-1:-1;;;;;199:2819:98;;4890:21:108;4886:75;;4975:11;;4971:73;;845:69:100;4803:22:109;;:::i;:::-;5173:21;;:::i;:::-;845:69:100;;;:::i;:::-;5180:10:108;199:2819:98;;;;5606:15:109;199:2819:98;;;;;5180:10:108;;;5606:33:109;;;:::i;:::-;5150:41:108;;5146:96;;5267:40;;;;;:::i;5146:96::-;199:2819:98;;-1:-1:-1;;;5214:17:108;;199:2819:98;;5214:17:108;4971:73;199:2819:98;;-1:-1:-1;;;5009:24:108;;199:2819:98;;5009:24:108;199:2819:98;;;;;;-1:-1:-1;;199:2819:98;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;199:2819:98;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;7556:1:108;199:2819:98;;;;;;;:::o;:::-;;;;;;;;;;:::o;5256:193:109:-;-1:-1:-1;;;;;199:2819:98;-1:-1:-1;199:2819:98;;;5383:15:109;199:2819:98;;;;;5383:59:109;;5256:193;;5383:59;:::i;199:2819:98:-;;;;;;;;;;;:::o;:::-;;;;;;;;;;1167:340:84;;13510:30:108;1167:340:84;199:2819:98;1167:340:84;6893:76:26;;:::i;:::-;;;:::i;:::-;1949:1:30;-1:-1:-1;;;;;;;;;;;199:2819:98;-1:-1:-1;;;;;199:2819:98;;;;1376:73:84;;1167:340;199:2819:98;;;;:::i;:::-;13510:30:108;199:2819:98;;;13510:30:108;;;;;;:::i;:::-;199:2819:98;;;;-1:-1:-1;;;;;199:2819:98;13555:31:108;13551:88;;13653:20;;;;199:2819:98;;;;;;;;;;13653:25:108;13649:85;;13748:29;;;199:2819:98;;13748:29:108;;199:2819:98;13748:43:108;;-1:-1:-1;;;;;199:2819:98;;;13748:43:108;;13744:943;;1167:340:84;199:2819:98;;;15647:32:108;199:2819:98;14817:36:108;199:2819:98;;;14697:30:108;199:2819:98;;;;;;;;;;;;1398:1:84;199:2819:98;;-1:-1:-1;;;;;;199:2819:98;;;;;;-1:-1:-1;;;;;199:2819:98;;;;;;;;14697:30:108;13510;14747:13;;199:2819:98;;;;-1:-1:-1;;;;;;199:2819:98;-1:-1:-1;;;;;199:2819:98;;;;;;;;;14771:36:108;819:34:75;837:15;819:34;:::i;:::-;1949:1:30;199:2819:98;;-1:-1:-1;;;;199:2819:98;;;;;;-1:-1:-1;;;199:2819:98;;;;;;;;14771:36:108;199:2819:98;;;;;;1949:1:30;199:2819:98;;-1:-1:-1;;;;;199:2819:98;;;;;;-1:-1:-1;;;;;;199:2819:98;;;;;;;;14817:36:108;14864:42;199:2819:98;14883:23:108;;;199:2819:98;;;;;;;;;1398:1:84;199:2819:98;;;;;;;1398:1:84;199:2819:98;;14864:42:108;14917:38;199:2819:98;14934:21:108;;;199:2819:98;;;;;;;1398:1:84;199:2819:98;;;;;;;;;;;;1398:1:84;199:2819:98;;14917:38:108;14965:34;14980:19;;;199:2819:98;14965:34:108;199:2819:98;;14965:34:108;199:2819:98;-1:-1:-1;;;;;199:2819:98;;;;;;;15010:135:108;;1167:340:84;-1:-1:-1;15158:36:108;;;199:2819:98;-1:-1:-1;;;;;199:2819:98;;;;15154:157:108;;1167:340:84;-1:-1:-1;15324:35:108;;;199:2819:98;-1:-1:-1;;;;;199:2819:98;;;;15320:153:108;;1167:340:84;-1:-1:-1;15486:34:108;;;199:2819:98;-1:-1:-1;;;;;199:2819:98;;;;15482:152:108;;1167:340:84;-1:-1:-1;15647:32:108;199:2819:98;-1:-1:-1;;;;;199:2819:98;;;;;;;15643:145:108;;1167:340:84;:::o;15643:145:108:-;15709:68;;;:::i;:::-;;1167:340:84:o;15482:152:108:-;15550:73;;;:::i;:::-;;15482:152;;;15320:153;15389:73;;;:::i;:::-;;15320:153;;;15154:157;15224:76;;;:::i;:::-;;15154:157;;;15010:135;15073:61;;;:::i;:::-;;15010:135;;;13744:943;13811:36;;;199:2819:98;13811:50:108;;-1:-1:-1;;;;;199:2819:98;;;13811:50:108;;13807:405;;13744:943;14230:34;;;199:2819:98;14230:48:108;;-1:-1:-1;;;;;199:2819:98;;;14230:48:108;13744:943;14226:451;14302:21;;;199:2819:98;;14302:21:108;;14351:19;;;199:2819:98;14351:24:108;:74;;;14298:365;14347:150;;14298:365;;199:2819:98;15647:32:108;14298:365;14817:36;199:2819:98;;14298:365:108;;14226:451;;;;;;;13744:943;;14347:150;199:2819:98;-1:-1:-1;;;14460:14:108;;;;;14351:74;-1:-1:-1;14379:32:108;;;199:2819:98;14379:46:108;;-1:-1:-1;;;;;199:2819:98;;;14379:46:108;;14351:74;;14298:365;14525:19;;;199:2819:98;14525:24:108;;;:74;;;14298:365;14521:142;;14298:365;;199:2819:98;15647:32:108;14298:365;14817:36;199:2819:98;;14298:365:108;;;14525:74;-1:-1:-1;14553:32:108;;;199:2819:98;14553:46:108;;-1:-1:-1;;;;;199:2819:98;;;14553:46:108;;;14525:74;;13807:405;13885:23;;;199:2819:98;;13885:23:108;;13936:35;;;199:2819:98;13936:49:108;;-1:-1:-1;;;;;199:2819:98;;;13936:49:108;13807:405;13932:125;199:2819:98;-1:-1:-1;;;14020:14:108;;;;;13881:317;14085:35;;;199:2819:98;14085:49:108;;-1:-1:-1;;;;;199:2819:98;;;14085:49:108;14081:117;13807:405;14081:117;199:2819:98;-1:-1:-1;;;14165:14:108;;;;;13649:85;199:2819:98;;-1:-1:-1;;;13701:22:108;;;;;13551:88;199:2819:98;;-1:-1:-1;;;13609:19:108;;;;;1376:73:84;6961:1:26;6893:76;;;:::i;:::-;;;:::i;6961:1::-;1376:73:84;;;2492:191:108;-1:-1:-1;;;;;199:2819:98;-1:-1:-1;199:2819:98;;;5606:15:109;199:2819:98;;;;;5606:33:109;;;:::i;:::-;5173:21;;:::i;:::-;4803:22;;:::i;:::-;199:2819:98;1884:1:100;199:2819:98;;;;;;;1884:1:100;199:2819:98;;;;;;;9478:25:70;;;:::i;199:2819:98:-;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;578:368::-;;;735:95;711:157;578:368;199:2819;;;;;766:63;;;;;;;;199:2819;766:63;;;199:2819;766:63;;;;;;:::i;:::-;735:95;:::i;:::-;766:63;199:2819;;;711:157;;;;;;:::i;:::-;879:61;;;578:368;:::o;879:61::-;199:2819;;;;;;;;766:63;912:17;;199:2819;766:63;912:17;;;;;:::i;199:2819::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;3612:132:109:-;819:34:75;837:15;819:34;:::i;:::-;3683:54:109;3703:17;199:2819:98;3684:36:109;199:2819:98;;;;;;;3684:36:109;;:::i;:::-;199:2819:98;;;3683:54:109;;:::i;:::-;199:2819:98;3612:132:109;:::o;3313:244::-;3418:17;199:2819:98;;;;;;;;;;;;;;3406:29:109;3402:85;;3503:47;3504:29;;;;:::i;3402:85::-;199:2819:98;;-1:-1:-1;;;3458:18:109;;;;;3361:103:30;;;;:::i;:::-;199:2819:98;;-1:-1:-1;;;;;199:2819:98;;;6521:23:108;;6517:79;;6650:11;;6646:70;;199:2819:98;6742:10:108;;;;;;-1:-1:-1;199:2819:98;;6887:49:108;;199:2819:98;;;;6864:6:108;;199:2819:98;;6821:18:108;;199:2819:98;;-1:-1:-1;;;;;199:2819:98;;;6821:18:108;6864:6;:::i;:::-;6887:49;199:2819:98;;6898:10:108;;;;6887:49;;;:::i;:::-;;;;3426:1:30;;1949;-1:-1:-1;;;;;;;;;;;199:2819:98;3860:283:30;6754:3:108;6790:9;6773:27;199:2819:98;6790:9:108;6783:17;6790:9;;;;;:::i;:::-;199:2819:98;6783:17:108;:::i;6773:27::-;6754:3;199:2819:98;6731:9:108;;6646:70;199:2819:98;;-1:-1:-1;;;6684:21:108;;;;;199:2819:98;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:98;;;;;;;;;;;;;;;;;;;;;;:::o;1178:370::-;;;1336:96;1312:158;1178:370;199:2819;;;;;1367:64;;;;;;;;199:2819;1367:64;;;199:2819;1367:64;;;;;;:::i;199:2819::-;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;199:2819:98;;;;:::o;:::-;;;:::o;1818:400::-;199:2819;;-1:-1:-1;;;2026:75:98;;;;-1:-1:-1;;;;;199:2819:98;;;2026:75;;;199:2819;;;;;;;;;;;;;2026:75;;199:2819;;1818:400;1971:169;;1995:107;;2026:75;199:2819;2026:75;:::i;3405:215:24:-;-1:-1:-1;;;;;199:2819:98;;;;3489:22:24;;3485:91;;-1:-1:-1;;;;;;;;;;;199:2819:98;;-1:-1:-1;;;;;;199:2819:98;;;;;;;;3975:40:24;-1:-1:-1;;3975:40:24;3405:215::o;3485:91::-;199:2819:98;;-1:-1:-1;;;3534:31:24;;3509:1;3534:31;;;199:2819:98;;;3534:31:24;2731:227:108;;2871:34;2731:227;199:2819:98;-1:-1:-1;199:2819:98;2871:18:108;199:2819:98;;;-1:-1:-1;199:2819:98;;;;;;;;;;;;;;;;;2871:34:108;199:2819:98;;-1:-1:-1;199:2819:98;2907:11:108;199:2819:98;;;-1:-1:-1;199:2819:98;;2927:16:108;199:2819:98;;;-1:-1:-1;199:2819:98;;;1884:1:100;199:2819:98;;;;;;;1884:1:100;199:2819:98;;;;;;;9478:25:70;;;:::i;2224:792:98:-;;;;;2579:34;2416:45;2357:12;199:2819;2416:45;;;:::i;:::-;2503:33;;;;;:::i;:::-;2579:34;;:::i;:::-;199:2819;;;2628:30;;;:61;;;2224:792;2628:93;;;;2224:792;2624:386;;2224:792;;;:::o;2624:386::-;199:2819;;;;2744:255;199:2819;;;;;;;;;;:::i;:::-;;;2772:213;;;199:2819;;;;2772:213;;199:2819;;;;;;2744:255;;;2772:213;2744:255;;;199:2819;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;2628:93::-;199:2819;;;2693:28;;2628:93;;:61;199:2819;;;2662:27;;2628:61;;3470:384:30;-1:-1:-1;;;;;;;;;;;1991:1:30;199:2819:98;;3670:20:30;3666:88;;1991:1;199:2819:98;;3470:384:30:o;3666:88::-;199:2819:98;;-1:-1:-1;;;3713:30:30;;;;;11948:968:108;12135:10;199:2819:98;;;;5606:15:109;199:2819:98;;;;;;11948:968:108;;;819:34:75;837:15;819:34;:::i;:::-;12135:10:108;199:2819:98;;;;5606:15:109;199:2819:98;;;;;5606:33:109;;;:::i;:::-;199:2819:98;;;;;;;;;12119:93:108;12835:74;12119:93;;;12660:30;12119:93;;:::i;:::-;837:15:75;;12222:67:108;819:34:75;837:15;819:34;:::i;:::-;12259:29:108;4803:22:109;;;:::i;12222:67:108:-;837:15:75;;12299:68:108;819:34:75;837:15;819:34;:::i;:::-;12335:31:108;5173:21:109;;;:::i;12299:68:108:-;12394:14;;12769:34;12394:14;12769:25;12394:18;:14;;:::i;:::-;:18;:::i;:::-;12726:33;12445:18;;199:2819:98;;7528:11:108;199:2819:98;;;;;;;12445:18:108;199:2819:98;12502:23:108;;199:2819:98;;12502:16:108;199:2819:98;;;;;;;12502:23:108;199:2819:98;390:70:100;;;;;:::i;:::-;12660:30:108;;;;;;:::i;:::-;12639:18;;199:2819:98;;7528:11:108;199:2819:98;;;;;;;12639:18:108;199:2819:98;12726:33:108;:::i;:::-;12700:23;;199:2819:98;;12502:16:108;199:2819:98;;;;;;;12700:23:108;199:2819:98;;;12769:18:108;199:2819:98;;;;;;;12769:25:108;199:2819:98;;;;;;;;;;;;;;;;12769:34:108;:50;199:2819:98;;;12769:50:108;:::i;:::-;199:2819:98;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:98;;;;12135:10:108;;199:2819:98;;12835:74:108;11948:968::o;14296:213:71:-;199:2819:98;14374:24:71;;;;14370:103;;199:2819:98;14296:213:71;:::o;14370:103::-;199:2819:98;;;;14421:41:71;;;;;;14452:2;14421:41;;;199:2819:98;;;;;14421:41:71;199:2819:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;7558:604:99:-;;199:2819:98;;7686:17:99;7682:83;;199:2819:98;7789:27:99;199:2819:98;7789:27:99;199:2819:98;;7789:27:99;;;;;;:::i;:::-;7860:14;;;:::i;:::-;199:2819:98;;;;;;;;;;;;;;;;7888:22:99;;;7884:77;;7975:21;-1:-1:-1;7975:84:99;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;7789:27;8082:17;;;199:2819:98;8075:24:99;:::o;7975:84::-;199:2819:98;;;8009:16:99;4622:13:109;199:2819:98;8009:16:99;:::i;:::-;199:2819:98;;;8001:24:99;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:23::-;199:2819:98;;;;8029:29:99;;8001:57;;;;7884:77;7933:17;;;7789:27;7933:17;;;199:2819:98;7926:24:99;:::o;7682:83::-;7726:28;;;;:::i;7558:604::-;;199:2819:98;;7686:17:99;7682:83;;199:2819:98;7789:27:99;199:2819:98;7789:27:99;199:2819:98;;7789:27:99;;;;;;:::i;:::-;7860:14;;;:::i;:::-;199:2819:98;;;;;;;;;;;;;;;;7888:22:99;;;7884:77;;7975:21;-1:-1:-1;7975:84:99;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7975:84::-;199:2819:98;;;8009:16:99;4994:12:109;199:2819:98;8009:16:99;:::i;:::-;199:2819:98;;;8001:24:99;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:29::-;;8001:57;;;;7682:83;7726:28;;;;:::i;7558:604::-;;199:2819:98;;7686:17:99;7682:83;;199:2819:98;7789:27:99;199:2819:98;7789:27:99;199:2819:98;;7789:27:99;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;199:2819:98;;;;;;;;;;;;;;;;7888:22:99;;;7884:77;;7975:21;-1:-1:-1;7975:84:99;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;199:2819:98;8075:24:99;:::o;7975:84::-;199:2819:98;;;8009:16:99;199:2819:98;;8009:16:99;:::i;:::-;199:2819:98;;;8001:24:99;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:29::-;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;199:2819:98;7926:24:99;:::o;7682:83::-;7726:28;;;;:::i;4148:103:23:-;966:10:28;-1:-1:-1;199:2819:98;;;;;;;;;675:39:109;;199:2819:98;;3901:31:23;199:2819:98;;4468:23:23;4464:108;;4148:103;:::o;:::-;966:10:28;-1:-1:-1;199:2819:98;;;;;;;;;966:38:109;;199:2819:98;;3901:31:23;199:2819:98;4148:103:23;966:10:28;-1:-1:-1;199:2819:98;;;;;;;;;821:37:109;;199:2819:98;;3901:31:23;199:2819:98;4148:103:23;-1:-1:-1;199:2819:98;;;-1:-1:-1;;;;;;;;;;;199:2819:98;;;;;;;;966:10:28;199:2819:98;;;;;;;;;3901:31:23;199:2819:98;7270:387:23;-1:-1:-1;;;;;199:2819:98;;1398:1:84;199:2819:98;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;199:2819:98;;;;1398:1:84;199:2819:98;;;;;;;;;;;-1:-1:-1;;;;;199:2819:98;;;;;;;;;;-1:-1:-1;;199:2819:98;7509:4:23;199:2819:98;;;966:10:28;;-1:-1:-1;;;;;199:2819:98;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;1398:1:84;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;199:2819:98;;-1:-1:-1;199:2819:98;;;;;;;;;675:39:109;;-1:-1:-1;;;;;;;;;;;2887:71:23;199:2819:98;;3901:31:23;199:2819:98;;;;-1:-1:-1;199:2819:98;;;;;;;;;;;-1:-1:-1;;;;;199:2819:98;;;;;;;;;;-1:-1:-1;;199:2819:98;7509:4:23;199:2819:98;;;966:10:28;;-1:-1:-1;;;;;199:2819:98;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;199:2819:98;;-1:-1:-1;199:2819:98;;;;;;;;;821:37:109;;-1:-1:-1;;;;;;;;;;;2887:71:23;199:2819:98;;3901:31:23;199:2819:98;7270:387:23;-1:-1:-1;;;;;199:2819:98;;-1:-1:-1;199:2819:98;;;;;;;;;966:38:109;;-1:-1:-1;;;;;;;;;;;2887:71:23;199:2819:98;;3901:31:23;199:2819:98;7270:387:23;-1:-1:-1;;;;;199:2819:98;;-1:-1:-1;199:2819:98;;;;;;;;;1109:35:109;;-1:-1:-1;;;;;;;;;;;2887:71:23;199:2819:98;;3901:31:23;199:2819:98;7270:387:23;-1:-1:-1;199:2819:98;;;-1:-1:-1;;;;;;;;;;;199:2819:98;;;;;;;;-1:-1:-1;;;;;199:2819:98;;;;;;;;;;;;3901:31:23;199:2819:98;7892:388:23;-1:-1:-1;199:2819:98;;;-1:-1:-1;;;;;;;;;;;199:2819:98;;;;;;;;-1:-1:-1;;;;;199:2819:98;;;;;;;;;;;;;;;;-1:-1:-1;199:2819:98;;;;;;;;;;;-1:-1:-1;;;;;199:2819:98;;;;;;;;;;-1:-1:-1;;199:2819:98;;;966:10:28;;-1:-1:-1;;;;;199:2819:98;;8155:40:23;-1:-1:-1;;8155:40:23;199:2819:98;8209:11:23;:::o;1670:188:56:-;199:2819:98;;-1:-1:-1;;;1797:53:56;;;;-1:-1:-1;;;;;199:2819:98;;;1797:53:56;;;199:2819:98;;;;;;;;;;;;;;;;;1797:53:56;;;199:2819:98;;;;;;;-1:-1:-1;;;;;199:2819:98;;;;;1797:53:56;199:2819:98;;;1797:53:56;:::i;199:2819:98:-;9219:12:99;199:2819:98;;;;;;9219:12:99;-1:-1:-1;199:2819:98;-1:-1:-1;;;;;;;;;;;199:2819:98;;-1:-1:-1;199:2819:98;:::o;:::-;9219:12:99;199:2819:98;;;;;;9219:12:99;-1:-1:-1;199:2819:98;-1:-1:-1;;;;;;;;;;;199:2819:98;;-1:-1:-1;199:2819:98;:::o;:::-;;;;;;;;-1:-1:-1;199:2819:98;;-1:-1:-1;199:2819:98;;;-1:-1:-1;199:2819:98;:::o;:::-;6360:12:99;199:2819:98;-1:-1:-1;;;199:2819:98;;;;;;;;;6360:12:99;199:2819:98;;;;;;6360:12:99;-1:-1:-1;199:2819:98;-1:-1:-1;;;;;;;;;;;199:2819:98;;:::o;:::-;6360:12:99;199:2819:98;-1:-1:-1;;;199:2819:98;;;;;;;;;6360:12:99;199:2819:98;;;;;;6360:12:99;-1:-1:-1;199:2819:98;-1:-1:-1;;;;;;;;;;;199:2819:98;;:::o;:::-;;;;;-1:-1:-1;;;199:2819:98;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6246:584:99;;;;6360:12;199:2819:98;;;6360:24:99;;6356:75;;6246:584;6474:30;;;:::i;:::-;199:2819:98;;;;;;6578:12:99;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:99;;;-1:-1:-1;;;199:2819:98;;;;;;;;;-1:-1:-1;199:2819:98;;;-1:-1:-1;199:2819:98;;;;;;6798:25:99;199:2819:98;6246:584:99:o;6600:188::-;8310:38:73;;-1:-1:-1;;;;;199:2819:98;;-1:-1:-1;8310:38:73;:::i;:::-;6753:24:99;;;;;:::i;:::-;6798:25;6246:584;:::o;6604:24::-;199:2819:98;;;;;;6614:14:99;;-1:-1:-1;6604:24:99;;;6356:75;-1:-1:-1;;;199:2819:98;;;;;;;;;;;;;;;;-1:-1:-1;199:2819:98;;;;-1:-1:-1;;;;;;;;;;;199:2819:98;;6356:75:99;;;6246:584;;;;6360:12;199:2819:98;;;6360:24:99;;6356:75;;6246:584;6474:30;;;:::i;:::-;199:2819:98;;;;;;6578:12:99;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:99;;;-1:-1:-1;;;199:2819:98;;;;;;;;;-1:-1:-1;199:2819:98;;;-1:-1:-1;199:2819:98;;;;;;6798:25:99;199:2819:98;6246:584:99:o;6600:188::-;8310:38:73;;-1:-1:-1;;;;;199:2819:98;;-1:-1:-1;8310:38:73;:::i;:::-;6753:24:99;;;;;:::i;6604:::-;199:2819:98;;;;;;6614:14:99;;-1:-1:-1;6604:24:99;;;6356:75;-1:-1:-1;;;199:2819:98;;;;;;;;;;;;;;;;-1:-1:-1;199:2819:98;;;;-1:-1:-1;;;;;;;;;;;199:2819:98;;6356:75:99;;;6246:584;;;;;6360:12;;;199:2819:98;;;6360:24:99;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;199:2819:98;;;;;;6578:12:99;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:99;;;-1:-1:-1;;;;;199:2819:98;;;;;;;6644:21:99;;;:29;:21;;:::i;6600:188::-;6753:24;;199:2819:98;;8310:38:73;;-1:-1:-1;;;;;199:2819:98;;;;;8310:38:73;:::i;:::-;6753:24:99;;;:::i;6604:::-;199:2819:98;;;;;;6614:14:99;;-1:-1:-1;6604:24:99;;;6356:75;-1:-1:-1;;;199:2819:98;;;;;;6360:12:99;199:2819:98;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:99;;;199:2819:98;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;8406:869:99:-;1113:13:98;199:2819;8620:15:99;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;:::i;:::-;9014:8;;9010:62;;199:2819:98;9130:48:99;9170:7;;;:::i;:::-;1113:13:98;13267:109:99;;-1:-1:-1;;;;;;;;;;;13267:109:99;13089:293;;9130:48;199:2819:98;:::i;:::-;;9252:15:99;9259:7;199:2819:98;9219:31:99;199:2819:98;9232:17:99;199:2819:98;;;;;;;;9232:17:99;;199:2819:98;-1:-1:-1;;;;;199:2819:98;;;;9219:31:99;:::i;:::-;199:2819:98;;;;;;;;;9259:7:99;;:::i;:::-;199:2819:98;;;;9252:15:99;9176:1;;9188:80;;8406:869::o;9010:62::-;9038:23;8578:11;9038:23;8578:11;9038:23;8578:11;9038:23;8578:11;9038:23;:::o;8674:241::-;8721:14;;;;;:::i;:::-;199:2819:98;;;;;;;1113:13;8578:11:99;13267:109;-1:-1:-1;;;;;;;;;;;13267:109:99;;199:2819:98;8939:60:99;;13267:109;199:2819:98;;;;;;;8753:55:99;199:2819:98;;;8828:10:99;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;8406:869;514:12:98;199:2819;8620:15:99;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;:::i;:::-;9014:8;;9010:62;;199:2819:98;9130:48:99;9170:7;;;:::i;:::-;514:12:98;13267:109:99;;-1:-1:-1;;;;;;;;;;;13267:109:99;13089:293;;199:2819:98;;9252:15:99;9259:7;199:2819:98;9219:31:99;199:2819:98;9232:17:99;199:2819:98;;;;;;;;9219:31:99;:::i;8674:241::-;8721:14;;;;;:::i;:::-;199:2819:98;;;;;;;514:12;8578:11:99;13267:109;-1:-1:-1;;;;;;;;;;;13267:109:99;;199:2819:98;8939:60:99;;13267:109;199:2819:98;;;;;;;8753:55:99;199:2819:98;;;8828:10:99;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;8406:869;;;199:2819:98;;8620:15:99;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;199:2819:98;9219:31:99;199:2819:98;9130:48:99;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;199:2819:98;;9176:1:99;199:2819:98;9232:17:99;199:2819:98;;;;;;;;9232:17:99;;199:2819:98;-1:-1:-1;;;;;199:2819:98;;;;9219:12:99;;:31;:::i;9010:62::-;8578:11;;-1:-1:-1;8578:11:99;;-1:-1:-1;8578:11:99;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;199:2819:98;;;;;;;8939:60:99;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;199:2819:98;;;;;;8753:55:99;199:2819:98;;;8753:55:99;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;199:2819:98;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;:::o;525:595:95:-;;-1:-1:-1;199:2819:98;;;;;716:88:95;;;;;199:2819:98;716:88:95;;;;;;;;;783:4;716:88;;;199:2819:98;;;;;;;;;;;:::i;716:88:95:-;698:107;;;;;;;:::i;:::-;199:2819:98;;857:45:95;;;;;;;;199:2819:98;;;;;857:45:95;;;199:2819:98;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;199:2819:98;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;199:2819:98;;;;;;;;;;916:8:95;912:175;;1096:17;525:595;:::o;912:175::-;199:2819:98;;;944:22:95;;;940:36;;990:87;;2658:162:24;-1:-1:-1;;;;;;;;;;;199:2819:98;-1:-1:-1;;;;;199:2819:98;966:10:28;2717:23:24;2713:101;;2658:162::o;2713:101::-;199:2819:98;;-1:-1:-1;;;2763:40:24;;966:10:28;2763:40:24;;;199:2819:98;;;2763:40:24;199:2819:98;;;;;;;:::o;4996:4226:70:-;;199:2819:98;;;;-1:-1:-1;;199:2819:98;4996:4226:70;5584:131;;;;;;;;;;;;5796:10;;5792:368;;6270:20;;;;6266:143;;6695:300;;;;940:4:60;-1:-1:-1;940:4:60;7214:31:70;;7259:375;;;8094:1;199:2819:98;;8075:1:70;199:2819:98;8074:21:70;199:2819:98;;;940:4:60;;199:2819:98;;;;940:4:60;;199:2819:98;;;;940:4:60;;199:2819:98;;;;940:4:60;;199:2819:98;;;;940:4:60;;199:2819:98;;;;940:4:60;;199:2819:98;7259:375:70;;;;-1:-1:-1;7259:375:70;;;6695:300;;;;;;199:2819:98;6695:300:70;;7259:375;7700:21;199:2819:98;4996:4226:70;:::o;6266:143::-;6330:16;;3066:5;199:2819:98;940:4:60;3060:42:70;6322:71;:::i;5792:368::-;6126:19;;;;;;;:::i;1271:160:56:-;199:2819:98;;-1:-1:-1;;;1380:43:56;;;;-1:-1:-1;;;;;199:2819:98;;;1380:43:56;;;199:2819:98;;;;;;;;;1380:43:56;;;;;;199:2819:98;1380:43:56;:::i;:::-;;:::i;12922:460:108:-;;13024:14;;:::i;:::-;13015:23;;;13011:75;;-1:-1:-1;199:2819:98;;;13100:20:108;199:2819:98;;;;;;;;13128:10:108;199:2819:98;;;;;;;;;;13096:93:108;;13208:32;13128:10;13208:32;;:::i;:::-;13255:11;;;13251:68;;-1:-1:-1;199:2819:98;;;13100:20:108;199:2819:98;;;;;;;;13128:10:108;199:2819:98;;;;;;;;;-1:-1:-1;;199:2819:98;13371:4:108;199:2819:98;;;12922:460:108:o;13251:68::-;199:2819:98;;-1:-1:-1;;;13289:19:108;;;;;13096:93;199:2819:98;;-1:-1:-1;;;13162:16:108;;;;;13011:75;199:2819:98;;-1:-1:-1;;;13061:14:108;;;;;10580:184:99;5173:12:109;199:2819:98;10446:8:73;;;:63;-1:-1:-1;10446:63:73;-1:-1:-1;;;;;199:2819:98;;10726:7:99;199:2819:98;;10736:12:99;199:2819:98;;;;;;10736:12:99;-1:-1:-1;199:2819:98;-1:-1:-1;;;;;;;;;;;199:2819:98;;10580:184:99;:::o;10726:31::-;;-1:-1:-1;10580:184:99;:::o;10446:63:73:-;199:2819:98;;;;;;;;5173:12:109;-1:-1:-1;13267:109:99;;;199:2819:98;;;10446:63:73;;10580:184:99;4803:13:109;199:2819:98;10446:8:73;;;:63;-1:-1:-1;10446:63:73;-1:-1:-1;;;;;199:2819:98;;10726:7:99;199:2819:98;;10736:12:99;199:2819:98;;;;;;10736:12:99;-1:-1:-1;199:2819:98;-1:-1:-1;;;;;;;;;;;199:2819:98;;10580:184:99;:::o;10446:63:73:-;199:2819:98;;;;;;;;4803:13:109;-1:-1:-1;13267:109:99;;;199:2819:98;;;10446:63:73;;10580:184:99;199:2819:98;;10446:8:73;;;:63;-1:-1:-1;10446:63:73;-1:-1:-1;;;;;199:2819:98;;10726:7:99;199:2819:98;;10736:12:99;:17;:12;;:17;:::i;10446:63:73:-;199:2819:98;;;;;;;;;;13267:109:99;-1:-1:-1;13267:109:99;;-1:-1:-1;13267:109:99;;;199:2819:98;;;10446:63:73;;1662:280:100;;;1884:1;199:2819:98;;;;;;;1884:1:100;199:2819:98;;;;;;;9478:25:70;;;:::i;6999:207:99:-;4622:13:109;199:2819:98;9737:15:73;-1:-1:-1;9762:18:73;9795:7;9801:1;9795:7;;9791:234;;6999:207:99;10049:53:73;;;;:::i;:::-;10120:8;;;:63;-1:-1:-1;10120:63:73;-1:-1:-1;;;;;199:2819:98;;7168:7:99;199:2819:98;;7178:17:99;199:2819:98;7178:17:99;;:::i;10120:63:73:-;10135:41;10168:7;10135:48;10168:7;;:::i;10135:41::-;199:2819:98;;;;;10135:48:73;10120:63;;9791:234;9838:14;;;;;:::i;:::-;199:2819:98;;;;;;;10049:53:73;13267:109:99;4622:13:109;-1:-1:-1;13267:109:99;199:2819:98;13267:109:99;;-1:-1:-1;;;;;;;;;;;13267:109:99;199:2819:98;;;;;9870:48:73;9866:149;199:2819:98;;;9938:10:73;9866:149;9791:234;;9866:149;9993:7;;;;;;:::i;:::-;9866:149;9791:234;;6999:207:99;4994:12:109;199:2819:98;9737:15:73;-1:-1:-1;9762:18:73;9795:7;9801:1;9795:7;;9791:234;;6999:207:99;10049:53:73;;;;:::i;:::-;10120:8;;;:63;-1:-1:-1;10120:63:73;-1:-1:-1;;;;;199:2819:98;;7168:7:99;199:2819:98;;7178:17:99;199:2819:98;7178:17:99;;:::i;10120:63:73:-;10135:41;10168:7;10135:48;10168:7;;:::i;10135:48::-;10120:63;;9791:234;9838:14;;;;;:::i;:::-;199:2819:98;;;;;;;10049:53:73;13267:109:99;4994:12:109;-1:-1:-1;13267:109:99;199:2819:98;13267:109:99;;-1:-1:-1;;;;;;;;;;;13267:109:99;199:2819:98;;;;;9870:48:73;9866:149;199:2819:98;;;9938:10:73;9866:149;9791:234;;9866:149;9993:7;;;;;;:::i;:::-;9866:149;9791:234;;6999:207:99;;199:2819:98;;9737:15:73;-1:-1:-1;9762:18:73;9795:7;9801:1;9795:7;;9791:234;;6999:207:99;10049:53:73;;;;;:::i;:::-;10120:8;;;:63;-1:-1:-1;10120:63:73;;-1:-1:-1;;;;;199:2819:98;;7168:7:99;199:2819:98;;;7178:12:99;;:17;:12;;:17;:::i;10120:63:73:-;10135:41;10168:7;10135:48;10168:7;;:::i;:::-;10135:41;13267:109:99;;;;;;13089:293;;10135:48:73;10120:63;;;9791:234;9838:14;;;;;:::i;:::-;199:2819:98;;;;;;;10049:53:73;13267:109:99;;-1:-1:-1;13267:109:99;199:2819:98;13267:109:99;;;-1:-1:-1;13267:109:99;;199:2819:98;;;;;9870:48:73;9866:149;199:2819:98;;;9938:10:73;9866:149;9791:234;;9866:149;9993:7;;;;;;:::i;:::-;9866:149;9791:234;;199:2819:98;;;;;;;:::i;:::-;-1:-1:-1;199:2819:98;;;;;;;:::o;11486:272:99:-;199:2819:98;;:::i;:::-;;;;:::i;:::-;;4622:13:109;199:2819:98;;;;;;;;4622:13:109;-1:-1:-1;199:2819:98;-1:-1:-1;;;;;;;;;;;199:2819:98;;:::i;:::-;;;;;;;;;;;;11731:17:99;;199:2819:98;;11718:12:99;199:2819:98;;;;;;11718:12:99;-1:-1:-1;199:2819:98;-1:-1:-1;;;;;;;;;;;199:2819:98;;;;;;;;:::i;:::-;;;;11672:79:99;;199:2819:98;11486:272:99;:::o;:::-;199:2819:98;;:::i;:::-;;;;:::i;:::-;;4994:12:109;199:2819:98;;;;;;;;4994:12:109;-1:-1:-1;199:2819:98;-1:-1:-1;;;;;;;;;;;199:2819:98;;:::i;:::-;;;;;;;;;;;;11731:17:99;;199:2819:98;;11718:12:99;199:2819:98;;;;;;11718:12:99;-1:-1:-1;199:2819:98;-1:-1:-1;;;;;;;;;;;199:2819:98;;;;;;;;:::i;11486:272:99:-;;199:2819:98;11452:22:73;11718:31:99;11486:272;199:2819:98;;:::i;:::-;;;;:::i;:::-;;11452:22:73;;:::i;:::-;199:2819:98;;:::i;:::-;;11718:12:99;199:2819:98;;;;;11731:17:99;199:2819:98;;;;;11731:17:99;;199:2819:98;;11718:12:99;;:31;:::i;:::-;199:2819:98;;;;;;;;;:::i;:::-;;;;;;11731:17:99;11672:79;;199:2819:98;11486:272:99;:::o;7738:720:56:-;;-1:-1:-1;7875:421:56;7738:720;7875:421;;;;;;;;;;;;-1:-1:-1;7875:421:56;;8310:15;;-1:-1:-1;;;;;;199:2819:98;;8328:26:56;:31;8310:68;8306:146;;7738:720;:::o;8306:146::-;199:2819:98;;-1:-1:-1;;;8401:40:56;;-1:-1:-1;;;;;199:2819:98;;;8401:40:56;;;199:2819:98;;;8401:40:56;8310:68;8377:1;8362:16;;8310:68;;1258:280:100;;;199:2819:98;;;;;;;;;;;;;;;;9478:25:70;;;;;:::i;:::-;9552;;;;;;:29;;199:2819:98;;;;;;;1258:280:100;:::o;10695:389:73:-;5173:12:109;199:2819:98;10871:8:73;;;10895:20;10833:17;10895:20;10833:17;10895:20;10833:17;10895:20;:::o;10867:211::-;199:2819:98;;;;;;;;5173:12:109;10833:17:73;13267:109:99;;;199:2819:98;11014:1:73;;199:2819:98;;;;;;;11030:37:73:o;10695:389::-;4803:13:109;199:2819:98;10871:8:73;;;10895:20;10833:17;10895:20;10833:17;10895:20;10833:17;10895:20;:::o;10867:211::-;199:2819:98;;;;;;;;4803:13:109;10833:17:73;13267:109:99;;;199:2819:98;11014:1:73;;199:2819:98;;;;;;;11030:37:73:o;10695:389::-;199:2819:98;;10871:8:73;;;10895:20;;10833:17;10895:20;10833:17;10895:20;10833:17;10895:20;:::o;10867:211::-;199:2819:98;;;;;;;;;;10833:17:73;13267:109:99;;10833:17:73;13267:109:99;;;199:2819:98;11014:1:73;199:2819:98;;;;;;;11030:37:73;:::o;18080:5181:70:-;18246:1;18241:6;;;18237:53;;18246:1;19217:14;-1:-1:-1;;;19278:16:70;;;19274:92;;18080:5181;22827:18;22717;22607;22498;22387;22278;23216:28;19383:15;19898:6;19383:15;-1:-1:-1;;;23237:6:70;19383:15;;;19379:90;;18080:5181;19493:7;19486:15;;;19482:90;;18080:5181;19596:7;19589:15;;;19585:89;;18080:5181;19698:6;19691:14;;;19687:87;;18080:5181;19798:6;19791:14;;;19787:87;;18080:5181;19891:14;;19887:61;;18080:5181;20374:1;199:2819:98;18246:1:70;199:2819:98;22284:6:70;;;;:::i;:::-;199:2819:98;;;;;22278:18:70;22393:6;;;;:::i;22387:18::-;22504:6;;;;:::i;22498:18::-;22613:6;;;;:::i;22607:18::-;22723:6;;;;:::i;22717:18::-;22833:6;;;;:::i;22827:18::-;23237:6;;;:::i;:::-;23232:11;;;199:2819:98;23216:28:70;940:4:60;;18080:5181:70;:::o;19887:61::-;18246:1;199:2819:98;19887:61:70;;19787:87;199:2819:98;;;;;19787:87:70;;;19687;199:2819:98;;;;;19687:87:70;;;19585:89;199:2819:98;;;;;19585:89:70;;;19482:90;199:2819:98;;;;;19482:90:70;;;19379;199:2819:98;;;;;19379:90:70;;;19274:92;-1:-1:-1;;;;199:2819:98;-1:-1:-1;199:2819:98;;;;19274:92:70;;12497:447:99;;12694:10;;;;;;12926:11;;12497:447;:::o;12687:230::-;3721:5:70;;;;;199:2819:98;;3731:5:70;;;199:2819:98;;;;;;;;;1113:13;-1:-1:-1;13267:109:99;199:2819:98;13267:109:99;;-1:-1:-1;;;;;;;;;;;13267:109:99;199:2819:98;;;;;-1:-1:-1;12771:136:99;199:2819:98;;;12830:10:99;;12771:136;;12687:230;;;12771:136;199:2819:98;;;;;;;;;;;12771:136:99;;;12497:447;;12694:10;;;;;;12926:11;;12497:447;:::o;12687:230::-;3721:5:70;;;;;199:2819:98;;3731:5:70;;;199:2819:98;;;;;;;;;514:12;-1:-1:-1;13267:109:99;199:2819:98;13267:109:99;;-1:-1:-1;;;;;;;;;;;13267:109:99;199:2819:98;;;;;-1:-1:-1;12771:136:99;199:2819:98;;;12830:10:99;;12771:136;;12687:230;;;12771:136;199:2819:98;;;;;;;;;;;12771:136:99;;;12497:447;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;3721:5:70;;;;;;199:2819:98;;3731:5:70;;;199:2819:98;;;;;;;;;13267:109:99;-1:-1:-1;13267:109:99;199:2819:98;13267:109:99;;;-1:-1:-1;13267:109:99;;199:2819:98;;;;;-1:-1:-1;12771:136:99;199:2819:98;;;12830:10:99;;12771:136;;12687:230;;;;12771:136;199:2819:98;;;;;;;;;;;12771:136:99;;;7084:141:26;199:2819:98;-1:-1:-1;;;;;;;;;;;199:2819:98;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;199:2819:98;;-1:-1:-1;;;7191:17:26;;;;;1776:194:60;1829:135;;;;;;;;199:2819:98;5173:12:109;199:2819:98;;-1:-1:-1;;;199:2819:98;;;;;;;;;5173:12:109;199:2819:98;;;;;;5173:12:109;-1:-1:-1;199:2819:98;;;;;;;;;;-1:-1:-1;;199:2819:98;;;;;;;-1:-1:-1;;;;;;;;;;;199:2819:98;;;;:::o;:::-;4803:13:109;199:2819:98;;-1:-1:-1;;;199:2819:98;;;;;;;;;4803:13:109;199:2819:98;;;;;;4803:13:109;-1:-1:-1;199:2819:98;;;;;;;;;;-1:-1:-1;;199:2819:98;;;;;;;-1:-1:-1;;;;;;;;;;;199:2819:98;;;;:::o;:::-;;;-1:-1:-1;;;199:2819:98;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;199:2819:98;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11657:922:73;5173:12:109;199:2819:98;11657:922:73;;;11864:7;;;;11936;11916:28;11936:7;;:::i;11916:28::-;199:2819:98;;;;;;;;;;;;12103:13:73;;;12099:89;;12251:14;;;;;12285:19;;;199:2819:98;;;;;;;;;;;;;;;;;12285:19:73;199:2819:98;;12423:25:73;;:::o;12247:163::-;199:2819:98;;12343:52:73;199:2819:98;12353:41:73;199:2819:98;;:::i;:::-;;;;;;;;12353:41:73;-1:-1:-1;;;;;199:2819:98;;12353:41:73;;;199:2819:98;12343:52:73;:::i;:::-;12247:163;;12099:89;199:2819:98;;-1:-1:-1;;;12143:30:73;;;;;11860:713;199:2819:98;12479:52:73;199:2819:98;12489:41:73;199:2819:98;;:::i;12489:41:73:-;-1:-1:-1;;;;;199:2819:98;;12489:41:73;;;199:2819:98;12343:52:73;:::i;12479:::-;11870:1;12545:17;;:::o;11657:922::-;4803:13:109;199:2819:98;11657:922:73;;;11864:7;;;;11936;11916:28;11936:7;;:::i;11916:28::-;199:2819:98;;;;;;;;;;;;12103:13:73;;;12099:89;;12251:14;;;;;12285:19;;;199:2819:98;;;;;;;;;;;;;;;;;12247:163:73;199:2819:98;;12343:52:73;199:2819:98;12353:41:73;199:2819:98;;:::i;12353:41:73:-;-1:-1:-1;;;;;199:2819:98;;12353:41:73;;;199:2819:98;12343:52:73;:::i;11860:713::-;199:2819:98;12479:52:73;199:2819:98;12489:41:73;199:2819:98;;:::i;12489:41:73:-;-1:-1:-1;;;;;199:2819:98;;12489:41:73;;;199:2819:98;12343:52:73;:::i;11657:922::-;199:2819:98;;11657:922:73;;;11864:7;;;;11936;11916:28;11936:7;;:::i;:::-;11916:28;13267:109:99;;;;;;13089:293;;11916:28:73;199:2819:98;;;;;;;;;;;;12103:13:73;;;12099:89;;12251:14;;;;;12285:19;;;;199:2819:98;;;;;;;;;;;;;;;;;12247:163:73;199:2819:98;;;12343:52:73;199:2819:98;12353:41:73;199:2819:98;;:::i;:::-;;;;;;;;12353:41:73;-1:-1:-1;;;;;199:2819:98;;12353:41:73;;;199:2819:98;12343:52:73;:::i;11860:713::-;199:2819:98;;12479:52:73;199:2819:98;12489:41:73;199:2819:98;;:::i;12489:41:73:-;-1:-1:-1;;;;;199:2819:98;;12489:41:73;;;199:2819:98;12343:52:73;:::i","linkReferences":{},"immutableReferences":{"60387":[{"start":2016,"length":32},{"start":2606,"length":32}],"64680":[{"start":4185,"length":32},{"start":4913,"length":32},{"start":9125,"length":32}],"71027":[{"start":4989,"length":32},{"start":6346,"length":32}],"71030":[{"start":6707,"length":32},{"start":7907,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","DELEGATOR_FACTORY()":"6da3e06d","DEPOSITOR_WHITELIST_ROLE()":"1b66c9e1","DEPOSIT_LIMIT_SET_ROLE()":"a21a1df9","DEPOSIT_WHITELIST_SET_ROLE()":"db388715","FACTORY()":"2dd31000","IS_DEPOSIT_LIMIT_SET_ROLE()":"1415519b","SLASHER_FACTORY()":"87df0788","activeBalanceOf(address)":"59f769a9","activeBalanceOfAt(address,uint48,bytes)":"efb559d6","activeBalanceOfHints(address,address,uint48)":"f9e1bf6c","activeShares()":"bfefcd7b","activeSharesAt(uint48,bytes)":"50f22068","activeSharesHint(address,uint48)":"8326056f","activeSharesHintInternal(uint48)":"55a2c672","activeSharesOf(address)":"9d66201b","activeSharesOfAt(address,uint48,bytes)":"2d73c69c","activeSharesOfHint(address,address,uint48)":"de499716","activeSharesOfHintInternal(address,uint48)":"eb556238","activeStake()":"bd49c35f","activeStakeAt(uint48,bytes)":"810da75d","activeStakeHint(address,uint48)":"64b03fdc","activeStakeHintInternal(uint48)":"67567add","burner()":"27810b6e","claim(address,uint256)":"aad3ec96","claimBatch(address,uint256[])":"7c04c80a","collateral()":"d8dfeb45","currentEpoch()":"76671808","currentEpochStart()":"61a8c8c4","delegator()":"ce9b7930","deposit(address,uint256)":"47e7ef24","depositLimit()":"ecf70858","depositWhitelist()":"48d3b775","epochAt(uint48)":"7953b33b","epochDuration()":"4ff0876a","epochDurationInit()":"46361671","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(uint64,address,bytes)":"57ec83cc","isDelegatorInitialized()":"50861adc","isDepositLimit()":"a1b12202","isDepositorWhitelisted(address)":"794b15b7","isInitialized()":"392e53cd","isSlasherInitialized()":"6ec1e3f8","isWithdrawalsClaimed(uint256,address)":"a5d03223","migrate(uint64,bytes)":"2abe3048","nextEpochStart()":"73790ab3","onSlash(uint256,uint48)":"7278e31c","owner()":"8da5cb5b","previousEpochStart()":"281f5752","redeem(address,uint256)":"1e9a6950","renounceOwnership()":"715018a6","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setDelegator(address)":"83cd9cc3","setDepositLimit(uint256)":"bdc8144b","setDepositWhitelist(bool)":"4105a7dd","setDepositorWhitelistStatus(address,bool)":"a2861466","setIsDepositLimit(bool)":"5346e34f","setSlasher(address)":"aabc2496","slashableBalanceOf(address)":"c31e8dd7","slasher()":"b1344271","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","totalStake()":"8b0e9f3f","transferOwnership(address)":"f2fde38b","version()":"54fd4d50","withdraw(address,uint256)":"f3fef3a3","withdrawalShares(uint256)":"afba70ad","withdrawalSharesOf(uint256,address)":"a3b54172","withdrawals(uint256)":"5cc07076","withdrawalsOf(uint256,address)":"f5e7ee0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyClaimed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DepositLimitReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientDeposit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientRedemption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientWithdrawal\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidClaimer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLengthEpochs\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOnBehalfOf\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRecipient\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoles\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoPreviousEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotFactory\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhitelistedDepositor\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchRedeem\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchWithdraw\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Claim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ClaimBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"name\":\"OnSlash\",\"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\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"SetDelegator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"SetDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositWhitelist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositorWhitelistStatus\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetIsDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"}],\"name\":\"SetSlasher\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DELEGATOR_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSITOR_WHITELIST_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_WHITELIST_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"activeBalanceOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeBalanceOfHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeSharesHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeSharesHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeSharesOfHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeSharesOfHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeStakeHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeStakeHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"burner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"}],\"name\":\"claimBatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"depositedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositWhitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"epochAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDurationInit\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"initialVersion\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDelegatorInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDepositLimit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isDepositorWhitelisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSlasherInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isWithdrawalsClaimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"onSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"previousEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"withdrawnAssets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator_\",\"type\":\"address\"}],\"name\":\"setDelegator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"setDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositorWhitelistStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setIsDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher_\",\"type\":\"address\"}],\"name\":\"setSlasher\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"slashableBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawalShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"Claim(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epoch\":\"epoch the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"ClaimBatch(address,address,uint256[],uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epochs\":\"epochs the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"Deposit(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral deposited\",\"depositor\":\"account that made the deposit\",\"onBehalfOf\":\"account the deposit was made on behalf of\",\"shares\":\"amount of the active shares minted\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(uint256,uint48,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to slash\",\"captureTimestamp\":\"time point when the stake was captured\",\"slashedAmount\":\"real amount of the collateral slashed\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetDelegator(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"delegator\":\"vault's delegator to delegate the stake to networks and operators\"}},\"SetDepositLimit(uint256)\":{\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"SetDepositWhitelist(bool)\":{\"params\":{\"status\":\"if enabled deposit whitelist\"}},\"SetDepositorWhitelistStatus(address,bool)\":{\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisted the account\"}},\"SetIsDepositLimit(bool)\":{\"params\":{\"status\":\"if enabled deposit limit\"}},\"SetSlasher(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"slasher\":\"vault's slasher to provide a slashing mechanism to networks\"}},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral withdrawn\",\"burnedShares\":\"amount of the active shares burned\",\"claimer\":\"account that needs to claim the withdrawal\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawer\":\"account that made the withdrawal\"}}},\"kind\":\"dev\",\"methods\":{\"activeBalanceOf(address)\":{\"params\":{\"account\":\"account to get the active balance for\"},\"returns\":{\"_0\":\"active balance for the account\"}},\"activeBalanceOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the active balance for\",\"hints\":\"hints for checkpoints' indexes\",\"timestamp\":\"time point to get the active balance for the account at\"},\"returns\":{\"_0\":\"active balance for the account at the timestamp\"}},\"activeShares()\":{\"returns\":{\"_0\":\"total number of active shares\"}},\"activeSharesAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total number of active shares at\"},\"returns\":{\"_0\":\"total number of active shares at the timestamp\"}},\"activeSharesOf(address)\":{\"params\":{\"account\":\"account to get the number of active shares for\"},\"returns\":{\"_0\":\"number of active shares for the account\"}},\"activeSharesOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the number of active shares for\",\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the number of active shares for the account at\"},\"returns\":{\"_0\":\"number of active shares for the account at the timestamp\"}},\"activeStake()\":{\"returns\":{\"_0\":\"total amount of active stake\"}},\"activeStakeAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total active stake at\"},\"returns\":{\"_0\":\"total amount of active stake at the timestamp\"}},\"claim(address,uint256)\":{\"params\":{\"epoch\":\"epoch to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"claimBatch(address,uint256[])\":{\"params\":{\"epochs\":\"epochs to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"currentEpoch()\":{\"returns\":{\"_0\":\"current epoch\"}},\"currentEpochStart()\":{\"returns\":{\"_0\":\"start of the current epoch\"}},\"deposit(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to deposit\",\"onBehalfOf\":\"account the deposit is made on behalf of\"},\"returns\":{\"depositedAmount\":\"real amount of the collateral deposited\",\"mintedShares\":\"amount of the active shares minted\"}},\"epochAt(uint48)\":{\"details\":\"Reverts if the timestamp is less than the start of the epoch 0.\",\"params\":{\"timestamp\":\"time point to get the epoch at\"},\"returns\":{\"_0\":\"epoch at the timestamp\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(uint64,address,bytes)\":{\"params\":{\"data\":\"some data to use\",\"initialVersion\":\"initial version of the entity\",\"owner\":\"initial owner of the entity\"}},\"isInitialized()\":{\"returns\":{\"_0\":\"if the vault is fully initialized\"}},\"migrate(uint64,bytes)\":{\"params\":{\"data\":\"some data to use\",\"newVersion\":\"new version of the entity\"}},\"nextEpochStart()\":{\"returns\":{\"_0\":\"start of the next epoch\"}},\"onSlash(uint256,uint48)\":{\"details\":\"Only the slasher can call this function.\",\"params\":{\"amount\":\"amount to slash\",\"captureTimestamp\":\"time point when the stake was captured\"},\"returns\":{\"slashedAmount\":\"real amount of the collateral slashed\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"previousEpochStart()\":{\"details\":\"Reverts if the current epoch is 0.\",\"returns\":{\"_0\":\"start of the previous epoch\"}},\"redeem(address,uint256)\":{\"params\":{\"claimer\":\"account that needs to claim the withdrawal\",\"shares\":\"amount of the active shares to redeem\"},\"returns\":{\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawnAssets\":\"amount of the collateral withdrawn\"}},\"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.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setDepositLimit(uint256)\":{\"details\":\"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"setDepositWhitelist(bool)\":{\"details\":\"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit whitelist\"}},\"setDepositorWhitelistStatus(address,bool)\":{\"details\":\"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.\",\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisting the account\"}},\"setIsDepositLimit(bool)\":{\"details\":\"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit limit\"}},\"slashableBalanceOf(address)\":{\"params\":{\"account\":\"account to get the slashable collateral for\"},\"returns\":{\"_0\":\"total amount of the account's slashable collateral\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"totalStake()\":{\"returns\":{\"_0\":\"total amount of the slashable collateral\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"version()\":{\"details\":\"Starts from 1.\",\"returns\":{\"_0\":\"version of the entity\"}},\"withdraw(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to withdraw\",\"claimer\":\"account that needs to claim the withdrawal\"},\"returns\":{\"burnedShares\":\"amount of the active shares burned\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\"}},\"withdrawalsOf(uint256,address)\":{\"params\":{\"account\":\"account to get the withdrawals for\",\"epoch\":\"epoch to get the withdrawals for the account at\"},\"returns\":{\"_0\":\"withdrawals for the account at the epoch\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Claim(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a claim is made.\"},\"ClaimBatch(address,address,uint256[],uint256)\":{\"notice\":\"Emitted when a batch claim is made.\"},\"Deposit(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a deposit is made.\"},\"OnSlash(uint256,uint48,uint256)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetDelegator(address)\":{\"notice\":\"Emitted when a delegator is set.\"},\"SetDepositLimit(uint256)\":{\"notice\":\"Emitted when a deposit limit is set.\"},\"SetDepositWhitelist(bool)\":{\"notice\":\"Emitted when a deposit whitelist status is enabled/disabled.\"},\"SetDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Emitted when a depositor whitelist status is set.\"},\"SetIsDepositLimit(bool)\":{\"notice\":\"Emitted when a deposit limit status is enabled/disabled.\"},\"SetSlasher(address)\":{\"notice\":\"Emitted when a slasher is set.\"},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"notice\":\"Emitted when a withdrawal is made.\"}},\"kind\":\"user\",\"methods\":{\"DELEGATOR_FACTORY()\":{\"notice\":\"Get the delegator factory's address.\"},\"DEPOSITOR_WHITELIST_ROLE()\":{\"notice\":\"Get a depositor whitelist status setter's role.\"},\"DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit setter's role.\"},\"DEPOSIT_WHITELIST_SET_ROLE()\":{\"notice\":\"Get a deposit whitelist enabler/disabler's role.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"IS_DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit enabler/disabler's role.\"},\"SLASHER_FACTORY()\":{\"notice\":\"Get the slasher factory's address.\"},\"activeBalanceOf(address)\":{\"notice\":\"Get an active balance for a particular account.\"},\"activeBalanceOfAt(address,uint48,bytes)\":{\"notice\":\"Get an active balance for a particular account at a given timestamp using hints.\"},\"activeShares()\":{\"notice\":\"Get a total number of active shares in the vault.\"},\"activeSharesAt(uint48,bytes)\":{\"notice\":\"Get a total number of active shares in the vault at a given timestamp using a hint.\"},\"activeSharesOf(address)\":{\"notice\":\"Get a number of active shares for a particular account.\"},\"activeSharesOfAt(address,uint48,bytes)\":{\"notice\":\"Get a total number of active shares for a particular account at a given timestamp using a hint.\"},\"activeStake()\":{\"notice\":\"Get a total amount of active stake in the vault.\"},\"activeStakeAt(uint48,bytes)\":{\"notice\":\"Get a total amount of active stake in the vault at a given timestamp using a hint.\"},\"burner()\":{\"notice\":\"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract).\"},\"claim(address,uint256)\":{\"notice\":\"Claim collateral from the vault.\"},\"claimBatch(address,uint256[])\":{\"notice\":\"Claim collateral from the vault for multiple epochs.\"},\"collateral()\":{\"notice\":\"Get a vault collateral.\"},\"currentEpoch()\":{\"notice\":\"Get a current vault epoch.\"},\"currentEpochStart()\":{\"notice\":\"Get a start of the current vault epoch.\"},\"delegator()\":{\"notice\":\"Get a delegator (it delegates the vault's stake to networks and operators).\"},\"deposit(address,uint256)\":{\"notice\":\"Deposit collateral into the vault.\"},\"depositLimit()\":{\"notice\":\"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously).\"},\"depositWhitelist()\":{\"notice\":\"Get if the deposit whitelist is enabled.\"},\"epochAt(uint48)\":{\"notice\":\"Get an epoch at a given timestamp.\"},\"epochDuration()\":{\"notice\":\"Get a duration of the vault epoch.\"},\"epochDurationInit()\":{\"notice\":\"Get a time point of the epoch duration set.\"},\"initialize(uint64,address,bytes)\":{\"notice\":\"Initialize this entity contract by using a given data and setting a particular version and owner.\"},\"isDelegatorInitialized()\":{\"notice\":\"Get if the delegator is initialized.\"},\"isDepositLimit()\":{\"notice\":\"Get if the deposit limit is set.\"},\"isDepositorWhitelisted(address)\":{\"notice\":\"Get if a given account is whitelisted as a depositor.\"},\"isInitialized()\":{\"notice\":\"Check if the vault is fully initialized (a delegator and a slasher are set).\"},\"isSlasherInitialized()\":{\"notice\":\"Get if the slasher is initialized.\"},\"isWithdrawalsClaimed(uint256,address)\":{\"notice\":\"Get if the withdrawals are claimed for a particular account at a given epoch.\"},\"migrate(uint64,bytes)\":{\"notice\":\"Migrate this entity to a particular newer version using a given data.\"},\"nextEpochStart()\":{\"notice\":\"Get a start of the next vault epoch.\"},\"onSlash(uint256,uint48)\":{\"notice\":\"Slash callback for burning collateral.\"},\"previousEpochStart()\":{\"notice\":\"Get a start of the previous vault epoch.\"},\"redeem(address,uint256)\":{\"notice\":\"Redeem collateral from the vault (it will be claimable after the next epoch).\"},\"setDepositLimit(uint256)\":{\"notice\":\"Set a deposit limit.\"},\"setDepositWhitelist(bool)\":{\"notice\":\"Enable/disable deposit whitelist.\"},\"setDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Set a depositor whitelist status.\"},\"setIsDepositLimit(bool)\":{\"notice\":\"Enable/disable deposit limit.\"},\"slashableBalanceOf(address)\":{\"notice\":\"Get a total amount of the collateral that can be slashed for a given account.\"},\"slasher()\":{\"notice\":\"Get a slasher (it provides networks a slashing mechanism).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"totalStake()\":{\"notice\":\"Get a total amount of the collateral that can be slashed.\"},\"version()\":{\"notice\":\"Get the entity's version.\"},\"withdraw(address,uint256)\":{\"notice\":\"Withdraw collateral from the vault (it will be claimable after the next epoch).\"},\"withdrawalShares(uint256)\":{\"notice\":\"Get a total number of withdrawal shares at a given epoch.\"},\"withdrawalSharesOf(uint256,address)\":{\"notice\":\"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed).\"},\"withdrawals(uint256)\":{\"notice\":\"Get a total amount of the withdrawals at a given epoch.\"},\"withdrawalsOf(uint256,address)\":{\"notice\":\"Get withdrawals for a particular account at a given epoch (zero if claimed).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/VaultHints.sol\":\"VaultHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf\",\"dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44\",\"dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadyClaimed"},{"inputs":[],"type":"error","name":"AlreadyInitialized"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DelegatorAlreadyInitialized"},{"inputs":[],"type":"error","name":"DepositLimitReached"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientClaim"},{"inputs":[],"type":"error","name":"InsufficientDeposit"},{"inputs":[],"type":"error","name":"InsufficientRedemption"},{"inputs":[],"type":"error","name":"InsufficientWithdrawal"},{"inputs":[],"type":"error","name":"InvalidAccount"},{"inputs":[],"type":"error","name":"InvalidCaptureEpoch"},{"inputs":[],"type":"error","name":"InvalidClaimer"},{"inputs":[],"type":"error","name":"InvalidCollateral"},{"inputs":[],"type":"error","name":"InvalidDelegator"},{"inputs":[],"type":"error","name":"InvalidEpoch"},{"inputs":[],"type":"error","name":"InvalidEpochDuration"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidLengthEpochs"},{"inputs":[],"type":"error","name":"InvalidOnBehalfOf"},{"inputs":[],"type":"error","name":"InvalidRecipient"},{"inputs":[],"type":"error","name":"InvalidSlasher"},{"inputs":[],"type":"error","name":"InvalidTimestamp"},{"inputs":[],"type":"error","name":"MissingRoles"},{"inputs":[],"type":"error","name":"NoPreviousEpoch"},{"inputs":[],"type":"error","name":"NotDelegator"},{"inputs":[],"type":"error","name":"NotFactory"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotWhitelistedDepositor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"SlasherAlreadyInitialized"},{"inputs":[],"type":"error","name":"TooMuchRedeem"},{"inputs":[],"type":"error","name":"TooMuchWithdraw"},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"epoch","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Claim","anonymous":false},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256[]","name":"epochs","type":"uint256[]","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"ClaimBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"depositor","type":"address","indexed":true},{"internalType":"address","name":"onBehalfOf","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false}],"type":"event","name":"OnSlash","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":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true}],"type":"event","name":"SetDelegator","anonymous":false},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256","indexed":false}],"type":"event","name":"SetDepositLimit","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositWhitelist","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositorWhitelistStatus","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetIsDepositLimit","anonymous":false},{"inputs":[{"internalType":"address","name":"slasher","type":"address","indexed":true}],"type":"event","name":"SetSlasher","anonymous":false},{"inputs":[{"internalType":"address","name":"withdrawer","type":"address","indexed":true},{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"burnedShares","type":"uint256","indexed":false},{"internalType":"uint256","name":"mintedShares","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DELEGATOR_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSITOR_WHITELIST_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeBalanceOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeBalanceOfHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeSharesHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeSharesHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeSharesOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeSharesOfHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeSharesOfHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeStakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeStakeHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeStakeHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"burner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256[]","name":"epochs","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"claimBatch","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"delegator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"onBehalfOf","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"depositedAmount","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"epochAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDurationInit","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"initialVersion","type":"uint64"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isDelegatorInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isDepositLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isDepositorWhitelisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isSlasherInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isWithdrawalsClaimed","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"newVersion","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"migrate"},{"inputs":[],"stateMutability":"view","type":"function","name":"nextEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"onSlash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"previousEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"withdrawnAssets","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"delegator_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegator"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDepositLimit"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositWhitelist"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositorWhitelistStatus"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setIsDepositLimit"},{"inputs":[{"internalType":"address","name":"slasher_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSlasher"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"slashableBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"slasher","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"burnedShares","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawalShares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalSharesOf","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawals","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"activeBalanceOf(address)":{"params":{"account":"account to get the active balance for"},"returns":{"_0":"active balance for the account"}},"activeBalanceOfAt(address,uint48,bytes)":{"params":{"account":"account to get the active balance for","hints":"hints for checkpoints' indexes","timestamp":"time point to get the active balance for the account at"},"returns":{"_0":"active balance for the account at the timestamp"}},"activeShares()":{"returns":{"_0":"total number of active shares"}},"activeSharesAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total number of active shares at"},"returns":{"_0":"total number of active shares at the timestamp"}},"activeSharesOf(address)":{"params":{"account":"account to get the number of active shares for"},"returns":{"_0":"number of active shares for the account"}},"activeSharesOfAt(address,uint48,bytes)":{"params":{"account":"account to get the number of active shares for","hint":"hint for the checkpoint index","timestamp":"time point to get the number of active shares for the account at"},"returns":{"_0":"number of active shares for the account at the timestamp"}},"activeStake()":{"returns":{"_0":"total amount of active stake"}},"activeStakeAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total active stake at"},"returns":{"_0":"total amount of active stake at the timestamp"}},"claim(address,uint256)":{"params":{"epoch":"epoch to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"claimBatch(address,uint256[])":{"params":{"epochs":"epochs to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"currentEpoch()":{"returns":{"_0":"current epoch"}},"currentEpochStart()":{"returns":{"_0":"start of the current epoch"}},"deposit(address,uint256)":{"params":{"amount":"amount of the collateral to deposit","onBehalfOf":"account the deposit is made on behalf of"},"returns":{"depositedAmount":"real amount of the collateral deposited","mintedShares":"amount of the active shares minted"}},"epochAt(uint48)":{"details":"Reverts if the timestamp is less than the start of the epoch 0.","params":{"timestamp":"time point to get the epoch at"},"returns":{"_0":"epoch at the timestamp"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(uint64,address,bytes)":{"params":{"data":"some data to use","initialVersion":"initial version of the entity","owner":"initial owner of the entity"}},"isInitialized()":{"returns":{"_0":"if the vault is fully initialized"}},"migrate(uint64,bytes)":{"params":{"data":"some data to use","newVersion":"new version of the entity"}},"nextEpochStart()":{"returns":{"_0":"start of the next epoch"}},"onSlash(uint256,uint48)":{"details":"Only the slasher can call this function.","params":{"amount":"amount to slash","captureTimestamp":"time point when the stake was captured"},"returns":{"slashedAmount":"real amount of the collateral slashed"}},"owner()":{"details":"Returns the address of the current owner."},"previousEpochStart()":{"details":"Reverts if the current epoch is 0.","returns":{"_0":"start of the previous epoch"}},"redeem(address,uint256)":{"params":{"claimer":"account that needs to claim the withdrawal","shares":"amount of the active shares to redeem"},"returns":{"mintedShares":"amount of the epoch withdrawal shares minted","withdrawnAssets":"amount of the collateral withdrawn"}},"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."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setDepositLimit(uint256)":{"details":"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"limit":"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)"}},"setDepositWhitelist(bool)":{"details":"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit whitelist"}},"setDepositorWhitelistStatus(address,bool)":{"details":"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.","params":{"account":"account for which the whitelist status is set","status":"if whitelisting the account"}},"setIsDepositLimit(bool)":{"details":"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit limit"}},"slashableBalanceOf(address)":{"params":{"account":"account to get the slashable collateral for"},"returns":{"_0":"total amount of the account's slashable collateral"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"totalStake()":{"returns":{"_0":"total amount of the slashable collateral"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"version()":{"details":"Starts from 1.","returns":{"_0":"version of the entity"}},"withdraw(address,uint256)":{"params":{"amount":"amount of the collateral to withdraw","claimer":"account that needs to claim the withdrawal"},"returns":{"burnedShares":"amount of the active shares burned","mintedShares":"amount of the epoch withdrawal shares minted"}},"withdrawalsOf(uint256,address)":{"params":{"account":"account to get the withdrawals for","epoch":"epoch to get the withdrawals for the account at"},"returns":{"_0":"withdrawals for the account at the epoch"}}},"version":1},"userdoc":{"kind":"user","methods":{"DELEGATOR_FACTORY()":{"notice":"Get the delegator factory's address."},"DEPOSITOR_WHITELIST_ROLE()":{"notice":"Get a depositor whitelist status setter's role."},"DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit setter's role."},"DEPOSIT_WHITELIST_SET_ROLE()":{"notice":"Get a deposit whitelist enabler/disabler's role."},"FACTORY()":{"notice":"Get the factory's address."},"IS_DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit enabler/disabler's role."},"SLASHER_FACTORY()":{"notice":"Get the slasher factory's address."},"activeBalanceOf(address)":{"notice":"Get an active balance for a particular account."},"activeBalanceOfAt(address,uint48,bytes)":{"notice":"Get an active balance for a particular account at a given timestamp using hints."},"activeShares()":{"notice":"Get a total number of active shares in the vault."},"activeSharesAt(uint48,bytes)":{"notice":"Get a total number of active shares in the vault at a given timestamp using a hint."},"activeSharesOf(address)":{"notice":"Get a number of active shares for a particular account."},"activeSharesOfAt(address,uint48,bytes)":{"notice":"Get a total number of active shares for a particular account at a given timestamp using a hint."},"activeStake()":{"notice":"Get a total amount of active stake in the vault."},"activeStakeAt(uint48,bytes)":{"notice":"Get a total amount of active stake in the vault at a given timestamp using a hint."},"burner()":{"notice":"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract)."},"claim(address,uint256)":{"notice":"Claim collateral from the vault."},"claimBatch(address,uint256[])":{"notice":"Claim collateral from the vault for multiple epochs."},"collateral()":{"notice":"Get a vault collateral."},"currentEpoch()":{"notice":"Get a current vault epoch."},"currentEpochStart()":{"notice":"Get a start of the current vault epoch."},"delegator()":{"notice":"Get a delegator (it delegates the vault's stake to networks and operators)."},"deposit(address,uint256)":{"notice":"Deposit collateral into the vault."},"depositLimit()":{"notice":"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously)."},"depositWhitelist()":{"notice":"Get if the deposit whitelist is enabled."},"epochAt(uint48)":{"notice":"Get an epoch at a given timestamp."},"epochDuration()":{"notice":"Get a duration of the vault epoch."},"epochDurationInit()":{"notice":"Get a time point of the epoch duration set."},"initialize(uint64,address,bytes)":{"notice":"Initialize this entity contract by using a given data and setting a particular version and owner."},"isDelegatorInitialized()":{"notice":"Get if the delegator is initialized."},"isDepositLimit()":{"notice":"Get if the deposit limit is set."},"isDepositorWhitelisted(address)":{"notice":"Get if a given account is whitelisted as a depositor."},"isInitialized()":{"notice":"Check if the vault is fully initialized (a delegator and a slasher are set)."},"isSlasherInitialized()":{"notice":"Get if the slasher is initialized."},"isWithdrawalsClaimed(uint256,address)":{"notice":"Get if the withdrawals are claimed for a particular account at a given epoch."},"migrate(uint64,bytes)":{"notice":"Migrate this entity to a particular newer version using a given data."},"nextEpochStart()":{"notice":"Get a start of the next vault epoch."},"onSlash(uint256,uint48)":{"notice":"Slash callback for burning collateral."},"previousEpochStart()":{"notice":"Get a start of the previous vault epoch."},"redeem(address,uint256)":{"notice":"Redeem collateral from the vault (it will be claimable after the next epoch)."},"setDepositLimit(uint256)":{"notice":"Set a deposit limit."},"setDepositWhitelist(bool)":{"notice":"Enable/disable deposit whitelist."},"setDepositorWhitelistStatus(address,bool)":{"notice":"Set a depositor whitelist status."},"setIsDepositLimit(bool)":{"notice":"Enable/disable deposit limit."},"slashableBalanceOf(address)":{"notice":"Get a total amount of the collateral that can be slashed for a given account."},"slasher()":{"notice":"Get a slasher (it provides networks a slashing mechanism)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"totalStake()":{"notice":"Get a total amount of the collateral that can be slashed."},"version()":{"notice":"Get the entity's version."},"withdraw(address,uint256)":{"notice":"Withdraw collateral from the vault (it will be claimable after the next epoch)."},"withdrawalShares(uint256)":{"notice":"Get a total number of withdrawal shares at a given epoch."},"withdrawalSharesOf(uint256,address)":{"notice":"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed)."},"withdrawals(uint256)":{"notice":"Get a total amount of the withdrawals at a given epoch."},"withdrawalsOf(uint256,address)":{"notice":"Get withdrawals for a particular account at a given epoch (zero if claimed)."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/VaultHints.sol":"VaultHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866","urls":["bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf","dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab","urls":["bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89","dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606","urls":["bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1","dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f","urls":["bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44","dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":98} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DELEGATOR_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEPOSITOR_WHITELIST_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOfHints","inputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"activeShares","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesHint","inputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"activeSharesHintInternal","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOfHint","inputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOfHintInternal","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"activeStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStakeAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStakeHint","inputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"activeStakeHintInternal","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"hint","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"burner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimBatch","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epochs","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"currentEpoch","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"currentEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"delegator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"onBehalfOf","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"depositedAmount","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"depositLimit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"depositWhitelist","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"epochAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"epochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"epochDurationInit","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialVersion","type":"uint64","internalType":"uint64"},{"name":"owner_","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isDelegatorInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositLimit","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositorWhitelisted","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSlasherInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isWithdrawalsClaimed","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"migrate","inputs":[{"name":"newVersion","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nextEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"previousEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"redeem","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"withdrawnAssets","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegator","inputs":[{"name":"delegator_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositLimit","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositWhitelist","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setIsDepositLimit","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSlasher","inputs":[{"name":"slasher_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slashableBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slasher","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"totalStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"burnedShares","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawalShares","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalSharesOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawals","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalsOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"Claim","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epoch","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ClaimBatch","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epochs","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"onBehalfOf","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"slashedAmount","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":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDelegator","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDepositLimit","inputs":[{"name":"limit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetDepositWhitelist","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetIsDepositLimit","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetSlasher","inputs":[{"name":"slasher","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"withdrawer","type":"address","indexed":true,"internalType":"address"},{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"burnedShares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"mintedShares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadyClaimed","inputs":[]},{"type":"error","name":"AlreadyInitialized","inputs":[]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DelegatorAlreadyInitialized","inputs":[]},{"type":"error","name":"DepositLimitReached","inputs":[]},{"type":"error","name":"ExternalCall","inputs":[]},{"type":"error","name":"InsufficientClaim","inputs":[]},{"type":"error","name":"InsufficientDeposit","inputs":[]},{"type":"error","name":"InsufficientRedemption","inputs":[]},{"type":"error","name":"InsufficientWithdrawal","inputs":[]},{"type":"error","name":"InvalidAccount","inputs":[]},{"type":"error","name":"InvalidCaptureEpoch","inputs":[]},{"type":"error","name":"InvalidClaimer","inputs":[]},{"type":"error","name":"InvalidCollateral","inputs":[]},{"type":"error","name":"InvalidDelegator","inputs":[]},{"type":"error","name":"InvalidEpoch","inputs":[]},{"type":"error","name":"InvalidEpochDuration","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidLengthEpochs","inputs":[]},{"type":"error","name":"InvalidOnBehalfOf","inputs":[]},{"type":"error","name":"InvalidRecipient","inputs":[]},{"type":"error","name":"InvalidSlasher","inputs":[]},{"type":"error","name":"InvalidTimestamp","inputs":[]},{"type":"error","name":"MissingRoles","inputs":[]},{"type":"error","name":"NoPreviousEpoch","inputs":[]},{"type":"error","name":"NotDelegator","inputs":[]},{"type":"error","name":"NotFactory","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotWhitelistedDepositor","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SlasherAlreadyInitialized","inputs":[]},{"type":"error","name":"TooMuchRedeem","inputs":[]},{"type":"error","name":"TooMuchWithdraw","inputs":[]}],"bytecode":{"object":"0x610100806040523461011057306080525f60a0525f60c0527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c1661010157506001600160401b036002600160401b0319828216016100bc575b5f60e0526040516151c6908161011582396080518181816110580152818161133001526123a4015260a05181818161137c01526118c9015260c051818181611a320152611ee2015260e0518181816107e10152610a2d0152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8080610062565b63f92ee8a960e01b8152600490fd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104a45780631415519b1461049f5780631b66c9e11461049a5780631e9a695014610495578063248a9ca31461049057806327810b6e1461048b578063281f5752146104865780632abe3048146104815780632d73c69c1461047c5780632dd31000146104775780632f2ff15d1461047257806336568abe1461046d578063392e53cd146104685780634105a7dd14610463578063463616711461045e57806347e7ef241461045957806348d3b775146104545780634ff0876a1461044f57806350861adc1461044a57806350f22068146104455780635346e34f1461044057806354fd4d501461043b57806355a2c6721461043657806357ec83cc1461043157806359f769a91461042c5780635cc070761461042757806361a8c8c41461042257806364b03fdc1461041d57806367567add146104185780636da3e06d146104135780636ec1e3f81461040e578063715018a6146104095780637278e31c1461040457806373790ab3146103ff57806376671808146103fa578063794b15b7146103f55780637953b33b146103f05780637c04c80a146103eb578063810da75d146103e65780638326056f146103e157806383cd9cc3146103dc57806387df0788146103d75780638b0e9f3f146103d25780638da5cb5b146103cd57806391d14854146103c85780639d66201b146103c35780639f86fd85146103be578063a1b12202146103b9578063a217fddf146103b4578063a21a1df9146103af578063a2861466146103aa578063a3b54172146103a5578063a5d03223146103a0578063aabc24961461039b578063aad3ec9614610396578063afba70ad14610391578063b13442711461038c578063bd49c35f14610387578063bdc8144b14610382578063bfefcd7b1461037d578063c31e8dd714610378578063ce9b793014610373578063d547741f1461036e578063d8dfeb4514610369578063db38871514610364578063de4997161461035f578063eb5562381461035a578063ecf7085814610355578063efb559d614610350578063f2fde38b1461034b578063f3fef3a314610346578063f5e7ee0f146103415763f9e1bf6c1461033c575f80fd5b612649565b61261f565b612579565b61254c565b6123fd565b6123e0565b61238c565b612372565b612306565b6122db565b61228f565b612267565b6121fd565b6121e3565b612105565b6120eb565b6120c3565b612099565b611fd8565b611e21565b611ddb565b611d8e565b611c9b565b611c61565b611c47565b611c23565b611b8f565b611b55565b611af7565b611ac3565b611a61565b611a1d565b611864565b61184a565b611831565b6117cb565b6117a4565b611764565b61174a565b611709565b611437565b6113d0565b6113ab565b611367565b611311565b6112e3565b611247565b61121d565b6111f6565b6110be565b611039565b611007565b610f72565b610f59565b610efc565b610edc565b610ebb565b610bfd565b610bd5565b610b3a565b610af5565b610aaa565b610a5c565b610a18565b6109a4565b61079b565b6106cd565b6106a5565b61066c565b610583565b610538565b6104fe565b346104fa5760203660031901126104fa5760043563ffffffff60e01b81168091036104fa57602090637965db0b60e01b81149081156104e9575b506040519015158152f35b6301ffc9a760e01b1490505f6104de565b5f80fd5b346104fa575f3660031901126104fa5760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b346104fa575f3660031901126104fa5760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b6001600160a01b038116036104fa57565b346104fa5760403660031901126104fa576004356105a081610572565b602435906105ac61307d565b6001600160a01b0381161561065b57335f908152600e602052604090206105d790614489565b614489565b8211610649576105f76105e861439c565b6105f0614415565b90846144cc565b9182156106345782610608926130ac565b9061061f60015f8051602061515183398151915255565b604080519182526020820192909252f35b0390f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b346104fa5760203660031901126104fa576004355f525f805160206151318339815191526020526020600160405f200154604051908152f35b346104fa575f3660031901126104fa576001546040516001600160a01b039091168152602090f35b346104fa575f3660031901126104fa576106e5612c63565b80156107465760015465ffffffffffff8160a01c16915f198101908111610741576107139160d01c90612692565b81018091116107415761072861063091613226565b60405165ffffffffffff90911681529081906020820190565b612663565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b03821682036104fa57565b9181601f840112156104fa578235916001600160401b0383116104fa57602083818601950101116104fa57565b346104fa5760403660031901126104fa576107b4610758565b6001600160401b036024358181116104fa576107d490369060040161076e565b9290916107df61307d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610859575f80516020615171833981519152549060ff8260401c16928315610849575b50505015613258575b60405163f92ee8a960e01b8152600490fd5b81169116101590505f808061082e565b604051631966391b60e11b8152600490fd5b65ffffffffffff8116036104fa57565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b038211176108aa57604052565b61087b565b604081019081106001600160401b038211176108aa57604052565b608081019081106001600160401b038211176108aa57604052565b90601f801991011681019081106001600160401b038211176108aa57604052565b6040519061016082018281106001600160401b038211176108aa57604052565b60405190610933826108af565b565b6001600160401b0381116108aa57601f01601f191660200190565b92919261095c82610935565b9161096a60405193846108e5565b8294818452818301116104fa578281602093845f960137010152565b9080601f830112156104fa578160206109a193359101610950565b90565b346104fa5760603660031901126104fa576004356109c181610572565b602435906109ce8261086b565b604435906001600160401b0382116104fa576020926109f4610a10933690600401610986565b6001600160a01b039092165f908152600e855260409020613416565b604051908152f35b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa5760403660031901126104fa57610aa8602435600435610a7f82610572565b805f525f80516020615131833981519152602052610aa3600160405f2001546135ed565b6138ed565b005b346104fa5760403660031901126104fa57602435610ac781610572565b336001600160a01b03821603610ae357610aa890600435613923565b60405163334bd91960e11b8152600490fd5b346104fa575f3660031901126104fa5760ff60025460a01c1680610b21575b6020906040519015158152f35b5060035460a01c60ff16610b14565b801515036104fa57565b346104fa5760203660031901126104fa57600435610b5781610b30565b610b5f61307d565b610b676134e2565b5f54901515908160ff8216151514610bc35760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f8051602061515183398151915255005b60405163a741a04560e01b8152600490fd5b346104fa575f3660031901126104fa57602065ffffffffffff60015460a01c16604051908152f35b346104fa576040806003193601126104fa576004803591610c1d83610572565b610c2561307d565b6001600160a01b0391838316908115610ead575f5460ff811680610e94575b610e855783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610e5d575f93610e62575b50610c999060243590309033906139b5565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610e5d57610cd8935f92610e30575b5050612685565b938415610e215760081c60ff1680610e0c575b610dfe57509061063091610d9c610d0061439c565b95610d49610d0c614415565b610d34610d1a8a838b6144cc565b99610d2e8a610d2842613226565b926126b3565b90613b09565b5050610d4389610d2842613226565b90613be9565b50506001600160a01b0381165f908152600e6020526040902090610d9688610d916105d2610d7642613226565b6001600160a01b039095165f908152600e6020526040902090565b6126b3565b91613cc5565b505081518481526020810186905233907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a3610de860015f8051602061515183398151915255565b5191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50610e1984610d9161439c565b815410610ceb565b50825163070f6eed60e11b8152fd5b610e4f9250803d10610e56575b610e4781836108e5565b8101906126e1565b5f80610cd1565b503d610e3d565b6126f0565b610c99919350610e7e90853d8711610e5657610e4781836108e5565b9290610c87565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610c44565b8251630d534ce360e11b8152fd5b346104fa575f3660031901126104fa57602060ff5f54166040519015158152f35b346104fa575f3660031901126104fa57602060015460d01c604051908152f35b346104fa575f3660031901126104fa57602060ff60025460a01c166040519015158152f35b9060406003198301126104fa57600435610f3a8161086b565b91602435906001600160401b0382116104fa576109a191600401610986565b346104fa576020610a10610f6c36610f21565b9061328c565b346104fa5760203660031901126104fa57600435610f8f81610b30565b610f9761307d565b610f9f61353f565b5f54901515908160ff8260081c16151514610bc35761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610aa860015f8051602061515183398151915255565b346104fa575f3660031901126104fa5760206001600160401b035f805160206151718339815191525416604051908152f35b346104fa5760203660031901126104fa576004356110568161086b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036110ac5761108f90613da7565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b346104fa5760603660031901126104fa576110d7610758565b6024356110e381610572565b6001600160401b03916044358381116104fa5761110490369060040161076e565b5f805160206151718339815191529491855494838616806111e55760ff8760401c169081156111d8575b50610837577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966111d39661119b958716906001600160401b0319161790556111965f80516020615171833981519152600160401b68ff000000000000000019825416179055565b6126fb565b5f80516020615171833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f61112e565b60405162dc149f60e41b8152600490fd5b346104fa5760203660031901126104fa576020610a1060043561121881610572565b612b1b565b346104fa5760203660031901126104fa576004355f526006602052602060405f2054604051908152f35b346104fa575f3660031901126104fa5760015465ffffffffffff61127d818360a01c1692611273612c63565b9060d01c90612692565b820180921161074157611291602092613226565b60405191168152f35b60409060031901126104fa576004356112b281610572565b906024356109a18161086b565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346104fa576106306112fd6112f73661129a565b90612ba9565b6040519182916020835260208301906112bf565b346104fa5760203660031901126104fa5760043561132e8161086b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036110ac5761108f90613eac565b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa575f3660031901126104fa57602060ff60035460a01c166040519015158152f35b346104fa575f3660031901126104fa576113e86141f3565b5f805160206150d183398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346104fa5760403660031901126104fa576004356024356114578161086b565b61145f61307d565b60035461147c906001600160a01b03165b6001600160a01b031690565b33036116f75761148a612c63565b9061149481612c97565b90821515806116e6575b80156116dd575b6116cb57610630937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c7926114d761439c565b946114f26114e4826126a5565b5f52600660205260405f2090565b54908281036115e5575061150681876126b3565b83811881851002811896878061159e575b50505050505b8361156a575b6040805191825265ffffffffffff929092166020820152908101839052606090a161155a60015f8051602061515183398151915255565b6040519081529081906020820190565b5f546115999085906115879060101c6001600160a01b0316611470565b6001546001600160a01b0316906142c2565b611523565b6115da93610cd183610d2e6115c46115bd6114e4986115d49888614235565b8096612685565b946115ce42613226565b92612685565b926126a5565b555f80808087611517565b91506115f9825f52600660205260405f2090565b549061160981610d91848a6126b3565b908482188286100282189788611624575b505050505061151d565b611699938361164c936116598c61165461164261168a998884614235565b9788958584614235565b948592612685565b612685565b938484106116a4575b610cd190610d2e6116789596976115ce42613226565b6116846114e4876126a5565b55612685565b915f52600660205260405f2090565b555f8080808061161a565b916116c0610cd1916116ba866116789798612685565b906126b3565b859450929050611662565b604051635e18d2a560e01b8152600490fd5b508282116114a5565b506116f083612677565b821061149e565b60405163dabc4ad960e01b8152600490fd5b346104fa575f3660031901126104fa5760015465ffffffffffff808260a01c1691611732612c63565b600181018091116107415761127d9160d01c90612692565b346104fa575f3660031901126104fa576020610a10612c63565b346104fa5760203660031901126104fa5760043561178181610572565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b346104fa5760203660031901126104fa576020610a106004356117c68161086b565b612c97565b346104fa5760403660031901126104fa576004356117e881610572565b6024356001600160401b038082116104fa57366023830112156104fa5781600401359081116104fa573660248260051b840101116104fa5761063092602461155a930190612cd2565b346104fa576020610a1061184436610f21565b90613361565b346104fa576106306112fd61185e3661129a565b90612e00565b346104fa576020806003193601126104fa57600480359061188482610572565b61188c61307d565b60025460a01c60ff16611a0e576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610e5d575f916119e1575b50156119d15760405163fbfa77cf60e01b8152838516949082818581895afa928315610e5d575f936119a2575b5050309116036119935750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610aa860015f8051602061515183398151915255565b60405163b9f0f17160e01b8152fd5b6119c2929350803d106119ca575b6119ba81836108e5565b810190612e57565b905f80611926565b503d6119b0565b506040516324e5af8d60e21b8152fd5b611a019150823d8411611a07575b6119f981836108e5565b810190612e37565b5f6118f9565b503d6119ef565b604051631380833b60e01b8152fd5b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa575f3660031901126104fa57611a79612c63565b611a8161439c565b90805f52600660205260405f205482018092116107415760018101809111610741575f52600660205260405f2054810180911161074157602090604051908152f35b346104fa575f3660031901126104fa575f805160206150d1833981519152546040516001600160a01b039091168152602090f35b346104fa5760403660031901126104fa57602060ff611b49602435611b1b81610572565b6004355f525f80516020615131833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346104fa5760203660031901126104fa57600435611b7281610572565b60018060a01b03165f52600e6020526020610a1060405f20614489565b346104fa5760403660031901126104fa57600435611bac81610572565b6024356001600160401b0381116104fa575f91611bce8392369060040161076e565b90816040519283928337810184815203915af4611c1b611bec612e6c565b91611c0d6040519384921515602084015260408084015260608301906112bf565b03601f1981018352826108e5565b805190602001fd5b346104fa575f3660031901126104fa57602060ff5f5460081c166040519015158152f35b346104fa575f3660031901126104fa5760206040515f8152f35b346104fa575f3660031901126104fa5760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b346104fa5760403660031901126104fa57600435611cb881610572565b602435611cc481610b30565b611ccc61307d565b611cd4613596565b6001600160a01b038216918215611d7c575f8381526005602052604090205460ff16151582151514610bc3576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a6291611d6391611d51908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610aa860015f8051602061515183398151915255565b604051630da30f6560e31b8152600490fd5b346104fa5760403660031901126104fa576020611dd2602435611db081610572565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b346104fa5760403660031901126104fa57602060ff611b49602435611dff81610572565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b346104fa576020806003193601126104fa576004803590611e4182610572565b611e4961307d565b60035460a01c60ff16611fc9576001600160a01b03828116939084611eb7575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610aa860015f8051602061515183398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610e5d575f91611fac575b5015611f9b5760405163fbfa77cf60e01b815282818581895afa928315610e5d575f93611f7c575b505030911603611f6d5750600380546001600160a01b0319166001600160a01b039092169190911790555f808080611e69565b604051633f3e089160e21b8152fd5b611f93929350803d106119ca576119ba81836108e5565b905f80611f3a565b60405163dabc4ad960e01b81528390fd5b611fc39150833d8511611a07576119f981836108e5565b5f611f12565b60405163703fe2e560e01b8152fd5b346104fa5760403660031901126104fa57600435611ff581610572565b6024359061200161307d565b6001600160a01b0391818316908115612087576120326106309461202483614300565b9485915f5460101c166142c2565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f80516020615151833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b346104fa5760203660031901126104fa576004355f526007602052602060405f2054604051908152f35b346104fa575f3660031901126104fa576003546040516001600160a01b039091168152602090f35b346104fa575f3660031901126104fa576020610a1061439c565b346104fa5760203660031901126104fa5760043561212161307d565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff16156121c557508060045414610bc3576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f8051602061515183398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346104fa575f3660031901126104fa576020610a10614415565b346104fa5760203660031901126104fa5760043561221a81610572565b612222612c63565b61222b82612b1b565b916122368183612f56565b830180931161074157600182018092116107415761225391612f56565b810180911161074157602090604051908152f35b346104fa575f3660031901126104fa576002546040516001600160a01b039091168152602090f35b346104fa5760403660031901126104fa57610aa86024356004356122b282610572565b805f525f805160206151318339815191526020526122d6600160405f2001546135ed565b613923565b346104fa575f3660031901126104fa575f5460405160109190911c6001600160a01b03168152602090f35b346104fa575f3660031901126104fa5760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b60609060031901126104fa5760043561235881610572565b9060243561236581610572565b906044356109a18161086b565b346104fa576106306112fd61238636612340565b91612e9b565b346104fa5761239a3661129a565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811633036110ac5761108f92165f52600e60205260405f20613f72565b346104fa575f3660031901126104fa576020600454604051908152f35b346104fa5760603660031901126104fa5760043561241a81610572565b602435906124278261086b565b6001600160401b03916044358381116104fa5761244890369060040161076e565b909260409384516124588161088f565b606081526060602082015260608682015292806124b7575b610630866124a887876124a261248989848451916126c0565b9285612499602085015183613361565b9301519061328c565b916144cc565b90519081529081906020820190565b81019392506020818503126104fa578035908682116104fa5701926060848203126104fa578451956124e88761088f565b84358181116104fa57826124fd918701610986565b875260208501358181116104fa5782612517918701610986565b6020880152858501359081116104fa57610630966125406124a293612489936124a89801610986565b87820152939450612470565b346104fa5760203660031901126104fa57610aa860043561256c81610572565b6125746141f3565b612ee5565b346104fa5760403660031901126104fa5760043561259681610572565b6024356125a161307d565b6001600160a01b0382161561065b57801561260d576125d06125c1614415565b6125c961439c565b90836148d3565b335f908152600e602052604090209092906125ea90614489565b83116125fb576106089183916130ac565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b346104fa5760403660031901126104fa576020610a1060243561264181610572565b600435612f56565b346104fa576106306112fd61265d36612340565b91612fb4565b634e487b7160e01b5f52601160045260245ffd5b5f1981019190821161074157565b9190820391821161074157565b8181029291811591840414171561074157565b906001820180921161074157565b9190820180921161074157565b6001600160a01b03165f908152600e602052604090206109a1929190613416565b908160209103126104fa575190565b6040513d5f823e3d90fd5b9161274d9161273e9161270c614d20565b612714614d20565b60015f80516020615151833981519152556001600160a01b0394808616612b01575b503691610950565b6020808251830101910161405c565b805182166001600160a01b031615612aef57604080820165ffffffffffff61277b825165ffffffffffff1690565b1615612ade5760c08301805190929061279c906001600160a01b0316611470565b1561298f575b50916128db6101409261287a612855612939966127f06127c8875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b0390921691909117905561284961282042613226565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b5165ffffffffffff1690565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b61289a61288a6060850151151590565b60ff80195f541691151516175f55565b6128c16128aa6080850151151590565b61ff005f5491151560081b169061ff001916175f55565b6128ce60a0840151600455565b516001600160a01b031690565b84811661297f575b5060e08101516001600160a01b031684811661296f575b506101008101516001600160a01b031684811661295f575b506101208101516001600160a01b031684811661294f575b5001516001600160a01b031690565b9081166129435750565b61294c9061387e565b50565b6129589061380f565b505f61292a565b612968906137a0565b505f612912565b612978906136ca565b505f6128fa565b61298890613619565b505f6128e3565b60e08401516129a6906001600160a01b0316611470565b15612a7b575b6101208401516129c4906001600160a01b0316611470565b6127a257608084015115612a315760a08401511580612a12575b612a025750916128db6101409261287a612855612939965b949650505092506127a2565b5163183c854560e21b8152600490fd5b50610140840151612a2b906001600160a01b0316611470565b156129de565b60a084015115801590612a5b575b612a025750916128db6101409261287a612855612939966129f6565b50610140840151612a74906001600160a01b0316611470565b1515612a3f565b606084015115612ab157610100840151612a9d906001600160a01b0316611470565b6129ac575163183c854560e21b8152600490fd5b610100840151612ac9906001600160a01b0316611470565b156129ac575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b612b1590612b0d614d20565b612574614d20565b5f612736565b6001600160a01b03165f908152600e60205260409020612b3a90614489565b612b4261439c565b612b4a614415565b90600181018091116107415760018201809211610741576109a192614235565b519061093382610b30565b519063ffffffff821682036104fa57565b91908260409103126104fa576109a160208351612ba281610b30565b9301612b75565b9190612be5612bf49160609465ffffffffffff604051926367567add60e01b602085015216602483015260248252612be08261088f565b614125565b60208082518301019101612b86565b90612bfc5750565b90915063ffffffff60405191166020820152602081526109a1816108af565b65ffffffffffff918216908216039190821161074157565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff809116918215612c5e57160490565b612c33565b612c6c42613226565b612c93600154612c8965ffffffffffff93848360a01c1690612c1b565b9060d01c90612c47565b1690565b6001549065ffffffffffff91828160a01c16918284821610612cc057612c9392612c8991612c1b565b60405163b7d0949760e01b8152600490fd5b90612cdb61307d565b5f926001600160a01b038316928315612087578115612d93575f5b828110612d7157505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d279286929091612d46918491612d419060101c6001600160a01b0316611470565b6142c2565b612d57604051928392339684612dce565b0390a39061093360015f8051602061515183398151915255565b94612d8c6001916116ba612d86898789612db9565b35614300565b9501612cf6565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612dc95760051b0190565b612da5565b604080825281018390529392916001600160fb1b0381116104fa5760209160609160051b809183880137850101930152565b9190612be5612bf49160609465ffffffffffff60405192632ad1633960e11b602085015216602483015260248252612be08261088f565b908160209103126104fa57516109a181610b30565b519061093382610572565b908160209103126104fa57516109a181610572565b3d15612e96573d90612e7d82610935565b91612e8b60405193846108e5565b82523d5f602084013e565b606090565b604051631d6aac4760e31b60208201526001600160a01b03909216602483015265ffffffffffff909216604480830191909152815260609291612bf491612be591612be0826108ca565b6001600160a01b03908116908115612f3e575f805160206150d183398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612f7c90825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116107415760018201809211610741576109a192614235565b92919092612fd9612fc88360609684612e9b565b92612fd38184612ba9565b92612e00565b90825115801590613073575b8015613069575b612ff557505050565b6130429394506109a19291611c0d91604051936130118561088f565b84526020840190815260408401918252613058604051968795602080880152516060604088015260a08701906112bf565b915191603f1992838783030160608801526112bf565b9151908483030160808501526112bf565b5081511515612fec565b5080511515612fe5565b5f80516020615151833981519152600281541461309a5760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e60205260409020939291906130c742613226565b335f908152600e602052604090206130de90614489565b91848303928311610741576131197febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f9385936131a499613cc5565b505061313361312742613226565b610d4387611654614415565b505061314d61314142613226565b610d2e8461165461439c565b50506131f2816131dd613166613161612c63565b6126a5565b6131bc61317b825f52600660205260405f2090565b5461318e835f52600760205260405f2090565b5461319a82828b6144cc565b9d8e998a936126b3565b6131b6855f52600660205260405f2090565b556126b3565b6131ce825f52600760205260405f2090565b555f52600860205260405f2090565b9060018060a01b03165f5260205260405f2090565b6131fd8382546126b3565b9055604080519485526020850195909552938301526001600160a01b03909216913391606090a3565b65ffffffffffff90818111613239571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b6104fa913691610950565b908160209103126104fa576109a190612b75565b90600163ffffffff8093160191821161074157565b9080511561335757806020806132a793518301019101613263565b6132b081614711565b906132c1825165ffffffffffff1690565b9065ffffffffffff808516921682811461334b57821191826132f7575b50506132ee57506109a1906144ed565b60209150015190565b909150613305600a54612677565b63ffffffff83161491821561331e575b50505f806132de565b61334391925061284961333361333892613277565b614711565b65ffffffffffff1690565b115f80613315565b50505060209150015190565b506109a1906144ed565b9080511561340c578060208061337c93518301019101613263565b61338581614796565b90613396825165ffffffffffff1690565b9065ffffffffffff808516921682811461334b57821191826133c3575b50506132ee57506109a19061459e565b9091506133d1600c54612677565b63ffffffff8316149182156133ea575b50505f806133b3565b6134049192506128496133ff61333892613277565b614796565b115f806133e1565b506109a19061459e565b918051156134d8578060208061343193518301019101613263565b9161343c8382614811565b9261344d845165ffffffffffff1690565b9065ffffffffffff80851692168281146134cc5782119182613483575b505061347a576109a19250614648565b50506020015190565b9091506134908354612677565b63ffffffff8316149182156134a9575b50505f8061346a565b6134c49192506128496134be61333892613277565b85614811565b115f806134a0565b50505050506020015190565b506109a191614648565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b5416156121c55750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff90613535565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff90613535565b5f8181525f8051602061513183398151915260209081526040808320338452909152902060ff90613535565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206151318339815191529060ff166136c4575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f805160206151318339815191529060ff905b5416613799575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f805160206151318339815191529060ff90613735565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f805160206151318339815191529060ff90613735565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f805160206151318339815191529060ff90613735565b5f8181525f80516020615131833981519152602081815260408084206001600160a01b038716855290915290912060ff90613735565b5f8181525f80516020615131833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615613799575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b038411176108aa5761093392604052614879565b600b54811015612dc957600b5f525f8051602061511183398151915201905f90565b600d54811015612dc957600d5f525f805160206150f183398151915201905f90565b8054821015612dc9575f5260205f2001905f90565b600d54600160401b8110156108aa576001810180600d55811015612dc957600d5f525f805160206150f18339815191520155565b600b54600160401b8110156108aa576001810180600b55811015612dc957600b5f525f805160206151118339815191520155565b90815491600160401b8310156108aa5782613af191600161093395018155613a51565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613bb4575b50613b2161490c565b50929091815492613b3061439c565b9481613b9f575b5015613b7c57505f1982018281116107415781541115612dc9575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613b90926001600160d01b03169150614e67565b5050613b9b83613a66565b9190565b65ffffffffffff83811691161490505f613b37565b600160401b8110156108aa5760018101808455811015612dc9575f908382525f805160206150f183398151915201555f613b18565b919091600b9081548015613c90575b50613c01614961565b50929091815492613c10614415565b9481613c7b575b5015613c5c57505f1982018281116107415781541115612dc9575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b613c70926001600160d01b03169150614f37565b5050613b9b83613a9a565b65ffffffffffff83811691161490505f613c17565b600160401b8110156108aa5760018101808455811015612dc9575f908382525f8051602061511183398151915201555f613bf8565b90929192600182019081548015613d53575b5084613ce2846149b6565b50949092845493613cf283614489565b9681613d3e575b5015613d1b575050505f19810190811161074157613af18591613b9b93613a51565b613b9b949293613d37926001600160d01b039091169190614fd6565b5050613ace565b65ffffffffffff83811691161490505f613cf9565b600160401b8110156108aa57806001613d6f9201845583613a51565b8154905f199060031b1b191690555f613cd7565b90604051613d90816108af565b915465ffffffffffff8116835260301c6020830152565b600a54905f829160058411613e52575b613dc19350614b1a565b8015613e4757613df1613dec613dd683612677565b600a5f525f805160206150b18339815191520190565b613d83565b91613e40613e37613e31613e27613e226020613e13895165ffffffffffff1690565b9801516001600160d01b031690565b613a0d565b90549060031b1c90565b93612677565b63ffffffff1690565b6001939291565b505f905f905f905f90565b9192613e5d816149ef565b810390811161074157600a5f525f805160206150b1833981519152810154613dc1949065ffffffffffff9081169085161015613e9a575091613db7565b929150613ea6906126a5565b90613db7565b600c54905f829160058411613f18575b613ec69350614b83565b8015613e4757613ef1613dec613edb83612677565b600c5f525f805160206150918339815191520190565b91613e40613e37613e31613e27613f136020613e13895165ffffffffffff1690565b613a2f565b9192613f23816149ef565b810390811161074157600c5f525f80516020615091833981519152810154613ec6949065ffffffffffff9081169085161015613f60575091613ebc565b929150613f6c906126a5565b90613ebc565b91908254905f829160058411613ff5575b613f8e935085614cbe565b908115613fe957613e40613e37613e31613e27613fbb613dec613fb088612677565b895f5260205f200190565b966001613fe26020613fd38b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101613a51565b5f925082915081908190565b9192614000816149ef565b810390811161074157613f8e93865f526140296133388360205f200165ffffffffffff90541690565b65ffffffffffff8516101561403f575091613f83565b92915061404b906126a5565b90613f83565b51906109338261086b565b90816101609103126104fa57614070610906565b9061407a81612e4c565b825261408860208201612e4c565b602083015261409960408201614051565b60408301526140aa60608201612b6a565b60608301526140bb60808201612b6a565b608083015260a081015160a08301526140d660c08201612e4c565b60c08301526140e760e08201612e4c565b60e08301526101006140fa818301612e4c565b9083015261012061410c818301612e4c565b9083015261411e610140809201612e4c565b9082015290565b905f8060409384519360209461415c81611c0d88820194639f86fd8560e01b86523060248401528a604484015260648301906112bf565b51915afa50614169612e6c565b805181019280828486019503126104fa57828201519161418883610b30565b81810151906001600160401b0382116104fa57019084603f830112156104fa57838201516141b581610935565b956141c2835197886108e5565b8187528282850101116104fa578085925f94018388015e85010152156141e6575090565b9080519182156104fa5701fd5b5f805160206150d1833981519152546001600160a01b0316330361421357565b60405163118cdaa760e01b8152336004820152602490fd5b8115612c5e570490565b91818302915f19818509938380861095039480860395146142b557848311156142a85790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b8215600302601118614d4e565b5050906109a1925061422b565b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152610933916142fb826108ca565b614879565b90614309612c63565b82101561438a575f82815260096020908152604080832033845290915290205460ff166143785761433a3383612f56565b918215614366575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600c54806143dc57505f5b6001600160d01b038116156143d757600d54811015612dc957600d5f525f805160206150f1833981519152015490565b505f90565b805f1981011161074157600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c6143a7565b600a548061445057505f5b6001600160d01b038116156143d757600b54811015612dc957600b5f525f80516020615111833981519152015490565b805f1981011161074157600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c614420565b8054806144ae57505f5b6001600160d01b038116156136c4576001613e279201613a51565b5f1990808281011161074157825f5260205f2001015460301c614493565b9190600181018091116107415760018201809211610741576109a192614235565b600a54905f829160058411614545575b6145079350614bec565b8061452a57505f5b6001600160d01b038116156143d757613e276109a191613a0d565b614539613dd661454092612677565b5460301c90565b61450f565b9192614550816149ef565b81039081116107415761450793600a5f5265ffffffffffff80835f805160206150b1833981519152015416908516105f1461458c5750916144fd565b929150614598906126a5565b906144fd565b600c54905f8291600584116145ef575b6145b89350614c55565b806145db57505f5b6001600160d01b038116156143d757613e276109a191613a2f565b614539613edb6145ea92612677565b6145c0565b91926145fa816149ef565b8103908111610741576145b893600c5f5265ffffffffffff80835f80516020615091833981519152015416908516105f146146365750916145ae565b929150614642906126a5565b906145ae565b908154905f8291600584116146ab575b614663935084614cbe565b8061468b57505f905b6001600160d01b038216156136c4576109a1916001613e279201613a51565b61453961469a6146a592612677565b835f5260205f200190565b9061466c565b91926146b6816149ef565b81039081116107415761466393855f5265ffffffffffff808360205f20015416908516105f146146e7575091614658565b9291506146f3906126a5565b90614658565b60405190614706826108af565b5f6020838281520152565b6147196146f9565b506147226146f9565b50600a54811015612dc95761474990600a5f525f805160206150b183398151915201613d83565b65ffffffffffff81511690602060018060d01b0391015116600b54811015612dc957600b5f525f8051602061511183398151915201546040519161478c836108af565b8252602082015290565b61479e6146f9565b506147a76146f9565b50600c54811015612dc9576147ce90600c5f525f8051602061509183398151915201613d83565b65ffffffffffff81511690602060018060d01b0391015116600d54811015612dc957600d5f525f805160206150f183398151915201546040519161478c836108af565b9061483a61483461485b926148246146f9565b5061482d6146f9565b5084613a51565b50613d83565b91600165ffffffffffff845116936020828060d01b03910151169101613a51565b9054906040519261486b846108af565b835260031b1c602082015290565b905f602091828151910182855af1156126f0575f513d6148ca57506001600160a01b0381163b155b6148a85750565b604051635274afe760e01b81526001600160a01b039091166004820152602490fd5b600114156148a1565b9190600181018091116107415760018201809211610741576148f6828285614235565b928215612c5e5709151581018091116107415790565b600c548061491d57505f905f905f90565b805f1981011161074157600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460019165ffffffffffff82169160301c90565b600a548061497257505f905f905f90565b805f1981011161074157600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460019165ffffffffffff82169160301c90565b8054806149c75750505f905f905f90565b5f19918183810111610741575f5260205f2001015460019165ffffffffffff82169160301c90565b60018111156109a157600181600160801b811015614b08575b614ab0614aa6614a9c614a92614a88614a7e614abc97600488600160401b614ab79a1015614afb575b640100000000811015614aee575b62010000811015614ae1575b610100811015614ad5575b6010811015614ac9575b1015614ac1575b60030260011c614a77818b61422b565b0160011c90565b614a77818a61422b565b614a77818961422b565b614a77818861422b565b614a77818761422b565b614a77818661422b565b809361422b565b821190565b900390565b60011b614a67565b811c9160021b91614a60565b60081c91811b91614a56565b60101c9160081b91614a4b565b60201c9160101b91614a3f565b60401c9160201b91614a31565b50600160401b9050608082901c614a08565b905b828110614b2857505090565b9091808216906001818418811c830180931161074157600a5f5265ffffffffffff80845f805160206150b1833981519152015416908616105f14614b70575050915b90614b1c565b9093925081018091116107415790614b6a565b905b828110614b9157505090565b9091808216906001818418811c830180931161074157600c5f5265ffffffffffff80845f80516020615091833981519152015416908616105f14614bd9575050915b90614b85565b9093925081018091116107415790614bd3565b905b828110614bfa57505090565b9091808216906001818418811c830180931161074157600a5f5265ffffffffffff80845f805160206150b1833981519152015416908616105f14614c42575050915b90614bee565b9093925081018091116107415790614c3c565b905b828110614c6357505090565b9091808216906001818418811c830180931161074157600c5f5265ffffffffffff80845f80516020615091833981519152015416908616105f14614cab575050915b90614c57565b9093925081018091116107415790614ca5565b91905b838210614cce5750505090565b909192808316906001818518811c830180931161074157855f5265ffffffffffff808460205f20015416908516105f14614d0d575050925b9190614cc1565b9094935081018091116107415791614d06565b60ff5f805160206151718339815191525460401c1615614d3c57565b604051631afcd79f60e31b8152600490fd5b634e487b715f526020526024601cfd5b600c5490600160401b8210156108aa576001820180600c55821015612dc957600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f8051602061509183398151915290910155565b600a5490600160401b8210156108aa576001820180600a55821015612dc957600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206150b183398151915290910155565b8054600160401b8110156108aa57614e2991600182018155613a51565b614e5457815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c549192918015614f0e57613edb614e7f91612677565b9081549165ffffffffffff90818416918316808311614efc57869203614ec457614ebd92509065ffffffffffff82549181199060301b169116179055565b60301c9190565b5050614ef790614ee3614ed5610926565b65ffffffffffff9092168252565b6001600160d01b0385166020820152614d5e565b614ebd565b604051632520601d60e01b8152600490fd5b50614f3290614f1e614ed5610926565b6001600160d01b0384166020820152614d5e565b5f9190565b600a549192918015614fb257613dd6614f4f91612677565b9081549165ffffffffffff90818416918316808311614efc57869203614f8d57614ebd92509065ffffffffffff82549181199060301b169116179055565b5050614ef790614f9e614ed5610926565b6001600160d01b0385166020820152614db5565b50614f3290614fc2614ed5610926565b6001600160d01b0384166020820152614db5565b8054929392801561506b57614fed614ff891612677565b825f5260205f200190565b9182549265ffffffffffff91828516928116808411614efc578793036150375750614ebd92509065ffffffffffff82549181199060301b169116179055565b915050614ef791615057615049610926565b65ffffffffffff9093168352565b6001600160d01b0386166020830152614e0c565b5090614f329161507c615049610926565b6001600160d01b0385166020830152614e0c56fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a89016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122096afd643cffc15a05e275ebcf57e554339f04ba03ab6025ec642ba4ec611894864736f6c63430008190033","sourceMap":"199:2819:96:-:0;;;;;;;348:4:93;332:21;;318:1:96;3173:36:107;;318:1:96;3219:32:107;;8837:64:26;199:2819:96;;;;;;;;;7896:76:26;;-1:-1:-1;;;;;;;;;;;;199:2819:96;;;7985:34:26;7981:146;;-1:-1:-1;318:1:96;927:17:82;;199:2819:96;;;;;;;;332:21:93;199:2819:96;;;;;;;;;;;;;;;3173:36:107;199:2819:96;;;;;;;;;;3219:32:107;199:2819:96;;;;;;;;;;927:17:82;199:2819:96;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;199:2819:96;;;;;;;;;;;;;8087:29:26;;199:2819:96;;8087:29:26;7981:146;;;;;7896:76;-1:-1:-1;;;7938:23:26;;;;;199:2819:96;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104a45780631415519b1461049f5780631b66c9e11461049a5780631e9a695014610495578063248a9ca31461049057806327810b6e1461048b578063281f5752146104865780632abe3048146104815780632d73c69c1461047c5780632dd31000146104775780632f2ff15d1461047257806336568abe1461046d578063392e53cd146104685780634105a7dd14610463578063463616711461045e57806347e7ef241461045957806348d3b775146104545780634ff0876a1461044f57806350861adc1461044a57806350f22068146104455780635346e34f1461044057806354fd4d501461043b57806355a2c6721461043657806357ec83cc1461043157806359f769a91461042c5780635cc070761461042757806361a8c8c41461042257806364b03fdc1461041d57806367567add146104185780636da3e06d146104135780636ec1e3f81461040e578063715018a6146104095780637278e31c1461040457806373790ab3146103ff57806376671808146103fa578063794b15b7146103f55780637953b33b146103f05780637c04c80a146103eb578063810da75d146103e65780638326056f146103e157806383cd9cc3146103dc57806387df0788146103d75780638b0e9f3f146103d25780638da5cb5b146103cd57806391d14854146103c85780639d66201b146103c35780639f86fd85146103be578063a1b12202146103b9578063a217fddf146103b4578063a21a1df9146103af578063a2861466146103aa578063a3b54172146103a5578063a5d03223146103a0578063aabc24961461039b578063aad3ec9614610396578063afba70ad14610391578063b13442711461038c578063bd49c35f14610387578063bdc8144b14610382578063bfefcd7b1461037d578063c31e8dd714610378578063ce9b793014610373578063d547741f1461036e578063d8dfeb4514610369578063db38871514610364578063de4997161461035f578063eb5562381461035a578063ecf7085814610355578063efb559d614610350578063f2fde38b1461034b578063f3fef3a314610346578063f5e7ee0f146103415763f9e1bf6c1461033c575f80fd5b612649565b61261f565b612579565b61254c565b6123fd565b6123e0565b61238c565b612372565b612306565b6122db565b61228f565b612267565b6121fd565b6121e3565b612105565b6120eb565b6120c3565b612099565b611fd8565b611e21565b611ddb565b611d8e565b611c9b565b611c61565b611c47565b611c23565b611b8f565b611b55565b611af7565b611ac3565b611a61565b611a1d565b611864565b61184a565b611831565b6117cb565b6117a4565b611764565b61174a565b611709565b611437565b6113d0565b6113ab565b611367565b611311565b6112e3565b611247565b61121d565b6111f6565b6110be565b611039565b611007565b610f72565b610f59565b610efc565b610edc565b610ebb565b610bfd565b610bd5565b610b3a565b610af5565b610aaa565b610a5c565b610a18565b6109a4565b61079b565b6106cd565b6106a5565b61066c565b610583565b610538565b6104fe565b346104fa5760203660031901126104fa5760043563ffffffff60e01b81168091036104fa57602090637965db0b60e01b81149081156104e9575b506040519015158152f35b6301ffc9a760e01b1490505f6104de565b5f80fd5b346104fa575f3660031901126104fa5760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b346104fa575f3660031901126104fa5760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b6001600160a01b038116036104fa57565b346104fa5760403660031901126104fa576004356105a081610572565b602435906105ac61307d565b6001600160a01b0381161561065b57335f908152600e602052604090206105d790614489565b614489565b8211610649576105f76105e861439c565b6105f0614415565b90846144cc565b9182156106345782610608926130ac565b9061061f60015f8051602061515183398151915255565b604080519182526020820192909252f35b0390f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b346104fa5760203660031901126104fa576004355f525f805160206151318339815191526020526020600160405f200154604051908152f35b346104fa575f3660031901126104fa576001546040516001600160a01b039091168152602090f35b346104fa575f3660031901126104fa576106e5612c63565b80156107465760015465ffffffffffff8160a01c16915f198101908111610741576107139160d01c90612692565b81018091116107415761072861063091613226565b60405165ffffffffffff90911681529081906020820190565b612663565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b03821682036104fa57565b9181601f840112156104fa578235916001600160401b0383116104fa57602083818601950101116104fa57565b346104fa5760403660031901126104fa576107b4610758565b6001600160401b036024358181116104fa576107d490369060040161076e565b9290916107df61307d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610859575f80516020615171833981519152549060ff8260401c16928315610849575b50505015613258575b60405163f92ee8a960e01b8152600490fd5b81169116101590505f808061082e565b604051631966391b60e11b8152600490fd5b65ffffffffffff8116036104fa57565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b038211176108aa57604052565b61087b565b604081019081106001600160401b038211176108aa57604052565b608081019081106001600160401b038211176108aa57604052565b90601f801991011681019081106001600160401b038211176108aa57604052565b6040519061016082018281106001600160401b038211176108aa57604052565b60405190610933826108af565b565b6001600160401b0381116108aa57601f01601f191660200190565b92919261095c82610935565b9161096a60405193846108e5565b8294818452818301116104fa578281602093845f960137010152565b9080601f830112156104fa578160206109a193359101610950565b90565b346104fa5760603660031901126104fa576004356109c181610572565b602435906109ce8261086b565b604435906001600160401b0382116104fa576020926109f4610a10933690600401610986565b6001600160a01b039092165f908152600e855260409020613416565b604051908152f35b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa5760403660031901126104fa57610aa8602435600435610a7f82610572565b805f525f80516020615131833981519152602052610aa3600160405f2001546135ed565b6138ed565b005b346104fa5760403660031901126104fa57602435610ac781610572565b336001600160a01b03821603610ae357610aa890600435613923565b60405163334bd91960e11b8152600490fd5b346104fa575f3660031901126104fa5760ff60025460a01c1680610b21575b6020906040519015158152f35b5060035460a01c60ff16610b14565b801515036104fa57565b346104fa5760203660031901126104fa57600435610b5781610b30565b610b5f61307d565b610b676134e2565b5f54901515908160ff8216151514610bc35760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f8051602061515183398151915255005b60405163a741a04560e01b8152600490fd5b346104fa575f3660031901126104fa57602065ffffffffffff60015460a01c16604051908152f35b346104fa576040806003193601126104fa576004803591610c1d83610572565b610c2561307d565b6001600160a01b0391838316908115610ead575f5460ff811680610e94575b610e855783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610e5d575f93610e62575b50610c999060243590309033906139b5565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610e5d57610cd8935f92610e30575b5050612685565b938415610e215760081c60ff1680610e0c575b610dfe57509061063091610d9c610d0061439c565b95610d49610d0c614415565b610d34610d1a8a838b6144cc565b99610d2e8a610d2842613226565b926126b3565b90613b09565b5050610d4389610d2842613226565b90613be9565b50506001600160a01b0381165f908152600e6020526040902090610d9688610d916105d2610d7642613226565b6001600160a01b039095165f908152600e6020526040902090565b6126b3565b91613cc5565b505081518481526020810186905233907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a3610de860015f8051602061515183398151915255565b5191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50610e1984610d9161439c565b815410610ceb565b50825163070f6eed60e11b8152fd5b610e4f9250803d10610e56575b610e4781836108e5565b8101906126e1565b5f80610cd1565b503d610e3d565b6126f0565b610c99919350610e7e90853d8711610e5657610e4781836108e5565b9290610c87565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610c44565b8251630d534ce360e11b8152fd5b346104fa575f3660031901126104fa57602060ff5f54166040519015158152f35b346104fa575f3660031901126104fa57602060015460d01c604051908152f35b346104fa575f3660031901126104fa57602060ff60025460a01c166040519015158152f35b9060406003198301126104fa57600435610f3a8161086b565b91602435906001600160401b0382116104fa576109a191600401610986565b346104fa576020610a10610f6c36610f21565b9061328c565b346104fa5760203660031901126104fa57600435610f8f81610b30565b610f9761307d565b610f9f61353f565b5f54901515908160ff8260081c16151514610bc35761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610aa860015f8051602061515183398151915255565b346104fa575f3660031901126104fa5760206001600160401b035f805160206151718339815191525416604051908152f35b346104fa5760203660031901126104fa576004356110568161086b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036110ac5761108f90613da7565b60408051941515855263ffffffff91909116602085015292915050f35b604051637ca475e560e11b8152600490fd5b346104fa5760603660031901126104fa576110d7610758565b6024356110e381610572565b6001600160401b03916044358381116104fa5761110490369060040161076e565b5f805160206151718339815191529491855494838616806111e55760ff8760401c169081156111d8575b50610837577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966111d39661119b958716906001600160401b0319161790556111965f80516020615171833981519152600160401b68ff000000000000000019825416179055565b6126fb565b5f80516020615171833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f61112e565b60405162dc149f60e41b8152600490fd5b346104fa5760203660031901126104fa576020610a1060043561121881610572565b612b1b565b346104fa5760203660031901126104fa576004355f526006602052602060405f2054604051908152f35b346104fa575f3660031901126104fa5760015465ffffffffffff61127d818360a01c1692611273612c63565b9060d01c90612692565b820180921161074157611291602092613226565b60405191168152f35b60409060031901126104fa576004356112b281610572565b906024356109a18161086b565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346104fa576106306112fd6112f73661129a565b90612ba9565b6040519182916020835260208301906112bf565b346104fa5760203660031901126104fa5760043561132e8161086b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036110ac5761108f90613eac565b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa575f3660031901126104fa57602060ff60035460a01c166040519015158152f35b346104fa575f3660031901126104fa576113e86141f3565b5f805160206150d183398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346104fa5760403660031901126104fa576004356024356114578161086b565b61145f61307d565b60035461147c906001600160a01b03165b6001600160a01b031690565b33036116f75761148a612c63565b9061149481612c97565b90821515806116e6575b80156116dd575b6116cb57610630937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c7926114d761439c565b946114f26114e4826126a5565b5f52600660205260405f2090565b54908281036115e5575061150681876126b3565b83811881851002811896878061159e575b50505050505b8361156a575b6040805191825265ffffffffffff929092166020820152908101839052606090a161155a60015f8051602061515183398151915255565b6040519081529081906020820190565b5f546115999085906115879060101c6001600160a01b0316611470565b6001546001600160a01b0316906142c2565b611523565b6115da93610cd183610d2e6115c46115bd6114e4986115d49888614235565b8096612685565b946115ce42613226565b92612685565b926126a5565b555f80808087611517565b91506115f9825f52600660205260405f2090565b549061160981610d91848a6126b3565b908482188286100282189788611624575b505050505061151d565b611699938361164c936116598c61165461164261168a998884614235565b9788958584614235565b948592612685565b612685565b938484106116a4575b610cd190610d2e6116789596976115ce42613226565b6116846114e4876126a5565b55612685565b915f52600660205260405f2090565b555f8080808061161a565b916116c0610cd1916116ba866116789798612685565b906126b3565b859450929050611662565b604051635e18d2a560e01b8152600490fd5b508282116114a5565b506116f083612677565b821061149e565b60405163dabc4ad960e01b8152600490fd5b346104fa575f3660031901126104fa5760015465ffffffffffff808260a01c1691611732612c63565b600181018091116107415761127d9160d01c90612692565b346104fa575f3660031901126104fa576020610a10612c63565b346104fa5760203660031901126104fa5760043561178181610572565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b346104fa5760203660031901126104fa576020610a106004356117c68161086b565b612c97565b346104fa5760403660031901126104fa576004356117e881610572565b6024356001600160401b038082116104fa57366023830112156104fa5781600401359081116104fa573660248260051b840101116104fa5761063092602461155a930190612cd2565b346104fa576020610a1061184436610f21565b90613361565b346104fa576106306112fd61185e3661129a565b90612e00565b346104fa576020806003193601126104fa57600480359061188482610572565b61188c61307d565b60025460a01c60ff16611a0e576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610e5d575f916119e1575b50156119d15760405163fbfa77cf60e01b8152838516949082818581895afa928315610e5d575f936119a2575b5050309116036119935750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610aa860015f8051602061515183398151915255565b60405163b9f0f17160e01b8152fd5b6119c2929350803d106119ca575b6119ba81836108e5565b810190612e57565b905f80611926565b503d6119b0565b506040516324e5af8d60e21b8152fd5b611a019150823d8411611a07575b6119f981836108e5565b810190612e37565b5f6118f9565b503d6119ef565b604051631380833b60e01b8152fd5b346104fa575f3660031901126104fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104fa575f3660031901126104fa57611a79612c63565b611a8161439c565b90805f52600660205260405f205482018092116107415760018101809111610741575f52600660205260405f2054810180911161074157602090604051908152f35b346104fa575f3660031901126104fa575f805160206150d1833981519152546040516001600160a01b039091168152602090f35b346104fa5760403660031901126104fa57602060ff611b49602435611b1b81610572565b6004355f525f80516020615131833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b346104fa5760203660031901126104fa57600435611b7281610572565b60018060a01b03165f52600e6020526020610a1060405f20614489565b346104fa5760403660031901126104fa57600435611bac81610572565b6024356001600160401b0381116104fa575f91611bce8392369060040161076e565b90816040519283928337810184815203915af4611c1b611bec612e6c565b91611c0d6040519384921515602084015260408084015260608301906112bf565b03601f1981018352826108e5565b805190602001fd5b346104fa575f3660031901126104fa57602060ff5f5460081c166040519015158152f35b346104fa575f3660031901126104fa5760206040515f8152f35b346104fa575f3660031901126104fa5760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b346104fa5760403660031901126104fa57600435611cb881610572565b602435611cc481610b30565b611ccc61307d565b611cd4613596565b6001600160a01b038216918215611d7c575f8381526005602052604090205460ff16151582151514610bc3576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a6291611d6391611d51908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610aa860015f8051602061515183398151915255565b604051630da30f6560e31b8152600490fd5b346104fa5760403660031901126104fa576020611dd2602435611db081610572565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b346104fa5760403660031901126104fa57602060ff611b49602435611dff81610572565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b346104fa576020806003193601126104fa576004803590611e4182610572565b611e4961307d565b60035460a01c60ff16611fc9576001600160a01b03828116939084611eb7575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610aa860015f8051602061515183398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610e5d575f91611fac575b5015611f9b5760405163fbfa77cf60e01b815282818581895afa928315610e5d575f93611f7c575b505030911603611f6d5750600380546001600160a01b0319166001600160a01b039092169190911790555f808080611e69565b604051633f3e089160e21b8152fd5b611f93929350803d106119ca576119ba81836108e5565b905f80611f3a565b60405163dabc4ad960e01b81528390fd5b611fc39150833d8511611a07576119f981836108e5565b5f611f12565b60405163703fe2e560e01b8152fd5b346104fa5760403660031901126104fa57600435611ff581610572565b6024359061200161307d565b6001600160a01b0391818316908115612087576120326106309461202483614300565b9485915f5460101c166142c2565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f80516020615151833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b346104fa5760203660031901126104fa576004355f526007602052602060405f2054604051908152f35b346104fa575f3660031901126104fa576003546040516001600160a01b039091168152602090f35b346104fa575f3660031901126104fa576020610a1061439c565b346104fa5760203660031901126104fa5760043561212161307d565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff16156121c557508060045414610bc3576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f8051602061515183398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346104fa575f3660031901126104fa576020610a10614415565b346104fa5760203660031901126104fa5760043561221a81610572565b612222612c63565b61222b82612b1b565b916122368183612f56565b830180931161074157600182018092116107415761225391612f56565b810180911161074157602090604051908152f35b346104fa575f3660031901126104fa576002546040516001600160a01b039091168152602090f35b346104fa5760403660031901126104fa57610aa86024356004356122b282610572565b805f525f805160206151318339815191526020526122d6600160405f2001546135ed565b613923565b346104fa575f3660031901126104fa575f5460405160109190911c6001600160a01b03168152602090f35b346104fa575f3660031901126104fa5760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b60609060031901126104fa5760043561235881610572565b9060243561236581610572565b906044356109a18161086b565b346104fa576106306112fd61238636612340565b91612e9b565b346104fa5761239a3661129a565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811633036110ac5761108f92165f52600e60205260405f20613f72565b346104fa575f3660031901126104fa576020600454604051908152f35b346104fa5760603660031901126104fa5760043561241a81610572565b602435906124278261086b565b6001600160401b03916044358381116104fa5761244890369060040161076e565b909260409384516124588161088f565b606081526060602082015260608682015292806124b7575b610630866124a887876124a261248989848451916126c0565b9285612499602085015183613361565b9301519061328c565b916144cc565b90519081529081906020820190565b81019392506020818503126104fa578035908682116104fa5701926060848203126104fa578451956124e88761088f565b84358181116104fa57826124fd918701610986565b875260208501358181116104fa5782612517918701610986565b6020880152858501359081116104fa57610630966125406124a293612489936124a89801610986565b87820152939450612470565b346104fa5760203660031901126104fa57610aa860043561256c81610572565b6125746141f3565b612ee5565b346104fa5760403660031901126104fa5760043561259681610572565b6024356125a161307d565b6001600160a01b0382161561065b57801561260d576125d06125c1614415565b6125c961439c565b90836148d3565b335f908152600e602052604090209092906125ea90614489565b83116125fb576106089183916130ac565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b346104fa5760403660031901126104fa576020610a1060243561264181610572565b600435612f56565b346104fa576106306112fd61265d36612340565b91612fb4565b634e487b7160e01b5f52601160045260245ffd5b5f1981019190821161074157565b9190820391821161074157565b8181029291811591840414171561074157565b906001820180921161074157565b9190820180921161074157565b6001600160a01b03165f908152600e602052604090206109a1929190613416565b908160209103126104fa575190565b6040513d5f823e3d90fd5b9161274d9161273e9161270c614d20565b612714614d20565b60015f80516020615151833981519152556001600160a01b0394808616612b01575b503691610950565b6020808251830101910161405c565b805182166001600160a01b031615612aef57604080820165ffffffffffff61277b825165ffffffffffff1690565b1615612ade5760c08301805190929061279c906001600160a01b0316611470565b1561298f575b50916128db6101409261287a612855612939966127f06127c8875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b0390921691909117905561284961282042613226565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b5165ffffffffffff1690565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b61289a61288a6060850151151590565b60ff80195f541691151516175f55565b6128c16128aa6080850151151590565b61ff005f5491151560081b169061ff001916175f55565b6128ce60a0840151600455565b516001600160a01b031690565b84811661297f575b5060e08101516001600160a01b031684811661296f575b506101008101516001600160a01b031684811661295f575b506101208101516001600160a01b031684811661294f575b5001516001600160a01b031690565b9081166129435750565b61294c9061387e565b50565b6129589061380f565b505f61292a565b612968906137a0565b505f612912565b612978906136ca565b505f6128fa565b61298890613619565b505f6128e3565b60e08401516129a6906001600160a01b0316611470565b15612a7b575b6101208401516129c4906001600160a01b0316611470565b6127a257608084015115612a315760a08401511580612a12575b612a025750916128db6101409261287a612855612939965b949650505092506127a2565b5163183c854560e21b8152600490fd5b50610140840151612a2b906001600160a01b0316611470565b156129de565b60a084015115801590612a5b575b612a025750916128db6101409261287a612855612939966129f6565b50610140840151612a74906001600160a01b0316611470565b1515612a3f565b606084015115612ab157610100840151612a9d906001600160a01b0316611470565b6129ac575163183c854560e21b8152600490fd5b610100840151612ac9906001600160a01b0316611470565b156129ac575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b612b1590612b0d614d20565b612574614d20565b5f612736565b6001600160a01b03165f908152600e60205260409020612b3a90614489565b612b4261439c565b612b4a614415565b90600181018091116107415760018201809211610741576109a192614235565b519061093382610b30565b519063ffffffff821682036104fa57565b91908260409103126104fa576109a160208351612ba281610b30565b9301612b75565b9190612be5612bf49160609465ffffffffffff604051926367567add60e01b602085015216602483015260248252612be08261088f565b614125565b60208082518301019101612b86565b90612bfc5750565b90915063ffffffff60405191166020820152602081526109a1816108af565b65ffffffffffff918216908216039190821161074157565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff809116918215612c5e57160490565b612c33565b612c6c42613226565b612c93600154612c8965ffffffffffff93848360a01c1690612c1b565b9060d01c90612c47565b1690565b6001549065ffffffffffff91828160a01c16918284821610612cc057612c9392612c8991612c1b565b60405163b7d0949760e01b8152600490fd5b90612cdb61307d565b5f926001600160a01b038316928315612087578115612d93575f5b828110612d7157505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d279286929091612d46918491612d419060101c6001600160a01b0316611470565b6142c2565b612d57604051928392339684612dce565b0390a39061093360015f8051602061515183398151915255565b94612d8c6001916116ba612d86898789612db9565b35614300565b9501612cf6565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612dc95760051b0190565b612da5565b604080825281018390529392916001600160fb1b0381116104fa5760209160609160051b809183880137850101930152565b9190612be5612bf49160609465ffffffffffff60405192632ad1633960e11b602085015216602483015260248252612be08261088f565b908160209103126104fa57516109a181610b30565b519061093382610572565b908160209103126104fa57516109a181610572565b3d15612e96573d90612e7d82610935565b91612e8b60405193846108e5565b82523d5f602084013e565b606090565b604051631d6aac4760e31b60208201526001600160a01b03909216602483015265ffffffffffff909216604480830191909152815260609291612bf491612be591612be0826108ca565b6001600160a01b03908116908115612f3e575f805160206150d183398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612f7c90825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116107415760018201809211610741576109a192614235565b92919092612fd9612fc88360609684612e9b565b92612fd38184612ba9565b92612e00565b90825115801590613073575b8015613069575b612ff557505050565b6130429394506109a19291611c0d91604051936130118561088f565b84526020840190815260408401918252613058604051968795602080880152516060604088015260a08701906112bf565b915191603f1992838783030160608801526112bf565b9151908483030160808501526112bf565b5081511515612fec565b5080511515612fe5565b5f80516020615151833981519152600281541461309a5760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e60205260409020939291906130c742613226565b335f908152600e602052604090206130de90614489565b91848303928311610741576131197febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f9385936131a499613cc5565b505061313361312742613226565b610d4387611654614415565b505061314d61314142613226565b610d2e8461165461439c565b50506131f2816131dd613166613161612c63565b6126a5565b6131bc61317b825f52600660205260405f2090565b5461318e835f52600760205260405f2090565b5461319a82828b6144cc565b9d8e998a936126b3565b6131b6855f52600660205260405f2090565b556126b3565b6131ce825f52600760205260405f2090565b555f52600860205260405f2090565b9060018060a01b03165f5260205260405f2090565b6131fd8382546126b3565b9055604080519485526020850195909552938301526001600160a01b03909216913391606090a3565b65ffffffffffff90818111613239571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b6104fa913691610950565b908160209103126104fa576109a190612b75565b90600163ffffffff8093160191821161074157565b9080511561335757806020806132a793518301019101613263565b6132b081614711565b906132c1825165ffffffffffff1690565b9065ffffffffffff808516921682811461334b57821191826132f7575b50506132ee57506109a1906144ed565b60209150015190565b909150613305600a54612677565b63ffffffff83161491821561331e575b50505f806132de565b61334391925061284961333361333892613277565b614711565b65ffffffffffff1690565b115f80613315565b50505060209150015190565b506109a1906144ed565b9080511561340c578060208061337c93518301019101613263565b61338581614796565b90613396825165ffffffffffff1690565b9065ffffffffffff808516921682811461334b57821191826133c3575b50506132ee57506109a19061459e565b9091506133d1600c54612677565b63ffffffff8316149182156133ea575b50505f806133b3565b6134049192506128496133ff61333892613277565b614796565b115f806133e1565b506109a19061459e565b918051156134d8578060208061343193518301019101613263565b9161343c8382614811565b9261344d845165ffffffffffff1690565b9065ffffffffffff80851692168281146134cc5782119182613483575b505061347a576109a19250614648565b50506020015190565b9091506134908354612677565b63ffffffff8316149182156134a9575b50505f8061346a565b6134c49192506128496134be61333892613277565b85614811565b115f806134a0565b50505050506020015190565b506109a191614648565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b5416156121c55750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff90613535565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff90613535565b5f8181525f8051602061513183398151915260209081526040808320338452909152902060ff90613535565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206151318339815191529060ff166136c4575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f805160206151318339815191529060ff905b5416613799575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f805160206151318339815191529060ff90613735565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f805160206151318339815191529060ff90613735565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f805160206151318339815191529060ff90613735565b5f8181525f80516020615131833981519152602081815260408084206001600160a01b038716855290915290912060ff90613735565b5f8181525f80516020615131833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615613799575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b038411176108aa5761093392604052614879565b600b54811015612dc957600b5f525f8051602061511183398151915201905f90565b600d54811015612dc957600d5f525f805160206150f183398151915201905f90565b8054821015612dc9575f5260205f2001905f90565b600d54600160401b8110156108aa576001810180600d55811015612dc957600d5f525f805160206150f18339815191520155565b600b54600160401b8110156108aa576001810180600b55811015612dc957600b5f525f805160206151118339815191520155565b90815491600160401b8310156108aa5782613af191600161093395018155613a51565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613bb4575b50613b2161490c565b50929091815492613b3061439c565b9481613b9f575b5015613b7c57505f1982018281116107415781541115612dc9575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613b90926001600160d01b03169150614e67565b5050613b9b83613a66565b9190565b65ffffffffffff83811691161490505f613b37565b600160401b8110156108aa5760018101808455811015612dc9575f908382525f805160206150f183398151915201555f613b18565b919091600b9081548015613c90575b50613c01614961565b50929091815492613c10614415565b9481613c7b575b5015613c5c57505f1982018281116107415781541115612dc9575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b613c70926001600160d01b03169150614f37565b5050613b9b83613a9a565b65ffffffffffff83811691161490505f613c17565b600160401b8110156108aa5760018101808455811015612dc9575f908382525f8051602061511183398151915201555f613bf8565b90929192600182019081548015613d53575b5084613ce2846149b6565b50949092845493613cf283614489565b9681613d3e575b5015613d1b575050505f19810190811161074157613af18591613b9b93613a51565b613b9b949293613d37926001600160d01b039091169190614fd6565b5050613ace565b65ffffffffffff83811691161490505f613cf9565b600160401b8110156108aa57806001613d6f9201845583613a51565b8154905f199060031b1b191690555f613cd7565b90604051613d90816108af565b915465ffffffffffff8116835260301c6020830152565b600a54905f829160058411613e52575b613dc19350614b1a565b8015613e4757613df1613dec613dd683612677565b600a5f525f805160206150b18339815191520190565b613d83565b91613e40613e37613e31613e27613e226020613e13895165ffffffffffff1690565b9801516001600160d01b031690565b613a0d565b90549060031b1c90565b93612677565b63ffffffff1690565b6001939291565b505f905f905f905f90565b9192613e5d816149ef565b810390811161074157600a5f525f805160206150b1833981519152810154613dc1949065ffffffffffff9081169085161015613e9a575091613db7565b929150613ea6906126a5565b90613db7565b600c54905f829160058411613f18575b613ec69350614b83565b8015613e4757613ef1613dec613edb83612677565b600c5f525f805160206150918339815191520190565b91613e40613e37613e31613e27613f136020613e13895165ffffffffffff1690565b613a2f565b9192613f23816149ef565b810390811161074157600c5f525f80516020615091833981519152810154613ec6949065ffffffffffff9081169085161015613f60575091613ebc565b929150613f6c906126a5565b90613ebc565b91908254905f829160058411613ff5575b613f8e935085614cbe565b908115613fe957613e40613e37613e31613e27613fbb613dec613fb088612677565b895f5260205f200190565b966001613fe26020613fd38b5165ffffffffffff1690565b9a01516001600160d01b031690565b9101613a51565b5f925082915081908190565b9192614000816149ef565b810390811161074157613f8e93865f526140296133388360205f200165ffffffffffff90541690565b65ffffffffffff8516101561403f575091613f83565b92915061404b906126a5565b90613f83565b51906109338261086b565b90816101609103126104fa57614070610906565b9061407a81612e4c565b825261408860208201612e4c565b602083015261409960408201614051565b60408301526140aa60608201612b6a565b60608301526140bb60808201612b6a565b608083015260a081015160a08301526140d660c08201612e4c565b60c08301526140e760e08201612e4c565b60e08301526101006140fa818301612e4c565b9083015261012061410c818301612e4c565b9083015261411e610140809201612e4c565b9082015290565b905f8060409384519360209461415c81611c0d88820194639f86fd8560e01b86523060248401528a604484015260648301906112bf565b51915afa50614169612e6c565b805181019280828486019503126104fa57828201519161418883610b30565b81810151906001600160401b0382116104fa57019084603f830112156104fa57838201516141b581610935565b956141c2835197886108e5565b8187528282850101116104fa578085925f94018388015e85010152156141e6575090565b9080519182156104fa5701fd5b5f805160206150d1833981519152546001600160a01b0316330361421357565b60405163118cdaa760e01b8152336004820152602490fd5b8115612c5e570490565b91818302915f19818509938380861095039480860395146142b557848311156142a85790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b8215600302601118614d4e565b5050906109a1925061422b565b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152610933916142fb826108ca565b614879565b90614309612c63565b82101561438a575f82815260096020908152604080832033845290915290205460ff166143785761433a3383612f56565b918215614366575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600c54806143dc57505f5b6001600160d01b038116156143d757600d54811015612dc957600d5f525f805160206150f1833981519152015490565b505f90565b805f1981011161074157600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c6143a7565b600a548061445057505f5b6001600160d01b038116156143d757600b54811015612dc957600b5f525f80516020615111833981519152015490565b805f1981011161074157600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c614420565b8054806144ae57505f5b6001600160d01b038116156136c4576001613e279201613a51565b5f1990808281011161074157825f5260205f2001015460301c614493565b9190600181018091116107415760018201809211610741576109a192614235565b600a54905f829160058411614545575b6145079350614bec565b8061452a57505f5b6001600160d01b038116156143d757613e276109a191613a0d565b614539613dd661454092612677565b5460301c90565b61450f565b9192614550816149ef565b81039081116107415761450793600a5f5265ffffffffffff80835f805160206150b1833981519152015416908516105f1461458c5750916144fd565b929150614598906126a5565b906144fd565b600c54905f8291600584116145ef575b6145b89350614c55565b806145db57505f5b6001600160d01b038116156143d757613e276109a191613a2f565b614539613edb6145ea92612677565b6145c0565b91926145fa816149ef565b8103908111610741576145b893600c5f5265ffffffffffff80835f80516020615091833981519152015416908516105f146146365750916145ae565b929150614642906126a5565b906145ae565b908154905f8291600584116146ab575b614663935084614cbe565b8061468b57505f905b6001600160d01b038216156136c4576109a1916001613e279201613a51565b61453961469a6146a592612677565b835f5260205f200190565b9061466c565b91926146b6816149ef565b81039081116107415761466393855f5265ffffffffffff808360205f20015416908516105f146146e7575091614658565b9291506146f3906126a5565b90614658565b60405190614706826108af565b5f6020838281520152565b6147196146f9565b506147226146f9565b50600a54811015612dc95761474990600a5f525f805160206150b183398151915201613d83565b65ffffffffffff81511690602060018060d01b0391015116600b54811015612dc957600b5f525f8051602061511183398151915201546040519161478c836108af565b8252602082015290565b61479e6146f9565b506147a76146f9565b50600c54811015612dc9576147ce90600c5f525f8051602061509183398151915201613d83565b65ffffffffffff81511690602060018060d01b0391015116600d54811015612dc957600d5f525f805160206150f183398151915201546040519161478c836108af565b9061483a61483461485b926148246146f9565b5061482d6146f9565b5084613a51565b50613d83565b91600165ffffffffffff845116936020828060d01b03910151169101613a51565b9054906040519261486b846108af565b835260031b1c602082015290565b905f602091828151910182855af1156126f0575f513d6148ca57506001600160a01b0381163b155b6148a85750565b604051635274afe760e01b81526001600160a01b039091166004820152602490fd5b600114156148a1565b9190600181018091116107415760018201809211610741576148f6828285614235565b928215612c5e5709151581018091116107415790565b600c548061491d57505f905f905f90565b805f1981011161074157600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460019165ffffffffffff82169160301c90565b600a548061497257505f905f905f90565b805f1981011161074157600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460019165ffffffffffff82169160301c90565b8054806149c75750505f905f905f90565b5f19918183810111610741575f5260205f2001015460019165ffffffffffff82169160301c90565b60018111156109a157600181600160801b811015614b08575b614ab0614aa6614a9c614a92614a88614a7e614abc97600488600160401b614ab79a1015614afb575b640100000000811015614aee575b62010000811015614ae1575b610100811015614ad5575b6010811015614ac9575b1015614ac1575b60030260011c614a77818b61422b565b0160011c90565b614a77818a61422b565b614a77818961422b565b614a77818861422b565b614a77818761422b565b614a77818661422b565b809361422b565b821190565b900390565b60011b614a67565b811c9160021b91614a60565b60081c91811b91614a56565b60101c9160081b91614a4b565b60201c9160101b91614a3f565b60401c9160201b91614a31565b50600160401b9050608082901c614a08565b905b828110614b2857505090565b9091808216906001818418811c830180931161074157600a5f5265ffffffffffff80845f805160206150b1833981519152015416908616105f14614b70575050915b90614b1c565b9093925081018091116107415790614b6a565b905b828110614b9157505090565b9091808216906001818418811c830180931161074157600c5f5265ffffffffffff80845f80516020615091833981519152015416908616105f14614bd9575050915b90614b85565b9093925081018091116107415790614bd3565b905b828110614bfa57505090565b9091808216906001818418811c830180931161074157600a5f5265ffffffffffff80845f805160206150b1833981519152015416908616105f14614c42575050915b90614bee565b9093925081018091116107415790614c3c565b905b828110614c6357505090565b9091808216906001818418811c830180931161074157600c5f5265ffffffffffff80845f80516020615091833981519152015416908616105f14614cab575050915b90614c57565b9093925081018091116107415790614ca5565b91905b838210614cce5750505090565b909192808316906001818518811c830180931161074157855f5265ffffffffffff808460205f20015416908516105f14614d0d575050925b9190614cc1565b9094935081018091116107415791614d06565b60ff5f805160206151718339815191525460401c1615614d3c57565b604051631afcd79f60e31b8152600490fd5b634e487b715f526020526024601cfd5b600c5490600160401b8210156108aa576001820180600c55821015612dc957600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f8051602061509183398151915290910155565b600a5490600160401b8210156108aa576001820180600a55821015612dc957600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206150b183398151915290910155565b8054600160401b8110156108aa57614e2991600182018155613a51565b614e5457815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c549192918015614f0e57613edb614e7f91612677565b9081549165ffffffffffff90818416918316808311614efc57869203614ec457614ebd92509065ffffffffffff82549181199060301b169116179055565b60301c9190565b5050614ef790614ee3614ed5610926565b65ffffffffffff9092168252565b6001600160d01b0385166020820152614d5e565b614ebd565b604051632520601d60e01b8152600490fd5b50614f3290614f1e614ed5610926565b6001600160d01b0384166020820152614d5e565b5f9190565b600a549192918015614fb257613dd6614f4f91612677565b9081549165ffffffffffff90818416918316808311614efc57869203614f8d57614ebd92509065ffffffffffff82549181199060301b169116179055565b5050614ef790614f9e614ed5610926565b6001600160d01b0385166020820152614db5565b50614f3290614fc2614ed5610926565b6001600160d01b0384166020820152614db5565b8054929392801561506b57614fed614ff891612677565b825f5260205f200190565b9182549265ffffffffffff91828516928116808411614efc578793036150375750614ebd92509065ffffffffffff82549181199060301b169116179055565b915050614ef791615057615049610926565b65ffffffffffff9093168352565b6001600160d01b0386166020830152614e0c565b5090614f329161507c615049610926565b6001600160d01b0385166020830152614e0c56fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a89016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122096afd643cffc15a05e275ebcf57e554339f04ba03ab6025ec642ba4ec611894864736f6c63430008190033","sourceMap":"199:2819:96:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;199:2819:96;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;199:2819:96;;;;;;;;;;3551:87:23;-1:-1:-1;;;1134:40:32;;-1:-1:-1;3551:87:23;;;199:2819:96;-1:-1:-1;199:2819:96;;;;;;;;-1:-1:-1;;199:2819:96;;;;;;;966:38:107;199:2819:96;;;;;;;;;-1:-1:-1;;199:2819:96;;;;;;;821:37:107;199:2819:96;;;;-1:-1:-1;;;;;199:2819:96;;;;;:::o;:::-;;;;;;-1:-1:-1;;199:2819:96;;;;;;;;;:::i;:::-;;;3361:103:30;;;:::i;:::-;-1:-1:-1;;;;;199:2819:96;;5525:21:106;5521:75;;5634:10;199:2819:96;;;;5606:15:107;199:2819:96;;;;;5606:33:107;;;:::i;:24::-;:33;:::i;:::-;5610:35:106;;5606:88;;1057:70:98;5173:21:107;;:::i;:::-;4803:22;;:::i;:::-;1057:70:98;;;:::i;:::-;5801:20:106;;;5797:82;;5904:43;;;;:::i;:::-;3426:1:30;;1949;-1:-1:-1;;;;;;;;;;;199:2819:96;3860:283:30;3426:1;199:2819:96;;;;;;;;;;;;;;;;;;5797:82:106;199:2819:96;;-1:-1:-1;;;;;;5844:24:106;;199:2819:96;;5844:24:106;5606:88;199:2819:96;;-1:-1:-1;;;5668:15:106;;199:2819:96;;5668:15:106;5521:75;199:2819:96;;-1:-1:-1;;;5569:16:106;;199:2819:96;;5569:16:106;199:2819:96;;;;;;-1:-1:-1;;199:2819:96;;;;;;-1:-1:-1;199:2819:96;-1:-1:-1;;;;;;;;;;;199:2819:96;;;4919:24:23;199:2819:96;-1:-1:-1;199:2819:96;4919:24:23;199:2819:96;;;;;;;;;;;;;-1:-1:-1;;199:2819:96;;;;;;;;-1:-1:-1;;;;;199:2819:96;;;;;;;;;;;;;;-1:-1:-1;;199:2819:96;;;;4084:14:107;;:::i;:::-;4112:10;;4108:65;;4190:17;199:2819:96;;;;;;;;;;;;;;;;4210:27:107;199:2819:96;;;4210:27:107;;:::i;:::-;199:2819:96;;;;;;;4189:60:107;199:2819:96;4189:60:107;;:::i;:::-;199:2819:96;;;;;;;;;;;;;;;;;;:::i;4108:65:107:-;199:2819:96;;-1:-1:-1;;;4145:17:107;;199:2819:96;;4145:17:107;199:2819:96;;;;-1:-1:-1;;;;;199:2819:96;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:96;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;199:2819:96;;;;;;:::i;:::-;-1:-1:-1;;;;;199:2819:96;;;;;;;;;;;;;;:::i;:::-;3361:103:30;;;;;:::i;:::-;1673:7:82;-1:-1:-1;;;;;199:2819:96;1659:10:82;:21;1655:71;;-1:-1:-1;;;;;;;;;;;199:2819:96;;;;;;;6431:44:26;;;;;199:2819:96;6427:105:26;;;;1809:204:82;6427:105:26;;199:2819:96;;-1:-1:-1;;;6498:23:26;;199:2819:96;;6498:23:26;6431:44;199:2819:96;;;;6450:25:26;;;-1:-1:-1;6431:44:26;;;;;1655:71:82;199:2819:96;;-1:-1:-1;;;1703:12:82;;199:2819:96;;1703:12:82;199:2819:96;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:96;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;199:2819:96;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;199:2819:96;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:96;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;199:2819:96;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;199:2819:96;;;;;;-1:-1:-1;;199:2819:96;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;199:2819:96;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;-1:-1:-1;;199:2819:96;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;199:2819:96;;;;;;;5383:59:107;199:2819:96;;;;;;:::i;:::-;-1:-1:-1;;;;;199:2819:96;;;-1:-1:-1;199:2819:96;;;5383:15:107;199:2819:96;;;;;5383:59:107;:::i;:::-;199:2819:96;;;;;;;;;;;;-1:-1:-1;;199:2819:96;;;;;;655:32:82;-1:-1:-1;;;;;199:2819:96;;;;;;;;;;;;-1:-1:-1;;199:2819:96;;;;5350:25:23;199:2819:96;;;;;;;:::i;:::-;;-1:-1:-1;199:2819:96;-1:-1:-1;;;;;;;;;;;199:2819:96;;3202:4:23;4919:24;199:2819:96;-1:-1:-1;199:2819:96;4919:24:23;199:2819:96;3202:4:23;:::i;:::-;5350:25;:::i;:::-;199:2819:96;;;;;;;-1:-1:-1;;199:2819:96;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;199:2819:96;;6441:34:23;6437:102;;6549:37;199:2819:96;;;6549:37:23;:::i;6437:102::-;199:2819:96;;-1:-1:-1;;;6498:30:23;;199:2819:96;;6498:30:23;199:2819:96;;;;;;-1:-1:-1;;199:2819:96;;;;;1524:22:106;199:2819:96;;;;1524:46:106;;;199:2819:96;;;;;;;;;;;1524:46:106;-1:-1:-1;1550:20:106;199:2819:96;;;;;1524:46:106;;199:2819:96;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;199:2819:96;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;199:2819:96;;;;;;;;;;;9542:26:106;9538:76;;-1:-1:-1;;199:2819:96;;;;;-1:-1:-1;199:2819:96;;;;;;9665:27:106;;199:2819:96;;9665:27:106;1949:1:30;-1:-1:-1;;;;;;;;;;;199:2819:96;;9538:76:106;199:2819:96;;-1:-1:-1;;;9591:12:106;;199:2819:96;;9591:12:106;199:2819:96;;;;;;-1:-1:-1;;199:2819:96;;;;;;1718:31:107;199:2819:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;-1:-1:-1;;;;;199:2819:96;;;;;3474:24:106;;3470:81;;-1:-1:-1;199:2819:96;;;;3565:55:106;;;199:2819:96;3561:118:106;;199:2819:96;;-1:-1:-1;;;3713:43:106;;;3750:4;3713:43;;;199:2819:96;;;;;;;;;;;;;;;;;;;;;;;;;3713:43:106;;;;;;;;;;-1:-1:-1;3713:43:106;;;199:2819:96;;3829:6:106;199:2819:96;;;3750:4:106;;3802:10;;3829:6;;:::i;:::-;-1:-1:-1;199:2819:96;;;3864:43:106;;;3750:4;3864:43;;;199:2819:96;;;;;;;;;;3864:43:106;199:2819:96;;;;;;3864:43:106;199:2819:96;;;;;3864:43:106;;;;;;;:59;:43;-1:-1:-1;3864:43:106;;;199:2819:96;3864:59:106;;;:::i;:::-;3938:20;;;3934:79;;199:2819:96;;;;;4027:64:106;;199:2819:96;4023:123:106;;5173:21:107;;199:2819:96;5173:21:107;4502:93:106;5173:21:107;;:::i;:::-;4803:22;4426:66:106;4803:22:107;;:::i;:::-;4349:67:106;390:70:98;;;;;:::i;:::-;837:15:73;4385:30:106;837:15:73;819:34;837:15;819:34;:::i;:::-;4385:30:106;;:::i;:::-;4349:67;;:::i;:::-;837:15:73;;4463:28:106;837:15:73;819:34;837:15;819:34;:::i;4463:28:106:-;4426:66;;:::i;:::-;-1:-1:-1;;;;;;;199:2819:96;;;;;;5606:15:107;199:2819:96;;;;;837:15:73;4553:41:106;837:15:73;5606:33:107;:24;819:34:73;837:15;819:34;:::i;:::-;-1:-1:-1;;;;;199:2819:96;;;;;;;5606:15:107;199:2819:96;;;;;;;5606:33:107;4553:41:106;:::i;:::-;4502:93;;:::i;:::-;-1:-1:-1;;199:2819:96;;;;;;;;;;;3802:10:106;;4611:62;;199:2819:96;;4611:62:106;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;199:2819:96;3860:283:30;3426:1;199:2819:96;;;;;;;;;;;;;;;;;;;4023:123:106;199:2819:96;;-1:-1:-1;;;4114:21:106;;;4027:64;5173:21:107;4045:31:106;5173:21:107;;;:::i;4045:31:106:-;199:2819:96;;-1:-1:-1;4027:64:106;;3934:79;-1:-1:-1;199:2819:96;;-1:-1:-1;;;3981:21:106;;;3864:43;;;;;;-1:-1:-1;3864:43:106;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;3713:::-;3829:6;3713:43;;;;;;;;;;;;;;;:::i;:::-;;;;;3561:118;-1:-1:-1;199:2819:96;;-1:-1:-1;;;3643:25:106;;;3565:55;-1:-1:-1;3609:10:106;199:2819:96;;;;3586:22:106;199:2819:96;;;;;;;;3585:35:106;3565:55;;3470:81;199:2819:96;;-1:-1:-1;;;3521:19:106;;;199:2819:96;;;;;;-1:-1:-1;;199:2819:96;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:96;;;;;1805:27:107;199:2819:96;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:96;;;;;;1968:34:107;199:2819:96;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:96;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;199:2819:96;;;;;;;;;:::i;:::-;;;;;4622:48:107;199:2819:96;;;:::i;:::-;4622:48:107;;:::i;199:2819:96:-;;;;;;-1:-1:-1;;199:2819:96;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;199:2819:96;;;;;;;;;;;;;10370:24:106;10366:74;;-1:-1:-1;;199:2819:96;;;;;;;;-1:-1:-1;199:2819:96;;;;;;10489:25:106;;199:2819:96;;10489:25:106;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;199:2819:96;3860:283:30;199:2819:96;;;;;;-1:-1:-1;;199:2819:96;;;;;-1:-1:-1;;;;;;;;;;;;;;;;199:2819:96;;;;;;;;;;;;;;-1:-1:-1;;199:2819:96;;;;;;;;;:::i;:::-;449:5:93;-1:-1:-1;;;;;199:2819:96;435:10:93;:19;431:71;;1113:52:96;;;:::i;:::-;199:2819;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:96;431:71:93;199:2819:96;;-1:-1:-1;;;477:14:93;;199:2819:96;;477:14:93;199:2819:96;;;;;;-1:-1:-1;;199:2819:96;;;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;;;;;199:2819:96;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;8837:64:26;;199:2819:96;;;;;;734:29:82;730:87;;199:2819:96;;;;;6431:44:26;;;;;199:2819:96;6427:105:26;;;6656:20;199:2819:96;6656:20:26;199:2819:96;1167:340:82;199:2819:96;;;;-1:-1:-1;;;;;199:2819:96;;;;;6575:22:26;-1:-1:-1;;;;;;;;;;;;;;199:2819:96;;;;;;;;;6575:22:26;1167:340:82;:::i;:::-;-1:-1:-1;;;;;;;;;;;199:2819:96;;-1:-1:-1;;199:2819:96;;;;;-1:-1:-1;;;;;199:2819:96;;;;;;;;;;;;;6656:20:26;;;;199:2819:96;6431:44:26;199:2819:96;;;;;-1:-1:-1;6450:25:26;6431:44;;;730:87:82;199:2819:96;;-1:-1:-1;;;786:20:82;;199:2819:96;;786:20:82;199:2819:96;;;;;;-1:-1:-1;;199:2819:96;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;199:2819:96;;;;;;-1:-1:-1;199:2819:96;2431:59:107;199:2819:96;;;;-1:-1:-1;199:2819:96;;;;;;;;;;;;;;-1:-1:-1;;199:2819:96;;;;3875:17:107;199:2819:96;;3895:30:107;199:2819:96;;;;;3895:14:107;;;:::i;:::-;199:2819:96;;;3895:30:107;;:::i;:::-;199:2819:96;;;;;;;3874:63:107;199:2819:96;3874:63:107;;:::i;:::-;199:2819:96;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;199:2819:96;;;;;;;;-1:-1:-1;;199:2819:96;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;199:2819:96;;;;;;;;;:::i;:::-;449:5:93;-1:-1:-1;;;;;199:2819:96;435:10:93;:19;431:71;;514:51:96;;;:::i;199:2819::-;;;;;;-1:-1:-1;;199:2819:96;;;;;;1200:42:107;-1:-1:-1;;;;;199:2819:96;;;;;;;;;;;;-1:-1:-1;;199:2819:96;;;;;;2136:32:107;199:2819:96;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:96;;;;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;199:2819:96;;-1:-1:-1;;;;;;199:2819:96;;;;;;;-1:-1:-1;;;;;199:2819:96;3975:40:24;199:2819:96;;3975:40:24;199:2819:96;;;;;;;-1:-1:-1;;199:2819:96;;;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;7131:7:106;199:2819:96;7117:21:106;;-1:-1:-1;;;;;199:2819:96;;-1:-1:-1;;;;;199:2819:96;;;7117:21:106;:10;:21;7113:71;;7218:14;;:::i;:::-;7265:25;;;;:::i;:::-;7305:17;;;;:53;;;199:2819:96;7304:87:106;;;;199:2819:96;7300:146:106;;199:2819:96;5173:21:107;9310:48:106;5173:21:107;;;:::i;:::-;7540:17:106;7528:30;7540:17;;;:::i;:::-;199:2819:96;;7528:11:106;199:2819:96;;;;;;;7528:30:106;199:2819:96;;7572:29:106;;;;;7642:30;;;;;:::i;:::-;3066:5:68;;;3463;;;199:2819:96;3060:42:68;;7752:17:106;;;7748:384;;7568:1615;;;;;;;9197:17;9193:102;;7568:1615;199:2819:96;;;;;;;;;;;;;;;;;;;;;;;9310:48:106;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;199:2819:96;3860:283:30;3426:1;199:2819:96;;;;;;;;;;;;;9193:102:106;-1:-1:-1;199:2819:96;9270:13:106;;199:2819:96;;9230:18:106;;199:2819:96;;-1:-1:-1;;;;;199:2819:96;;;9230:18:106;7556:1;199:2819:96;-1:-1:-1;;;;;199:2819:96;9270:13:106;;:::i;:::-;9193:102;;7748:384;8045:29;7813:50;7962:65;7813:50;7998:28;7914:29;7813:50;8057:16;7813:50;8077:40;7813:50;;;:::i;:::-;7914:29;;;:::i;:::-;837:15:73;819:34;837:15;819:34;:::i;:::-;7998:28:106;;:::i;8077:40::-;8057:16;;:::i;8045:29::-;199:2819:96;7748:384:106;;;;;;;7568:1615;8185:26;;;;199:2819:96;;7528:11:106;199:2819:96;;;;;;;8185:26:106;199:2819:96;8250:27:106;:45;:27;;;;;:::i;:45::-;3463:5:68;3066;;;3463;;;199:2819:96;3060:42:68;;8375:17:106;;8371:802;;7568:1615;;;;;;;;8371:802;9096:26;8436:50;;8537:53;8436:50;8637:54;8436:50;8637:29;8436:50;9125:33;8436:50;;;;:::i;:::-;8537:53;;;;;;:::i;:::-;8637:29;;;;:::i;:::-;:54;:::i;:::-;8714:33;;;;8710:194;;8371:802;8922:65;837:15:73;8958:28:106;9038:40;837:15:73;;;819:34;837:15;819:34;:::i;9038:40:106:-;9005:30;9017:17;;;:::i;9005:30::-;199:2819:96;9125:33:106;:::i;:::-;9096:26;199:2819:96;;7528:11:106;199:2819:96;;;;;;;9096:26:106;199:2819:96;8371:802:106;;;;;;;8710:194;8797:33;8771:59;8922:65;8797:33;;;9038:40;8797:33;;;:::i;:::-;8771:59;;:::i;:::-;8852:33;;-1:-1:-1;8852:33:106;;-1:-1:-1;8710:194:106;;7300:146;199:2819:96;;-1:-1:-1;;;7414:21:106;;199:2819:96;;7414:21:106;7304:87;7363:28;;;;7304:87;;7305:53;7341:17;;;;:::i;:::-;7326:32;;7305:53;;7113:71;199:2819:96;;-1:-1:-1;;;7161:12:106;;199:2819:96;;7161:12:106;199:2819:96;;;;;;-1:-1:-1;;199:2819:96;;;;4384:17:107;199:2819:96;;;;;;;4405:14:107;;;:::i;:::-;4384:17;199:2819:96;;;;;;;4404:36:107;199:2819:96;;;4404:36:107;;:::i;199:2819:96:-;;;;;;-1:-1:-1;;199:2819:96;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;199:2819:96;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;199:2819:96;2307:68:107;199:2819:96;;;;;-1:-1:-1;199:2819:96;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:96;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;199:2819:96;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;199:2819:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6491:14:106;199:2819:96;;6491:14:106;;:::i;199:2819:96:-;;;;;4994:47:107;199:2819:96;;;:::i;:::-;4994:47:107;;:::i;199:2819:96:-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;10932:22:106;199:2819:96;;;;;10928:89:106;;199:2819:96;;-1:-1:-1;;;11032:49:106;;-1:-1:-1;;;;;199:2819:96;;;11032:49:106;;;199:2819:96;;;;;;;;;;;;;;;11032:49:106;11042:17;;;199:2819:96;11032:49:106;;;;;;;-1:-1:-1;11032:49:106;;;199:2819:96;11031:50:106;;11027:102;;199:2819:96;;-1:-1:-1;;;11143:34:106;;199:2819:96;;;;;11143:34:106;199:2819:96;11143:34:106;199:2819:96;;11143:34:106;;;;;;;-1:-1:-1;11143:34:106;;;199:2819:96;11189:4:106;;;199:2819:96;;11143:51:106;11139:107;;-1:-1:-1;10932:22:106;199:2819:96;;-1:-1:-1;;;;;199:2819:96;;;;-1:-1:-1;;;;;;199:2819:96;;;;;;;-1:-1:-1;;;199:2819:96;;;11334:24:106;-1:-1:-1;;11334:24:106;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;199:2819:96;3860:283:30;11139:107:106;199:2819:96;;-1:-1:-1;;;11217:18:106;;;11143:34;;;;;;;-1:-1:-1;11143:34:106;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;11027:102;-1:-1:-1;199:2819:96;;-1:-1:-1;;;11104:14:106;;;11032:49;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;10928:89;199:2819:96;;-1:-1:-1;;;10977:29:106;;;199:2819:96;;;;;;-1:-1:-1;;199:2819:96;;;;;;1298:40:107;-1:-1:-1;;;;;199:2819:96;;;;;;;;;;;;-1:-1:-1;;199:2819:96;;;;1703:14:106;;:::i;:::-;5173:21:107;;:::i;:::-;199:2819:96;;;;1750:11:106;199:2819:96;;;;;;;;;;;;;1791:1:106;199:2819:96;;;;;;;;;1750:11:106;199:2819:96;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:96;;;;-1:-1:-1;;;;;;;;;;;199:2819:96;;;-1:-1:-1;;;;;199:2819:96;;;;;;;;;;;;;;-1:-1:-1;;199:2819:96;;;;;;3901:31:23;199:2819:96;;;;;:::i;:::-;;;-1:-1:-1;199:2819:96;-1:-1:-1;;;;;;;;;;;199:2819:96;;;-1:-1:-1;199:2819:96;;;;;;;;;;;;;;;;;3901:31:23;199:2819:96;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:96;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;199:2819:96;5606:15:107;199:2819:96;;;5606:33:107;199:2819:96;-1:-1:-1;199:2819:96;5606:33:107;:::i;199:2819:96:-;;;;;;-1:-1:-1;;199:2819:96;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;199:2819:96;;;;-1:-1:-1;199:2819:96;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:86;;;;477:31;416:25;;:::i;:::-;199:2819:96;;;;;;;;;;477:31:86;;199:2819:96;;;;;;;;;;;:::i;:::-;477:31:86;199:2819:96;;477:31:86;;;;;;:::i;:::-;518:79;;;199:2819:96;518:79:86;;199:2819:96;;;;;;-1:-1:-1;;199:2819:96;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:96;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:96;;;;;;;1109:35:107;199:2819:96;;;;;;;;;-1:-1:-1;;199:2819:96;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;;;;;199:2819:96;;;9907:21:106;;9903:75;;-1:-1:-1;199:2819:96;;;9992:22:106;199:2819:96;;;;;;;;;;;;;9992:41:106;9988:91;;-1:-1:-1;;;;;199:2819:96;;;;;3586:22:106;199:2819:96;;;;;10145:44:106;;;;10089:40;;:31;199:2819:96;;;;;;;;;;;;;;10089:40:106;199:2819:96;;;;;;;;;;;;;;;10145:44:106;;;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;199:2819:96;3860:283:30;9903:75:106;199:2819:96;;-1:-1:-1;;;9951:16:106;;199:2819:96;;9951:16:106;199:2819:96;;;;;;-1:-1:-1;;199:2819:96;;;;;2666:94:107;199:2819:96;;;;;:::i;:::-;;;-1:-1:-1;199:2819:96;2666:94:107;199:2819:96;;;-1:-1:-1;199:2819:96;;;;;;;;;;;;;;;;;2666:94:107;199:2819:96;;;;;;;;;;;;;-1:-1:-1;;199:2819:96;;;;;;2816:92:107;199:2819:96;;;;;:::i;:::-;;;-1:-1:-1;199:2819:96;2816:92:107;199:2819:96;;;-1:-1:-1;199:2819:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;11459:20:106;199:2819:96;;;;;11455:85:106;;-1:-1:-1;;;;;199:2819:96;;;;;;11550:312:106;;199:2819:96;11459:20:106;199:2819:96;;-1:-1:-1;;;;199:2819:96;-1:-1:-1;;;199:2819:96;;;11872:27:106;11915:20;-1:-1:-1;11915:20:106;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;199:2819:96;3860:283:30;11550:312:106;199:2819:96;;-1:-1:-1;;;11597:45:106;;-1:-1:-1;;;;;199:2819:96;;11597:45:106;;;199:2819:96;;;11597:45:106;;199:2819:96;;;;;;11597:45:106;11607:15;;;199:2819:96;11597:45:106;;;;;;;-1:-1:-1;11597:45:106;;;11550:312;11596:46;;11592:104;;199:2819:96;;-1:-1:-1;;;11714:30:106;;;199:2819:96;11714:30:106;199:2819:96;11714:30:106;;;;;;;;-1:-1:-1;11714:30:106;;;11550:312;11756:4;;;199:2819:96;;11714:47:106;11710:109;;-1:-1:-1;11459:20:106;199:2819:96;;-1:-1:-1;;;;;;199:2819:96;-1:-1:-1;;;;;199:2819:96;;;;;;;;;11550:312:106;;;;;;11710:109;199:2819:96;;-1:-1:-1;;;11788:16:106;;;11714:30;;;;;;;-1:-1:-1;11714:30:106;;;;;;:::i;:::-;;;;;;11592:104;199:2819:96;;-1:-1:-1;;;11669:12:106;;199:2819:96;;11669:12:106;11597:45;;;;;;;;;;;;;;:::i;:::-;;;;11455:85;199:2819:96;;-1:-1:-1;;;11502:27:106;;;199:2819:96;;;;;;-1:-1:-1;;199:2819:96;;;;;;;;;:::i;:::-;;;3361:103:30;;;:::i;:::-;-1:-1:-1;;;;;199:2819:96;;;;;6112:23:106;;6108:79;;6273:6;199:2819:96;6206:13:106;;;;:::i;:::-;199:2819:96;;;-1:-1:-1;199:2819:96;;;;6273:6:106;:::i;:::-;199:2819:96;;;;;;;;;;;;6302:10:106;;6296:43;;199:2819:96;6296:43:106;1949:1:30;-1:-1:-1;;;;;;;;;;;199:2819:96;;;;;;;;;;;;;;6108:79:106;199:2819:96;;-1:-1:-1;;;6158:18:106;;199:2819:96;;6158:18:106;199:2819:96;;;;;;-1:-1:-1;;199:2819:96;;;;;;-1:-1:-1;199:2819:96;2546:64:107;199:2819:96;;;;-1:-1:-1;199:2819:96;;;;;;;;;;;;;;-1:-1:-1;;199:2819:96;;;;2058:22:107;199:2819:96;;;-1:-1:-1;;;;;199:2819:96;;;;;;;;;;;;;;-1:-1:-1;;199:2819:96;;;;;5173:21:107;;:::i;199:2819:96:-;;;;;;-1:-1:-1;;199:2819:96;;;;;;3361:103:30;;:::i;:::-;966:10:28;-1:-1:-1;199:2819:96;;;;;;;;;;1109:35:107;;199:2819:96;;4468:23:23;4464:108;;199:2819:96;;;;10692:21:106;10688:71;;199:2819:96;;10805:22:106;199:2819:96;;;;;;;;10805:22:106;1949:1:30;-1:-1:-1;;;;;;;;;;;199:2819:96;;4464:108:23;199:2819:96;;;;4514:47:23;;;;;;966:10:28;199:2819:96;4514:47:23;;199:2819:96;;;;;4514:47:23;199:2819:96;;;;;;-1:-1:-1;;199:2819:96;;;;;4803:22:107;;:::i;199:2819:96:-;;;;;;-1:-1:-1;;199:2819:96;;;;;;;;;:::i;:::-;3123:14:106;;:::i;:::-;3154:24;;;:::i;:::-;3181:29;;;;;:::i;:::-;199:2819:96;;;;;;;3235:1:106;199:2819:96;;;;;;;3213:33:106;;;:::i;:::-;199:2819:96;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:96;;;;1888:24:107;199:2819:96;;;-1:-1:-1;;;;;199:2819:96;;;;;;;;;;;;;;-1:-1:-1;;199:2819:96;;;;5767:26:23;199:2819:96;;;;;;;:::i;:::-;;-1:-1:-1;199:2819:96;-1:-1:-1;;;;;;;;;;;199:2819:96;;3202:4:23;4919:24;199:2819:96;-1:-1:-1;199:2819:96;4919:24:23;199:2819:96;3202:4:23;:::i;:::-;5767:26;:::i;199:2819:96:-;;;;;;-1:-1:-1;;199:2819:96;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:96;;;;;;;;;;;;-1:-1:-1;;199:2819:96;;;;;;;675:39:107;199:2819:96;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;449:5:93;199:2819:96;;435:10:93;:19;431:71;;1742:63:96;199:2819;;-1:-1:-1;199:2819:96;1742:15;199:2819;;;-1:-1:-1;199:2819:96;1742:63;:::i;199:2819::-;;;;;;-1:-1:-1;;199:2819:96;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:2819:96;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;199:2819:96;;;;;;;;;;;;;;;:::i;:::-;1972:48:106;;199:2819:96;;;;;;;:::i;:::-;;;;;;;;;;;;;;2034:16:106;;2030:111;;199:2819:96;;2233:39:106;1057:70:98;2233:39:106;;4622:48:107;2196:77:106;2233:39;;;;2196:77;;:::i;:::-;2312:36;;4994:47:107;199:2819:96;2312:36:106;;;4994:47:107;;:::i;:::-;2389:37:106;;;4622:48:107;;:::i;:::-;1057:70:98;;:::i;:::-;199:2819:96;;;;;;;;;;;;;2030:111:106;2089:41;;;;-1:-1:-1;199:2819:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;4622:48:107;199:2819:96;2196:77:106;199:2819:96;1057:70:98;199:2819:96;;;:::i;:::-;;;;;2030:111:106;;;;;199:2819:96;;;;;;-1:-1:-1;;199:2819:96;;;;2357:1:24;199:2819:96;;;;;:::i;:::-;2303:62:24;;:::i;:::-;2357:1;:::i;199:2819:96:-;;;;;;-1:-1:-1;;199:2819:96;;;;;;;;;:::i;:::-;;;3361:103:30;;:::i;:::-;-1:-1:-1;;;;;199:2819:96;;4890:21:106;4886:75;;4975:11;;4971:73;;845:69:98;4803:22:107;;:::i;:::-;5173:21;;:::i;:::-;845:69:98;;;:::i;:::-;5180:10:106;199:2819:96;;;;5606:15:107;199:2819:96;;;;;5180:10:106;;;5606:33:107;;;:::i;:::-;5150:41:106;;5146:96;;5267:40;;;;;:::i;5146:96::-;199:2819:96;;-1:-1:-1;;;5214:17:106;;199:2819:96;;5214:17:106;4971:73;199:2819:96;;-1:-1:-1;;;5009:24:106;;199:2819:96;;5009:24:106;199:2819:96;;;;;;-1:-1:-1;;199:2819:96;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;199:2819:96;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;7556:1:106;199:2819:96;;;;;;;:::o;:::-;;;;;;;;;;:::o;5256:193:107:-;-1:-1:-1;;;;;199:2819:96;-1:-1:-1;199:2819:96;;;5383:15:107;199:2819:96;;;;;5383:59:107;;5256:193;;5383:59;:::i;199:2819:96:-;;;;;;;;;;;:::o;:::-;;;;;;;;;;1167:340:82;;13510:30:106;1167:340:82;199:2819:96;1167:340:82;6893:76:26;;:::i;:::-;;;:::i;:::-;1949:1:30;-1:-1:-1;;;;;;;;;;;199:2819:96;-1:-1:-1;;;;;199:2819:96;;;;1376:73:82;;1167:340;199:2819:96;;;;:::i;:::-;13510:30:106;199:2819:96;;;13510:30:106;;;;;;:::i;:::-;199:2819:96;;;;-1:-1:-1;;;;;199:2819:96;13555:31:106;13551:88;;13653:20;;;;199:2819:96;;;;;;;;;;13653:25:106;13649:85;;13748:29;;;199:2819:96;;13748:29:106;;199:2819:96;13748:43:106;;-1:-1:-1;;;;;199:2819:96;;;13748:43:106;;13744:943;;1167:340:82;199:2819:96;;;15647:32:106;199:2819:96;14817:36:106;199:2819:96;;;14697:30:106;199:2819:96;;;;;;;;;;;;1398:1:82;199:2819:96;;-1:-1:-1;;;;;;199:2819:96;;;;;;-1:-1:-1;;;;;199:2819:96;;;;;;;;14697:30:106;13510;14747:13;;199:2819:96;;;;-1:-1:-1;;;;;;199:2819:96;-1:-1:-1;;;;;199:2819:96;;;;;;;;;14771:36:106;819:34:73;837:15;819:34;:::i;:::-;1949:1:30;199:2819:96;;-1:-1:-1;;;;199:2819:96;;;;;;-1:-1:-1;;;199:2819:96;;;;;;;;14771:36:106;199:2819:96;;;;;;1949:1:30;199:2819:96;;-1:-1:-1;;;;;199:2819:96;;;;;;-1:-1:-1;;;;;;199:2819:96;;;;;;;;14817:36:106;14864:42;199:2819:96;14883:23:106;;;199:2819:96;;;;;;;;;1398:1:82;199:2819:96;;;;;;;1398:1:82;199:2819:96;;14864:42:106;14917:38;199:2819:96;14934:21:106;;;199:2819:96;;;;;;;1398:1:82;199:2819:96;;;;;;;;;;;;1398:1:82;199:2819:96;;14917:38:106;14965:34;14980:19;;;199:2819:96;14965:34:106;199:2819:96;;14965:34:106;199:2819:96;-1:-1:-1;;;;;199:2819:96;;;;;;;15010:135:106;;1167:340:82;-1:-1:-1;15158:36:106;;;199:2819:96;-1:-1:-1;;;;;199:2819:96;;;;15154:157:106;;1167:340:82;-1:-1:-1;15324:35:106;;;199:2819:96;-1:-1:-1;;;;;199:2819:96;;;;15320:153:106;;1167:340:82;-1:-1:-1;15486:34:106;;;199:2819:96;-1:-1:-1;;;;;199:2819:96;;;;15482:152:106;;1167:340:82;-1:-1:-1;15647:32:106;199:2819:96;-1:-1:-1;;;;;199:2819:96;;;;;;;15643:145:106;;1167:340:82;:::o;15643:145:106:-;15709:68;;;:::i;:::-;;1167:340:82:o;15482:152:106:-;15550:73;;;:::i;:::-;;15482:152;;;15320:153;15389:73;;;:::i;:::-;;15320:153;;;15154:157;15224:76;;;:::i;:::-;;15154:157;;;15010:135;15073:61;;;:::i;:::-;;15010:135;;;13744:943;13811:36;;;199:2819:96;13811:50:106;;-1:-1:-1;;;;;199:2819:96;;;13811:50:106;;13807:405;;13744:943;14230:34;;;199:2819:96;14230:48:106;;-1:-1:-1;;;;;199:2819:96;;;14230:48:106;13744:943;14226:451;14302:21;;;199:2819:96;;14302:21:106;;14351:19;;;199:2819:96;14351:24:106;:74;;;14298:365;14347:150;;14298:365;;199:2819:96;15647:32:106;14298:365;14817:36;199:2819:96;;14298:365:106;;14226:451;;;;;;;13744:943;;14347:150;199:2819:96;-1:-1:-1;;;14460:14:106;;;;;14351:74;-1:-1:-1;14379:32:106;;;199:2819:96;14379:46:106;;-1:-1:-1;;;;;199:2819:96;;;14379:46:106;;14351:74;;14298:365;14525:19;;;199:2819:96;14525:24:106;;;:74;;;14298:365;14521:142;;14298:365;;199:2819:96;15647:32:106;14298:365;14817:36;199:2819:96;;14298:365:106;;;14525:74;-1:-1:-1;14553:32:106;;;199:2819:96;14553:46:106;;-1:-1:-1;;;;;199:2819:96;;;14553:46:106;;;14525:74;;13807:405;13885:23;;;199:2819:96;;13885:23:106;;13936:35;;;199:2819:96;13936:49:106;;-1:-1:-1;;;;;199:2819:96;;;13936:49:106;13807:405;13932:125;199:2819:96;-1:-1:-1;;;14020:14:106;;;;;13881:317;14085:35;;;199:2819:96;14085:49:106;;-1:-1:-1;;;;;199:2819:96;;;14085:49:106;14081:117;13807:405;14081:117;199:2819:96;-1:-1:-1;;;14165:14:106;;;;;13649:85;199:2819:96;;-1:-1:-1;;;13701:22:106;;;;;13551:88;199:2819:96;;-1:-1:-1;;;13609:19:106;;;;;1376:73:82;6961:1:26;6893:76;;;:::i;:::-;;;:::i;6961:1::-;1376:73:82;;;2492:191:106;-1:-1:-1;;;;;199:2819:96;-1:-1:-1;199:2819:96;;;5606:15:107;199:2819:96;;;;;5606:33:107;;;:::i;:::-;5173:21;;:::i;:::-;4803:22;;:::i;:::-;199:2819:96;1884:1:98;199:2819:96;;;;;;;1884:1:98;199:2819:96;;;;;;;9478:25:68;;;:::i;199:2819:96:-;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;578:368::-;;;735:95;711:157;578:368;199:2819;;;;;766:63;;;;;;;;199:2819;766:63;;;199:2819;766:63;;;;;;:::i;:::-;735:95;:::i;:::-;766:63;199:2819;;;711:157;;;;;;:::i;:::-;879:61;;;578:368;:::o;879:61::-;199:2819;;;;;;;;766:63;912:17;;199:2819;766:63;912:17;;;;;:::i;199:2819::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;3612:132:107:-;819:34:73;837:15;819:34;:::i;:::-;3683:54:107;3703:17;199:2819:96;3684:36:107;199:2819:96;;;;;;;3684:36:107;;:::i;:::-;199:2819:96;;;3683:54:107;;:::i;:::-;199:2819:96;3612:132:107;:::o;3313:244::-;3418:17;199:2819:96;;;;;;;;;;;;;;3406:29:107;3402:85;;3503:47;3504:29;;;;:::i;3402:85::-;199:2819:96;;-1:-1:-1;;;3458:18:107;;;;;3361:103:30;;;;:::i;:::-;199:2819:96;;-1:-1:-1;;;;;199:2819:96;;;6521:23:106;;6517:79;;6650:11;;6646:70;;199:2819:96;6742:10:106;;;;;;-1:-1:-1;199:2819:96;;6887:49:106;;199:2819:96;;;;6864:6:106;;199:2819:96;;6821:18:106;;199:2819:96;;-1:-1:-1;;;;;199:2819:96;;;6821:18:106;6864:6;:::i;:::-;6887:49;199:2819:96;;6898:10:106;;;;6887:49;;;:::i;:::-;;;;3426:1:30;;1949;-1:-1:-1;;;;;;;;;;;199:2819:96;3860:283:30;6754:3:106;6790:9;6773:27;199:2819:96;6790:9:106;6783:17;6790:9;;;;;:::i;:::-;199:2819:96;6783:17:106;:::i;6773:27::-;6754:3;199:2819:96;6731:9:106;;6646:70;199:2819:96;;-1:-1:-1;;;6684:21:106;;;;;199:2819:96;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:96;;;;;;;;;;;;;;;;;;;;;;:::o;1178:370::-;;;1336:96;1312:158;1178:370;199:2819;;;;;1367:64;;;;;;;;199:2819;1367:64;;;199:2819;1367:64;;;;;;:::i;199:2819::-;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;199:2819:96;;;;:::o;:::-;;;:::o;1818:400::-;199:2819;;-1:-1:-1;;;2026:75:96;;;;-1:-1:-1;;;;;199:2819:96;;;2026:75;;;199:2819;;;;;;;;;;;;;2026:75;;199:2819;;1818:400;1971:169;;1995:107;;2026:75;199:2819;2026:75;:::i;3405:215:24:-;-1:-1:-1;;;;;199:2819:96;;;;3489:22:24;;3485:91;;-1:-1:-1;;;;;;;;;;;199:2819:96;;-1:-1:-1;;;;;;199:2819:96;;;;;;;;3975:40:24;-1:-1:-1;;3975:40:24;3405:215::o;3485:91::-;199:2819:96;;-1:-1:-1;;;3534:31:24;;3509:1;3534:31;;;199:2819:96;;;3534:31:24;2731:227:106;;2871:34;2731:227;199:2819:96;-1:-1:-1;199:2819:96;2871:18:106;199:2819:96;;;-1:-1:-1;199:2819:96;;;;;;;;;;;;;;;;;2871:34:106;199:2819:96;;-1:-1:-1;199:2819:96;2907:11:106;199:2819:96;;;-1:-1:-1;199:2819:96;;2927:16:106;199:2819:96;;;-1:-1:-1;199:2819:96;;;1884:1:98;199:2819:96;;;;;;;1884:1:98;199:2819:96;;;;;;;9478:25:68;;;:::i;2224:792:96:-;;;;;2579:34;2416:45;2357:12;199:2819;2416:45;;;:::i;:::-;2503:33;;;;;:::i;:::-;2579:34;;:::i;:::-;199:2819;;;2628:30;;;:61;;;2224:792;2628:93;;;;2224:792;2624:386;;2224:792;;;:::o;2624:386::-;199:2819;;;;2744:255;199:2819;;;;;;;;;;:::i;:::-;;;2772:213;;;199:2819;;;;2772:213;;199:2819;;;;;;2744:255;;;2772:213;2744:255;;;199:2819;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;2628:93::-;199:2819;;;2693:28;;2628:93;;:61;199:2819;;;2662:27;;2628:61;;3470:384:30;-1:-1:-1;;;;;;;;;;;1991:1:30;199:2819:96;;3670:20:30;3666:88;;1991:1;199:2819:96;;3470:384:30:o;3666:88::-;199:2819:96;;-1:-1:-1;;;3713:30:30;;;;;11948:968:106;12135:10;199:2819:96;;;;5606:15:107;199:2819:96;;;;;;11948:968:106;;;819:34:73;837:15;819:34;:::i;:::-;12135:10:106;199:2819:96;;;;5606:15:107;199:2819:96;;;;;5606:33:107;;;:::i;:::-;199:2819:96;;;;;;;;;12119:93:106;12835:74;12119:93;;;12660:30;12119:93;;:::i;:::-;837:15:73;;12222:67:106;819:34:73;837:15;819:34;:::i;:::-;12259:29:106;4803:22:107;;;:::i;12222:67:106:-;837:15:73;;12299:68:106;819:34:73;837:15;819:34;:::i;:::-;12335:31:106;5173:21:107;;;:::i;12299:68:106:-;12394:14;;12769:34;12394:14;12769:25;12394:18;:14;;:::i;:::-;:18;:::i;:::-;12726:33;12445:18;;199:2819:96;;7528:11:106;199:2819:96;;;;;;;12445:18:106;199:2819:96;12502:23:106;;199:2819:96;;12502:16:106;199:2819:96;;;;;;;12502:23:106;199:2819:96;390:70:98;;;;;:::i;:::-;12660:30:106;;;;;;:::i;:::-;12639:18;;199:2819:96;;7528:11:106;199:2819:96;;;;;;;12639:18:106;199:2819:96;12726:33:106;:::i;:::-;12700:23;;199:2819:96;;12502:16:106;199:2819:96;;;;;;;12700:23:106;199:2819:96;;;12769:18:106;199:2819:96;;;;;;;12769:25:106;199:2819:96;;;;;;;;;;;;;;;;12769:34:106;:50;199:2819:96;;;12769:50:106;:::i;:::-;199:2819:96;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;199:2819:96;;;;12135:10:106;;199:2819:96;;12835:74:106;11948:968::o;14296:213:69:-;199:2819:96;14374:24:69;;;;14370:103;;199:2819:96;14296:213:69;:::o;14370:103::-;199:2819:96;;;;14421:41:69;;;;;;14452:2;14421:41;;;199:2819:96;;;;;14421:41:69;1809:204:82;199:2819:96;1809:204:82;199:2819:96;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;7558:604:97:-;;199:2819:96;;7686:17:97;7682:83;;199:2819:96;7789:27:97;199:2819:96;7789:27:97;199:2819:96;;7789:27:97;;;;;;:::i;:::-;7860:14;;;:::i;:::-;199:2819:96;;;;;;;;;;;;;;;;7888:22:97;;;7884:77;;7975:21;-1:-1:-1;7975:84:97;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;7789:27;8082:17;;;199:2819:96;8075:24:97;:::o;7975:84::-;199:2819:96;;;8009:16:97;4622:13:107;199:2819:96;8009:16:97;:::i;:::-;199:2819:96;;;8001:24:97;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:23::-;199:2819:96;;;;8029:29:97;;8001:57;;;;7884:77;7933:17;;;7789:27;7933:17;;;199:2819:96;7926:24:97;:::o;7682:83::-;7726:28;;;;:::i;7558:604::-;;199:2819:96;;7686:17:97;7682:83;;199:2819:96;7789:27:97;199:2819:96;7789:27:97;199:2819:96;;7789:27:97;;;;;;:::i;:::-;7860:14;;;:::i;:::-;199:2819:96;;;;;;;;;;;;;;;;7888:22:97;;;7884:77;;7975:21;-1:-1:-1;7975:84:97;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7975:84::-;199:2819:96;;;8009:16:97;4994:12:107;199:2819:96;8009:16:97;:::i;:::-;199:2819:96;;;8001:24:97;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:29::-;;8001:57;;;;7682:83;7726:28;;;;:::i;7558:604::-;;199:2819:96;;7686:17:97;7682:83;;199:2819:96;7789:27:97;199:2819:96;7789:27:97;199:2819:96;;7789:27:97;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;199:2819:96;;;;;;;;;;;;;;;;7888:22:97;;;7884:77;;7975:21;-1:-1:-1;7975:84:97;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;199:2819:96;8075:24:97;:::o;7975:84::-;199:2819:96;;;8009:16:97;199:2819:96;;8009:16:97;:::i;:::-;199:2819:96;;;8001:24:97;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:29::-;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;199:2819:96;7926:24:97;:::o;7682:83::-;7726:28;;;;:::i;4148:103:23:-;966:10:28;-1:-1:-1;199:2819:96;;;;;;;;;675:39:107;;199:2819:96;;3901:31:23;199:2819:96;;4468:23:23;4464:108;;4148:103;:::o;:::-;966:10:28;-1:-1:-1;199:2819:96;;;;;;;;;966:38:107;;199:2819:96;;3901:31:23;199:2819:96;4148:103:23;966:10:28;-1:-1:-1;199:2819:96;;;;;;;;;821:37:107;;199:2819:96;;3901:31:23;199:2819:96;4148:103:23;-1:-1:-1;199:2819:96;;;-1:-1:-1;;;;;;;;;;;199:2819:96;;;;;;;;966:10:28;199:2819:96;;;;;;;;;3901:31:23;199:2819:96;7270:387:23;-1:-1:-1;;;;;199:2819:96;;1398:1:82;199:2819:96;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;199:2819:96;;;;1398:1:82;199:2819:96;;;;;;;;;;;-1:-1:-1;;;;;199:2819:96;;;;;;;;;;-1:-1:-1;;199:2819:96;7509:4:23;199:2819:96;;;966:10:28;;-1:-1:-1;;;;;199:2819:96;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;1398:1:82;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;199:2819:96;;-1:-1:-1;199:2819:96;;;;;;;;;675:39:107;;-1:-1:-1;;;;;;;;;;;2887:71:23;199:2819:96;;3901:31:23;199:2819:96;;;;-1:-1:-1;199:2819:96;;;;;;;;;;;-1:-1:-1;;;;;199:2819:96;;;;;;;;;;-1:-1:-1;;199:2819:96;7509:4:23;199:2819:96;;;966:10:28;;-1:-1:-1;;;;;199:2819:96;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;199:2819:96;;-1:-1:-1;199:2819:96;;;;;;;;;821:37:107;;-1:-1:-1;;;;;;;;;;;2887:71:23;199:2819:96;;3901:31:23;199:2819:96;7270:387:23;-1:-1:-1;;;;;199:2819:96;;-1:-1:-1;199:2819:96;;;;;;;;;966:38:107;;-1:-1:-1;;;;;;;;;;;2887:71:23;199:2819:96;;3901:31:23;199:2819:96;7270:387:23;-1:-1:-1;;;;;199:2819:96;;-1:-1:-1;199:2819:96;;;;;;;;;1109:35:107;;-1:-1:-1;;;;;;;;;;;2887:71:23;199:2819:96;;3901:31:23;199:2819:96;7270:387:23;-1:-1:-1;199:2819:96;;;-1:-1:-1;;;;;;;;;;;199:2819:96;;;;;;;;-1:-1:-1;;;;;199:2819:96;;;;;;;;;;;;3901:31:23;199:2819:96;7892:388:23;-1:-1:-1;199:2819:96;;;-1:-1:-1;;;;;;;;;;;199:2819:96;;;;;;;;-1:-1:-1;;;;;199:2819:96;;;;;;;;;;;;;;;;-1:-1:-1;199:2819:96;;;;;;;;;;;-1:-1:-1;;;;;199:2819:96;;;;;;;;;;-1:-1:-1;;199:2819:96;;;966:10:28;;-1:-1:-1;;;;;199:2819:96;;8155:40:23;-1:-1:-1;;8155:40:23;199:2819:96;8209:11:23;:::o;1670:188:55:-;199:2819:96;;-1:-1:-1;;;1797:53:55;;;;-1:-1:-1;;;;;199:2819:96;;;1797:53:55;;;199:2819:96;;;;;;;;;;;;;;;;;1797:53:55;;;199:2819:96;;;;;;;-1:-1:-1;;;;;199:2819:96;;;;;1797:53:55;199:2819:96;;;1797:53:55;:::i;199:2819:96:-;9219:12:97;199:2819:96;;;;;;9219:12:97;-1:-1:-1;199:2819:96;-1:-1:-1;;;;;;;;;;;199:2819:96;;-1:-1:-1;199:2819:96;:::o;:::-;9219:12:97;199:2819:96;;;;;;9219:12:97;-1:-1:-1;199:2819:96;-1:-1:-1;;;;;;;;;;;199:2819:96;;-1:-1:-1;199:2819:96;:::o;:::-;;;;;;;;-1:-1:-1;199:2819:96;;-1:-1:-1;199:2819:96;;;-1:-1:-1;199:2819:96;:::o;:::-;6360:12:97;199:2819:96;-1:-1:-1;;;199:2819:96;;;;;;;;;6360:12:97;199:2819:96;;;;;;6360:12:97;-1:-1:-1;199:2819:96;-1:-1:-1;;;;;;;;;;;199:2819:96;;:::o;:::-;6360:12:97;199:2819:96;-1:-1:-1;;;199:2819:96;;;;;;;;;6360:12:97;199:2819:96;;;;;;6360:12:97;-1:-1:-1;199:2819:96;-1:-1:-1;;;;;;;;;;;199:2819:96;;:::o;:::-;;;;;-1:-1:-1;;;199:2819:96;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6246:584:97;;;;6360:12;199:2819:96;;;6360:24:97;;6356:75;;6246:584;6474:30;;;:::i;:::-;199:2819:96;;;;;;6578:12:97;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:97;;;-1:-1:-1;;;199:2819:96;;;;;;;;;-1:-1:-1;199:2819:96;;;-1:-1:-1;199:2819:96;;;;;;6798:25:97;199:2819:96;6246:584:97:o;6600:188::-;8310:38:71;;-1:-1:-1;;;;;199:2819:96;;-1:-1:-1;8310:38:71;:::i;:::-;6753:24:97;;;;;:::i;:::-;6798:25;6246:584;:::o;6604:24::-;199:2819:96;;;;;;6614:14:97;;-1:-1:-1;6604:24:97;;;6356:75;-1:-1:-1;;;199:2819:96;;;;;;;;;;;;;;;;-1:-1:-1;199:2819:96;;;;-1:-1:-1;;;;;;;;;;;199:2819:96;;6356:75:97;;;6246:584;;;;6360:12;199:2819:96;;;6360:24:97;;6356:75;;6246:584;6474:30;;;:::i;:::-;199:2819:96;;;;;;6578:12:97;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:97;;;-1:-1:-1;;;199:2819:96;;;;;;;;;-1:-1:-1;199:2819:96;;;-1:-1:-1;199:2819:96;;;;;;6798:25:97;199:2819:96;6246:584:97:o;6600:188::-;8310:38:71;;-1:-1:-1;;;;;199:2819:96;;-1:-1:-1;8310:38:71;:::i;:::-;6753:24:97;;;;;:::i;6604:::-;199:2819:96;;;;;;6614:14:97;;-1:-1:-1;6604:24:97;;;6356:75;-1:-1:-1;;;199:2819:96;;;;;;;;;;;;;;;;-1:-1:-1;199:2819:96;;;;-1:-1:-1;;;;;;;;;;;199:2819:96;;6356:75:97;;;6246:584;;;;;6360:12;;;199:2819:96;;;6360:24:97;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;199:2819:96;;;;;;6578:12:97;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:97;;;-1:-1:-1;;;;;199:2819:96;;;;;;;6644:21:97;;;:29;:21;;:::i;6600:188::-;6753:24;;199:2819:96;;8310:38:71;;-1:-1:-1;;;;;199:2819:96;;;;;8310:38:71;:::i;:::-;6753:24:97;;;:::i;6604:::-;199:2819:96;;;;;;6614:14:97;;-1:-1:-1;6604:24:97;;;6356:75;-1:-1:-1;;;199:2819:96;;;;;;6360:12:97;199:2819:96;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:97;;;199:2819:96;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;8406:869:97:-;1113:13:96;199:2819;8620:15:97;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;:::i;:::-;9014:8;;9010:62;;199:2819:96;9130:48:97;9170:7;;;:::i;:::-;1113:13:96;13267:109:97;;-1:-1:-1;;;;;;;;;;;13267:109:97;13089:293;;9130:48;199:2819:96;:::i;:::-;;9252:15:97;9259:7;199:2819:96;9219:31:97;199:2819:96;9232:17:97;199:2819:96;;;;;;;;9232:17:97;;199:2819:96;-1:-1:-1;;;;;199:2819:96;;;;9219:31:97;:::i;:::-;199:2819:96;;;;;;;;;9259:7:97;;:::i;:::-;199:2819:96;;;;9252:15:97;9176:1;;9188:80;;8406:869::o;9010:62::-;9038:23;8578:11;9038:23;8578:11;9038:23;8578:11;9038:23;8578:11;9038:23;:::o;8674:241::-;8721:14;;;;;:::i;:::-;199:2819:96;;;;;;;1113:13;8578:11:97;13267:109;-1:-1:-1;;;;;;;;;;;13267:109:97;;199:2819:96;8939:60:97;;13267:109;199:2819:96;;;;;;;8753:55:97;199:2819:96;;;8828:10:97;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;8406:869;514:12:96;199:2819;8620:15:97;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;:::i;:::-;9014:8;;9010:62;;199:2819:96;9130:48:97;9170:7;;;:::i;:::-;514:12:96;13267:109:97;;-1:-1:-1;;;;;;;;;;;13267:109:97;13089:293;;199:2819:96;;9252:15:97;9259:7;199:2819:96;9219:31:97;199:2819:96;9232:17:97;199:2819:96;;;;;;;;9219:31:97;:::i;8674:241::-;8721:14;;;;;:::i;:::-;199:2819:96;;;;;;;514:12;8578:11:97;13267:109;-1:-1:-1;;;;;;;;;;;13267:109:97;;199:2819:96;8939:60:97;;13267:109;199:2819:96;;;;;;;8753:55:97;199:2819:96;;;8828:10:97;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;8406:869;;;199:2819:96;;8620:15:97;8578:11;8645:18;8678:7;8684:1;8678:7;;8674:241;;8406:869;8939:60;;;;;:::i;:::-;9014:8;;;9010:62;;9252:15;9259:7;199:2819:96;9219:31:97;199:2819:96;9130:48:97;9170:7;;;:::i;:::-;9130:48;13267:109;;;;;;13089:293;;199:2819:96;;9176:1:97;199:2819:96;9232:17:97;199:2819:96;;;;;;;;9232:17:97;;199:2819:96;-1:-1:-1;;;;;199:2819:96;;;;9219:12:97;;:31;:::i;9010:62::-;8578:11;;-1:-1:-1;8578:11:97;;-1:-1:-1;8578:11:97;;;;9038:23::o;8674:241::-;8721:14;;;;;:::i;:::-;199:2819:96;;;;;;;8939:60:97;13267:109;;8578:11;13267:109;8753:55;8759:49;13267:109;;8578:11;13267:109;;199:2819:96;;;;;;8753:55:97;199:2819:96;;;8753:55:97;13267:109;;;8828:10;8749:156;8674:241;;8749:156;8883:7;;;;;;:::i;:::-;8749:156;8674:241;;199:2819:96;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;:::o;525:595:93:-;;-1:-1:-1;199:2819:96;;;;;716:88:93;;;;;199:2819:96;716:88:93;;;;;;;;;783:4;716:88;;;199:2819:96;;;;;;;;;;;:::i;716:88:93:-;698:107;;;;;;;:::i;:::-;199:2819:96;;857:45:93;;;;;;;;199:2819:96;;;;;857:45:93;;;199:2819:96;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;199:2819:96;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;199:2819:96;;;;;;;;;;916:8:93;912:175;;1096:17;525:595;:::o;912:175::-;199:2819:96;;;944:22:93;;;940:36;;990:87;;2658:162:24;-1:-1:-1;;;;;;;;;;;199:2819:96;-1:-1:-1;;;;;199:2819:96;966:10:28;2717:23:24;2713:101;;2658:162::o;2713:101::-;199:2819:96;;-1:-1:-1;;;2763:40:24;;966:10:28;2763:40:24;;;199:2819:96;;;2763:40:24;199:2819:96;;;;;;;:::o;4996:4226:68:-;;199:2819:96;;;;-1:-1:-1;;199:2819:96;4996:4226:68;5584:131;;;;;;;;;;;;5796:10;;5792:368;;6270:20;;;;6266:143;;6695:300;;;;940:4:59;-1:-1:-1;940:4:59;7214:31:68;;7259:375;;;8094:1;199:2819:96;;8075:1:68;199:2819:96;8074:21:68;199:2819:96;;;940:4:59;;199:2819:96;;;;940:4:59;;199:2819:96;;;;940:4:59;;199:2819:96;;;;940:4:59;;199:2819:96;;;;940:4:59;;199:2819:96;;;;940:4:59;;199:2819:96;7259:375:68;;;;-1:-1:-1;7259:375:68;;;6695:300;;;;;;199:2819:96;6695:300:68;;7259:375;7700:21;199:2819:96;4996:4226:68;:::o;6266:143::-;6330:16;;3066:5;199:2819:96;940:4:59;3060:42:68;6322:71;:::i;5792:368::-;6126:19;;;;;;;:::i;1271:160:55:-;199:2819:96;;-1:-1:-1;;;1380:43:55;;;;-1:-1:-1;;;;;199:2819:96;;;1380:43:55;;;199:2819:96;;;;;;;;;1380:43:55;;;;;;199:2819:96;1380:43:55;:::i;:::-;;:::i;12922:460:106:-;;13024:14;;:::i;:::-;13015:23;;;13011:75;;-1:-1:-1;199:2819:96;;;13100:20:106;199:2819:96;;;;;;;;13128:10:106;199:2819:96;;;;;;;;;;13096:93:106;;13208:32;13128:10;13208:32;;:::i;:::-;13255:11;;;13251:68;;-1:-1:-1;199:2819:96;;;13100:20:106;199:2819:96;;;;;;;;13128:10:106;199:2819:96;;;;;;;;;-1:-1:-1;;199:2819:96;13371:4:106;199:2819:96;;;12922:460:106:o;13251:68::-;199:2819:96;;-1:-1:-1;;;13289:19:106;;;;;13096:93;199:2819:96;;-1:-1:-1;;;13162:16:106;;;;;13011:75;199:2819:96;;-1:-1:-1;;;13061:14:106;;;;;10580:184:97;5173:12:107;199:2819:96;10446:8:71;;;:63;-1:-1:-1;10446:63:71;-1:-1:-1;;;;;199:2819:96;;10726:7:97;199:2819:96;;10736:12:97;199:2819:96;;;;;;10736:12:97;-1:-1:-1;199:2819:96;-1:-1:-1;;;;;;;;;;;199:2819:96;;10580:184:97;:::o;10726:31::-;;-1:-1:-1;10580:184:97;:::o;10446:63:71:-;199:2819:96;;;;;;;;5173:12:107;-1:-1:-1;13267:109:97;;;199:2819:96;;;10446:63:71;;10580:184:97;4803:13:107;199:2819:96;10446:8:71;;;:63;-1:-1:-1;10446:63:71;-1:-1:-1;;;;;199:2819:96;;10726:7:97;199:2819:96;;10736:12:97;199:2819:96;;;;;;10736:12:97;-1:-1:-1;199:2819:96;-1:-1:-1;;;;;;;;;;;199:2819:96;;10580:184:97;:::o;10446:63:71:-;199:2819:96;;;;;;;;4803:13:107;-1:-1:-1;13267:109:97;;;199:2819:96;;;10446:63:71;;10580:184:97;199:2819:96;;10446:8:71;;;:63;-1:-1:-1;10446:63:71;-1:-1:-1;;;;;199:2819:96;;10726:7:97;199:2819:96;;10736:12:97;:17;:12;;:17;:::i;10446:63:71:-;199:2819:96;;;;;;;;;;13267:109:97;-1:-1:-1;13267:109:97;;-1:-1:-1;13267:109:97;;;199:2819:96;;;10446:63:71;;1662:280:98;;;1884:1;199:2819:96;;;;;;;1884:1:98;199:2819:96;;;;;;;9478:25:68;;;:::i;6999:207:97:-;4622:13:107;199:2819:96;9737:15:71;-1:-1:-1;9762:18:71;9795:7;9801:1;9795:7;;9791:234;;6999:207:97;10049:53:71;;;;:::i;:::-;10120:8;;;:63;-1:-1:-1;10120:63:71;-1:-1:-1;;;;;199:2819:96;;7168:7:97;199:2819:96;;7178:17:97;199:2819:96;7178:17:97;;:::i;10120:63:71:-;10135:41;10168:7;10135:48;10168:7;;:::i;10135:41::-;199:2819:96;;;;;10135:48:71;10120:63;;9791:234;9838:14;;;;;:::i;:::-;199:2819:96;;;;;;;10049:53:71;13267:109:97;4622:13:107;-1:-1:-1;13267:109:97;199:2819:96;13267:109:97;;-1:-1:-1;;;;;;;;;;;13267:109:97;199:2819:96;;;;;9870:48:71;9866:149;199:2819:96;;;9938:10:71;9866:149;9791:234;;9866:149;9993:7;;;;;;:::i;:::-;9866:149;9791:234;;6999:207:97;4994:12:107;199:2819:96;9737:15:71;-1:-1:-1;9762:18:71;9795:7;9801:1;9795:7;;9791:234;;6999:207:97;10049:53:71;;;;:::i;:::-;10120:8;;;:63;-1:-1:-1;10120:63:71;-1:-1:-1;;;;;199:2819:96;;7168:7:97;199:2819:96;;7178:17:97;199:2819:96;7178:17:97;;:::i;10120:63:71:-;10135:41;10168:7;10135:48;10168:7;;:::i;10135:48::-;10120:63;;9791:234;9838:14;;;;;:::i;:::-;199:2819:96;;;;;;;10049:53:71;13267:109:97;4994:12:107;-1:-1:-1;13267:109:97;199:2819:96;13267:109:97;;-1:-1:-1;;;;;;;;;;;13267:109:97;199:2819:96;;;;;9870:48:71;9866:149;199:2819:96;;;9938:10:71;9866:149;9791:234;;9866:149;9993:7;;;;;;:::i;:::-;9866:149;9791:234;;6999:207:97;;199:2819:96;;9737:15:71;-1:-1:-1;9762:18:71;9795:7;9801:1;9795:7;;9791:234;;6999:207:97;10049:53:71;;;;;:::i;:::-;10120:8;;;:63;-1:-1:-1;10120:63:71;;-1:-1:-1;;;;;199:2819:96;;7168:7:97;199:2819:96;;;7178:12:97;;:17;:12;;:17;:::i;10120:63:71:-;10135:41;10168:7;10135:48;10168:7;;:::i;:::-;10135:41;13267:109:97;;;;;;13089:293;;10135:48:71;10120:63;;;9791:234;9838:14;;;;;:::i;:::-;199:2819:96;;;;;;;10049:53:71;13267:109:97;;-1:-1:-1;13267:109:97;199:2819:96;13267:109:97;;;-1:-1:-1;13267:109:97;;199:2819:96;;;;;9870:48:71;9866:149;199:2819:96;;;9938:10:71;9866:149;9791:234;;9866:149;9993:7;;;;;;:::i;:::-;9866:149;9791:234;;199:2819:96;;;;;;;:::i;:::-;-1:-1:-1;199:2819:96;;;;;;;:::o;11486:272:97:-;199:2819:96;;:::i;:::-;;;;:::i;:::-;;4622:13:107;199:2819:96;;;;;;;;4622:13:107;-1:-1:-1;199:2819:96;-1:-1:-1;;;;;;;;;;;199:2819:96;;:::i;:::-;;;;;;;;;;;;11731:17:97;;199:2819:96;;11718:12:97;199:2819:96;;;;;;11718:12:97;-1:-1:-1;199:2819:96;-1:-1:-1;;;;;;;;;;;199:2819:96;;;;;;;;:::i;:::-;;;;11672:79:97;;199:2819:96;11486:272:97;:::o;:::-;199:2819:96;;:::i;:::-;;;;:::i;:::-;;4994:12:107;199:2819:96;;;;;;;;4994:12:107;-1:-1:-1;199:2819:96;-1:-1:-1;;;;;;;;;;;199:2819:96;;:::i;:::-;;;;;;;;;;;;11731:17:97;;199:2819:96;;11718:12:97;199:2819:96;;;;;;11718:12:97;-1:-1:-1;199:2819:96;-1:-1:-1;;;;;;;;;;;199:2819:96;;;;;;;;:::i;11486:272:97:-;;199:2819:96;11452:22:71;11718:31:97;11486:272;199:2819:96;;:::i;:::-;;;;:::i;:::-;;11452:22:71;;:::i;:::-;199:2819:96;;:::i;:::-;;11718:12:97;199:2819:96;;;;;11731:17:97;199:2819:96;;;;;11731:17:97;;199:2819:96;;11718:12:97;;:31;:::i;:::-;199:2819:96;;;;;;;;;:::i;:::-;;;;;;11731:17:97;11672:79;;199:2819:96;11486:272:97;:::o;7738:720:55:-;;-1:-1:-1;7875:421:55;7738:720;7875:421;;;;;;;;;;;;-1:-1:-1;7875:421:55;;8310:15;;-1:-1:-1;;;;;;199:2819:96;;8328:26:55;:31;8310:68;8306:146;;7738:720;:::o;8306:146::-;199:2819:96;;-1:-1:-1;;;8401:40:55;;-1:-1:-1;;;;;199:2819:96;;;8401:40:55;;;199:2819:96;;;8401:40:55;8310:68;8377:1;8362:16;;8310:68;;1258:280:98;;;199:2819:96;;;;;;;;;;;;;;;;9478:25:68;;;;;:::i;:::-;9552;;;;;;:29;;199:2819:96;;;;;;;1258:280:98;:::o;10695:389:71:-;5173:12:107;199:2819:96;10871:8:71;;;10895:20;10833:17;10895:20;10833:17;10895:20;10833:17;10895:20;:::o;10867:211::-;199:2819:96;;;;;;;;5173:12:107;10833:17:71;13267:109:97;;;199:2819:96;11014:1:71;;199:2819:96;;;;;;;11030:37:71:o;10695:389::-;4803:13:107;199:2819:96;10871:8:71;;;10895:20;10833:17;10895:20;10833:17;10895:20;10833:17;10895:20;:::o;10867:211::-;199:2819:96;;;;;;;;4803:13:107;10833:17:71;13267:109:97;;;199:2819:96;11014:1:71;;199:2819:96;;;;;;;11030:37:71:o;10695:389::-;199:2819:96;;10871:8:71;;;10895:20;;10833:17;10895:20;10833:17;10895:20;10833:17;10895:20;:::o;10867:211::-;199:2819:96;;;;;;;;;;10833:17:71;13267:109:97;;10833:17:71;13267:109:97;;;199:2819:96;11014:1:71;199:2819:96;;;;;;;11030:37:71;:::o;18080:5181:68:-;18246:1;18241:6;;;18237:53;;18246:1;19217:14;-1:-1:-1;;;19278:16:68;;;19274:92;;18080:5181;22827:18;22717;22607;22498;22387;22278;23216:28;19383:15;19898:6;19383:15;-1:-1:-1;;;23237:6:68;19383:15;;;19379:90;;18080:5181;19493:7;19486:15;;;19482:90;;18080:5181;19596:7;19589:15;;;19585:89;;18080:5181;19698:6;19691:14;;;19687:87;;18080:5181;19798:6;19791:14;;;19787:87;;18080:5181;19891:14;;19887:61;;18080:5181;20374:1;199:2819:96;18246:1:68;199:2819:96;22284:6:68;;;;:::i;:::-;199:2819:96;;;;;22278:18:68;22393:6;;;;:::i;22387:18::-;22504:6;;;;:::i;22498:18::-;22613:6;;;;:::i;22607:18::-;22723:6;;;;:::i;22717:18::-;22833:6;;;;:::i;22827:18::-;23237:6;;;:::i;:::-;23232:11;;;199:2819:96;23216:28:68;940:4:59;;18080:5181:68;:::o;19887:61::-;18246:1;199:2819:96;19887:61:68;;19787:87;199:2819:96;;;;;19787:87:68;;;19687;199:2819:96;;;;;19687:87:68;;;19585:89;199:2819:96;;;;;19585:89:68;;;19482:90;199:2819:96;;;;;19482:90:68;;;19379;199:2819:96;;;;;19379:90:68;;;19274:92;-1:-1:-1;;;;199:2819:96;-1:-1:-1;199:2819:96;;;;19274:92:68;;12497:447:97;;12694:10;;;;;;12926:11;;12497:447;:::o;12687:230::-;3721:5:68;;;;;199:2819:96;;3731:5:68;;;199:2819:96;;;;;;;;;1113:13;-1:-1:-1;13267:109:97;199:2819:96;13267:109:97;;-1:-1:-1;;;;;;;;;;;13267:109:97;199:2819:96;;;;;-1:-1:-1;12771:136:97;199:2819:96;;;12830:10:97;;12771:136;;12687:230;;;12771:136;199:2819:96;;;;;;;;;;;12771:136:97;;;12497:447;;12694:10;;;;;;12926:11;;12497:447;:::o;12687:230::-;3721:5:68;;;;;199:2819:96;;3731:5:68;;;199:2819:96;;;;;;;;;514:12;-1:-1:-1;13267:109:97;199:2819:96;13267:109:97;;-1:-1:-1;;;;;;;;;;;13267:109:97;199:2819:96;;;;;-1:-1:-1;12771:136:97;199:2819:96;;;12830:10:97;;12771:136;;12687:230;;;12771:136;199:2819:96;;;;;;;;;;;12771:136:97;;;12497:447;;12694:10;;;;;;12926:11;;12497:447;:::o;12687:230::-;3721:5:68;;;;;199:2819:96;;3731:5:68;;;199:2819:96;;;;;;;;;4622:13:107;-1:-1:-1;13267:109:97;199:2819:96;13267:109:97;;-1:-1:-1;;;;;;;;;;;13267:109:97;199:2819:96;;;;;-1:-1:-1;12771:136:97;199:2819:96;;;12830:10:97;;12771:136;;12687:230;;;12771:136;199:2819:96;;;;;;;;;;;12771:136:97;;;12497:447;;12694:10;;;;;;12926:11;;12497:447;:::o;12687:230::-;3721:5:68;;;;;199:2819:96;;3731:5:68;;;199:2819:96;;;;;;;;;4994:12:107;-1:-1:-1;13267:109:97;199:2819:96;13267:109:97;;-1:-1:-1;;;;;;;;;;;13267:109:97;199:2819:96;;;;;-1:-1:-1;12771:136:97;199:2819:96;;;12830:10:97;;12771:136;;12687:230;;;12771:136;199:2819:96;;;;;;;;;;;12771:136:97;;;12497:447;;;12694:10;;;;;;12926:11;;;12497:447;:::o;12687:230::-;3721:5:68;;;;;;199:2819:96;;3731:5:68;;;199:2819:96;;;;;;;;;13267:109:97;-1:-1:-1;13267:109:97;199:2819:96;13267:109:97;;;-1:-1:-1;13267:109:97;;199:2819:96;;;;;-1:-1:-1;12771:136:97;199:2819:96;;;12830:10:97;;12771:136;;12687:230;;;;12771:136;199:2819:96;;;;;;;;;;;12771:136:97;;;7084:141:26;199:2819:96;-1:-1:-1;;;;;;;;;;;199:2819:96;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;199:2819:96;;-1:-1:-1;;;7191:17:26;;;;;1776:194:59;1829:135;;;;;;;;199:2819:96;5173:12:107;199:2819:96;;-1:-1:-1;;;199:2819:96;;;;;;;;;5173:12:107;199:2819:96;;;;;;5173:12:107;-1:-1:-1;199:2819:96;;;;;;;;;;-1:-1:-1;;199:2819:96;;;;;;;-1:-1:-1;;;;;;;;;;;199:2819:96;;;;:::o;:::-;4803:13:107;199:2819:96;;-1:-1:-1;;;199:2819:96;;;;;;;;;4803:13:107;199:2819:96;;;;;;4803:13:107;-1:-1:-1;199:2819:96;;;;;;;;;;-1:-1:-1;;199:2819:96;;;;;;;-1:-1:-1;;;;;;;;;;;199:2819:96;;;;:::o;:::-;;;-1:-1:-1;;;199:2819:96;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;199:2819:96;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11657:922:71;5173:12:107;199:2819:96;11657:922:71;;;11864:7;;;;11936;11916:28;11936:7;;:::i;11916:28::-;199:2819:96;;;;;;;;;;;;12103:13:71;;;12099:89;;12251:14;;;;;12285:19;;;199:2819:96;;;;;;;;;;;;;;;;;12285:19:71;199:2819:96;;12423:25:71;;:::o;12247:163::-;199:2819:96;;12343:52:71;199:2819:96;12353:41:71;199:2819:96;;:::i;:::-;;;;;;;;12353:41:71;-1:-1:-1;;;;;199:2819:96;;12353:41:71;;;199:2819:96;12343:52:71;:::i;:::-;12247:163;;12099:89;199:2819:96;;-1:-1:-1;;;12143:30:71;;;;;11860:713;199:2819:96;12479:52:71;199:2819:96;12489:41:71;199:2819:96;;:::i;12489:41:71:-;-1:-1:-1;;;;;199:2819:96;;12489:41:71;;;199:2819:96;12343:52:71;:::i;12479:::-;11870:1;12545:17;;:::o;11657:922::-;4803:13:107;199:2819:96;11657:922:71;;;11864:7;;;;11936;11916:28;11936:7;;:::i;11916:28::-;199:2819:96;;;;;;;;;;;;12103:13:71;;;12099:89;;12251:14;;;;;12285:19;;;199:2819:96;;;;;;;;;;;;;;;;;12247:163:71;199:2819:96;;12343:52:71;199:2819:96;12353:41:71;199:2819:96;;:::i;12353:41:71:-;-1:-1:-1;;;;;199:2819:96;;12353:41:71;;;199:2819:96;12343:52:71;:::i;11860:713::-;199:2819:96;12479:52:71;199:2819:96;12489:41:71;199:2819:96;;:::i;12489:41:71:-;-1:-1:-1;;;;;199:2819:96;;12489:41:71;;;199:2819:96;12343:52:71;:::i;11657:922::-;199:2819:96;;11657:922:71;;;11864:7;;;;11936;11916:28;11936:7;;:::i;:::-;11916:28;13267:109:97;;;;;;13089:293;;11916:28:71;199:2819:96;;;;;;;;;;;;12103:13:71;;;12099:89;;12251:14;;;;;12285:19;;;;199:2819:96;;;;;;;;;;;;;;;;;12247:163:71;199:2819:96;;;12343:52:71;199:2819:96;12353:41:71;199:2819:96;;:::i;:::-;;;;;;;;12353:41:71;-1:-1:-1;;;;;199:2819:96;;12353:41:71;;;199:2819:96;12343:52:71;:::i;11860:713::-;199:2819:96;;12479:52:71;199:2819:96;12489:41:71;199:2819:96;;:::i;12489:41:71:-;-1:-1:-1;;;;;199:2819:96;;12489:41:71;;;199:2819:96;12343:52:71;:::i","linkReferences":{},"immutableReferences":{"60067":[{"start":2017,"length":32},{"start":2605,"length":32}],"64360":[{"start":4184,"length":32},{"start":4912,"length":32},{"start":9124,"length":32}],"70707":[{"start":4988,"length":32},{"start":6345,"length":32}],"70710":[{"start":6706,"length":32},{"start":7906,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","DELEGATOR_FACTORY()":"6da3e06d","DEPOSITOR_WHITELIST_ROLE()":"1b66c9e1","DEPOSIT_LIMIT_SET_ROLE()":"a21a1df9","DEPOSIT_WHITELIST_SET_ROLE()":"db388715","FACTORY()":"2dd31000","IS_DEPOSIT_LIMIT_SET_ROLE()":"1415519b","SLASHER_FACTORY()":"87df0788","activeBalanceOf(address)":"59f769a9","activeBalanceOfAt(address,uint48,bytes)":"efb559d6","activeBalanceOfHints(address,address,uint48)":"f9e1bf6c","activeShares()":"bfefcd7b","activeSharesAt(uint48,bytes)":"50f22068","activeSharesHint(address,uint48)":"8326056f","activeSharesHintInternal(uint48)":"55a2c672","activeSharesOf(address)":"9d66201b","activeSharesOfAt(address,uint48,bytes)":"2d73c69c","activeSharesOfHint(address,address,uint48)":"de499716","activeSharesOfHintInternal(address,uint48)":"eb556238","activeStake()":"bd49c35f","activeStakeAt(uint48,bytes)":"810da75d","activeStakeHint(address,uint48)":"64b03fdc","activeStakeHintInternal(uint48)":"67567add","burner()":"27810b6e","claim(address,uint256)":"aad3ec96","claimBatch(address,uint256[])":"7c04c80a","collateral()":"d8dfeb45","currentEpoch()":"76671808","currentEpochStart()":"61a8c8c4","delegator()":"ce9b7930","deposit(address,uint256)":"47e7ef24","depositLimit()":"ecf70858","depositWhitelist()":"48d3b775","epochAt(uint48)":"7953b33b","epochDuration()":"4ff0876a","epochDurationInit()":"46361671","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(uint64,address,bytes)":"57ec83cc","isDelegatorInitialized()":"50861adc","isDepositLimit()":"a1b12202","isDepositorWhitelisted(address)":"794b15b7","isInitialized()":"392e53cd","isSlasherInitialized()":"6ec1e3f8","isWithdrawalsClaimed(uint256,address)":"a5d03223","migrate(uint64,bytes)":"2abe3048","nextEpochStart()":"73790ab3","onSlash(uint256,uint48)":"7278e31c","owner()":"8da5cb5b","previousEpochStart()":"281f5752","redeem(address,uint256)":"1e9a6950","renounceOwnership()":"715018a6","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setDelegator(address)":"83cd9cc3","setDepositLimit(uint256)":"bdc8144b","setDepositWhitelist(bool)":"4105a7dd","setDepositorWhitelistStatus(address,bool)":"a2861466","setIsDepositLimit(bool)":"5346e34f","setSlasher(address)":"aabc2496","slashableBalanceOf(address)":"c31e8dd7","slasher()":"b1344271","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","totalStake()":"8b0e9f3f","transferOwnership(address)":"f2fde38b","version()":"54fd4d50","withdraw(address,uint256)":"f3fef3a3","withdrawalShares(uint256)":"afba70ad","withdrawalSharesOf(uint256,address)":"a3b54172","withdrawals(uint256)":"5cc07076","withdrawalsOf(uint256,address)":"f5e7ee0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyClaimed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DepositLimitReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExternalCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientDeposit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientRedemption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientWithdrawal\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidClaimer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLengthEpochs\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOnBehalfOf\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRecipient\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoles\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoPreviousEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotFactory\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhitelistedDepositor\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchRedeem\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchWithdraw\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Claim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ClaimBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"name\":\"OnSlash\",\"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\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"SetDelegator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"SetDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositWhitelist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositorWhitelistStatus\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetIsDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"}],\"name\":\"SetSlasher\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DELEGATOR_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSITOR_WHITELIST_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_WHITELIST_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"activeBalanceOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeBalanceOfHints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeSharesHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeSharesHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeSharesOfHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeSharesOfHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeStakeHint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"activeStakeHintInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"hint\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"burner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"}],\"name\":\"claimBatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"depositedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositWhitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"epochAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDurationInit\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"initialVersion\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDelegatorInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDepositLimit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isDepositorWhitelisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSlasherInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isWithdrawalsClaimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"onSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"previousEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"withdrawnAssets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator_\",\"type\":\"address\"}],\"name\":\"setDelegator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"setDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositorWhitelistStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setIsDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher_\",\"type\":\"address\"}],\"name\":\"setSlasher\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"slashableBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawalShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"Claim(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epoch\":\"epoch the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"ClaimBatch(address,address,uint256[],uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epochs\":\"epochs the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"Deposit(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral deposited\",\"depositor\":\"account that made the deposit\",\"onBehalfOf\":\"account the deposit was made on behalf of\",\"shares\":\"amount of the active shares minted\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(uint256,uint48,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to slash\",\"captureTimestamp\":\"time point when the stake was captured\",\"slashedAmount\":\"real amount of the collateral slashed\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetDelegator(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"delegator\":\"vault's delegator to delegate the stake to networks and operators\"}},\"SetDepositLimit(uint256)\":{\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"SetDepositWhitelist(bool)\":{\"params\":{\"status\":\"if enabled deposit whitelist\"}},\"SetDepositorWhitelistStatus(address,bool)\":{\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisted the account\"}},\"SetIsDepositLimit(bool)\":{\"params\":{\"status\":\"if enabled deposit limit\"}},\"SetSlasher(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"slasher\":\"vault's slasher to provide a slashing mechanism to networks\"}},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral withdrawn\",\"burnedShares\":\"amount of the active shares burned\",\"claimer\":\"account that needs to claim the withdrawal\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawer\":\"account that made the withdrawal\"}}},\"kind\":\"dev\",\"methods\":{\"activeBalanceOf(address)\":{\"params\":{\"account\":\"account to get the active balance for\"},\"returns\":{\"_0\":\"active balance for the account\"}},\"activeBalanceOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the active balance for\",\"hints\":\"hints for checkpoints' indexes\",\"timestamp\":\"time point to get the active balance for the account at\"},\"returns\":{\"_0\":\"active balance for the account at the timestamp\"}},\"activeShares()\":{\"returns\":{\"_0\":\"total number of active shares\"}},\"activeSharesAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total number of active shares at\"},\"returns\":{\"_0\":\"total number of active shares at the timestamp\"}},\"activeSharesOf(address)\":{\"params\":{\"account\":\"account to get the number of active shares for\"},\"returns\":{\"_0\":\"number of active shares for the account\"}},\"activeSharesOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the number of active shares for\",\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the number of active shares for the account at\"},\"returns\":{\"_0\":\"number of active shares for the account at the timestamp\"}},\"activeStake()\":{\"returns\":{\"_0\":\"total amount of active stake\"}},\"activeStakeAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total active stake at\"},\"returns\":{\"_0\":\"total amount of active stake at the timestamp\"}},\"claim(address,uint256)\":{\"params\":{\"epoch\":\"epoch to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"claimBatch(address,uint256[])\":{\"params\":{\"epochs\":\"epochs to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"currentEpoch()\":{\"returns\":{\"_0\":\"current epoch\"}},\"currentEpochStart()\":{\"returns\":{\"_0\":\"start of the current epoch\"}},\"deposit(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to deposit\",\"onBehalfOf\":\"account the deposit is made on behalf of\"},\"returns\":{\"depositedAmount\":\"real amount of the collateral deposited\",\"mintedShares\":\"amount of the active shares minted\"}},\"epochAt(uint48)\":{\"details\":\"Reverts if the timestamp is less than the start of the epoch 0.\",\"params\":{\"timestamp\":\"time point to get the epoch at\"},\"returns\":{\"_0\":\"epoch at the timestamp\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(uint64,address,bytes)\":{\"params\":{\"data\":\"some data to use\",\"initialVersion\":\"initial version of the entity\",\"owner\":\"initial owner of the entity\"}},\"isInitialized()\":{\"returns\":{\"_0\":\"if the vault is fully initialized\"}},\"migrate(uint64,bytes)\":{\"params\":{\"data\":\"some data to use\",\"newVersion\":\"new version of the entity\"}},\"nextEpochStart()\":{\"returns\":{\"_0\":\"start of the next epoch\"}},\"onSlash(uint256,uint48)\":{\"details\":\"Only the slasher can call this function.\",\"params\":{\"amount\":\"amount to slash\",\"captureTimestamp\":\"time point when the stake was captured\"},\"returns\":{\"slashedAmount\":\"real amount of the collateral slashed\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"previousEpochStart()\":{\"details\":\"Reverts if the current epoch is 0.\",\"returns\":{\"_0\":\"start of the previous epoch\"}},\"redeem(address,uint256)\":{\"params\":{\"claimer\":\"account that needs to claim the withdrawal\",\"shares\":\"amount of the active shares to redeem\"},\"returns\":{\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawnAssets\":\"amount of the collateral withdrawn\"}},\"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.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setDepositLimit(uint256)\":{\"details\":\"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"setDepositWhitelist(bool)\":{\"details\":\"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit whitelist\"}},\"setDepositorWhitelistStatus(address,bool)\":{\"details\":\"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.\",\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisting the account\"}},\"setIsDepositLimit(bool)\":{\"details\":\"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit limit\"}},\"slashableBalanceOf(address)\":{\"params\":{\"account\":\"account to get the slashable collateral for\"},\"returns\":{\"_0\":\"total amount of the account's slashable collateral\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"totalStake()\":{\"returns\":{\"_0\":\"total amount of the slashable collateral\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"version()\":{\"details\":\"Starts from 1.\",\"returns\":{\"_0\":\"version of the entity\"}},\"withdraw(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to withdraw\",\"claimer\":\"account that needs to claim the withdrawal\"},\"returns\":{\"burnedShares\":\"amount of the active shares burned\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\"}},\"withdrawalsOf(uint256,address)\":{\"params\":{\"account\":\"account to get the withdrawals for\",\"epoch\":\"epoch to get the withdrawals for the account at\"},\"returns\":{\"_0\":\"withdrawals for the account at the epoch\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Claim(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a claim is made.\"},\"ClaimBatch(address,address,uint256[],uint256)\":{\"notice\":\"Emitted when a batch claim is made.\"},\"Deposit(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a deposit is made.\"},\"OnSlash(uint256,uint48,uint256)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetDelegator(address)\":{\"notice\":\"Emitted when a delegator is set.\"},\"SetDepositLimit(uint256)\":{\"notice\":\"Emitted when a deposit limit is set.\"},\"SetDepositWhitelist(bool)\":{\"notice\":\"Emitted when a deposit whitelist status is enabled/disabled.\"},\"SetDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Emitted when a depositor whitelist status is set.\"},\"SetIsDepositLimit(bool)\":{\"notice\":\"Emitted when a deposit limit status is enabled/disabled.\"},\"SetSlasher(address)\":{\"notice\":\"Emitted when a slasher is set.\"},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"notice\":\"Emitted when a withdrawal is made.\"}},\"kind\":\"user\",\"methods\":{\"DELEGATOR_FACTORY()\":{\"notice\":\"Get the delegator factory's address.\"},\"DEPOSITOR_WHITELIST_ROLE()\":{\"notice\":\"Get a depositor whitelist status setter's role.\"},\"DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit setter's role.\"},\"DEPOSIT_WHITELIST_SET_ROLE()\":{\"notice\":\"Get a deposit whitelist enabler/disabler's role.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"IS_DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit enabler/disabler's role.\"},\"SLASHER_FACTORY()\":{\"notice\":\"Get the slasher factory's address.\"},\"activeBalanceOf(address)\":{\"notice\":\"Get an active balance for a particular account.\"},\"activeBalanceOfAt(address,uint48,bytes)\":{\"notice\":\"Get an active balance for a particular account at a given timestamp using hints.\"},\"activeShares()\":{\"notice\":\"Get a total number of active shares in the vault.\"},\"activeSharesAt(uint48,bytes)\":{\"notice\":\"Get a total number of active shares in the vault at a given timestamp using a hint.\"},\"activeSharesOf(address)\":{\"notice\":\"Get a number of active shares for a particular account.\"},\"activeSharesOfAt(address,uint48,bytes)\":{\"notice\":\"Get a total number of active shares for a particular account at a given timestamp using a hint.\"},\"activeStake()\":{\"notice\":\"Get a total amount of active stake in the vault.\"},\"activeStakeAt(uint48,bytes)\":{\"notice\":\"Get a total amount of active stake in the vault at a given timestamp using a hint.\"},\"burner()\":{\"notice\":\"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract).\"},\"claim(address,uint256)\":{\"notice\":\"Claim collateral from the vault.\"},\"claimBatch(address,uint256[])\":{\"notice\":\"Claim collateral from the vault for multiple epochs.\"},\"collateral()\":{\"notice\":\"Get a vault collateral.\"},\"currentEpoch()\":{\"notice\":\"Get a current vault epoch.\"},\"currentEpochStart()\":{\"notice\":\"Get a start of the current vault epoch.\"},\"delegator()\":{\"notice\":\"Get a delegator (it delegates the vault's stake to networks and operators).\"},\"deposit(address,uint256)\":{\"notice\":\"Deposit collateral into the vault.\"},\"depositLimit()\":{\"notice\":\"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously).\"},\"depositWhitelist()\":{\"notice\":\"Get if the deposit whitelist is enabled.\"},\"epochAt(uint48)\":{\"notice\":\"Get an epoch at a given timestamp.\"},\"epochDuration()\":{\"notice\":\"Get a duration of the vault epoch.\"},\"epochDurationInit()\":{\"notice\":\"Get a time point of the epoch duration set.\"},\"initialize(uint64,address,bytes)\":{\"notice\":\"Initialize this entity contract by using a given data and setting a particular version and owner.\"},\"isDelegatorInitialized()\":{\"notice\":\"Get if the delegator is initialized.\"},\"isDepositLimit()\":{\"notice\":\"Get if the deposit limit is set.\"},\"isDepositorWhitelisted(address)\":{\"notice\":\"Get if a given account is whitelisted as a depositor.\"},\"isInitialized()\":{\"notice\":\"Check if the vault is fully initialized (a delegator and a slasher are set).\"},\"isSlasherInitialized()\":{\"notice\":\"Get if the slasher is initialized.\"},\"isWithdrawalsClaimed(uint256,address)\":{\"notice\":\"Get if the withdrawals are claimed for a particular account at a given epoch.\"},\"migrate(uint64,bytes)\":{\"notice\":\"Migrate this entity to a particular newer version using a given data.\"},\"nextEpochStart()\":{\"notice\":\"Get a start of the next vault epoch.\"},\"onSlash(uint256,uint48)\":{\"notice\":\"Slash callback for burning collateral.\"},\"previousEpochStart()\":{\"notice\":\"Get a start of the previous vault epoch.\"},\"redeem(address,uint256)\":{\"notice\":\"Redeem collateral from the vault (it will be claimable after the next epoch).\"},\"setDepositLimit(uint256)\":{\"notice\":\"Set a deposit limit.\"},\"setDepositWhitelist(bool)\":{\"notice\":\"Enable/disable deposit whitelist.\"},\"setDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Set a depositor whitelist status.\"},\"setIsDepositLimit(bool)\":{\"notice\":\"Enable/disable deposit limit.\"},\"slashableBalanceOf(address)\":{\"notice\":\"Get a total amount of the collateral that can be slashed for a given account.\"},\"slasher()\":{\"notice\":\"Get a slasher (it provides networks a slashing mechanism).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"totalStake()\":{\"notice\":\"Get a total amount of the collateral that can be slashed.\"},\"version()\":{\"notice\":\"Get the entity's version.\"},\"withdraw(address,uint256)\":{\"notice\":\"Withdraw collateral from the vault (it will be claimable after the next epoch).\"},\"withdrawalShares(uint256)\":{\"notice\":\"Get a total number of withdrawal shares at a given epoch.\"},\"withdrawalSharesOf(uint256,address)\":{\"notice\":\"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed).\"},\"withdrawals(uint256)\":{\"notice\":\"Get a total amount of the withdrawals at a given epoch.\"},\"withdrawalsOf(uint256,address)\":{\"notice\":\"Get withdrawals for a particular account at a given epoch (zero if claimed).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/hints/VaultHints.sol\":\"VaultHints\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf\",\"dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44\",\"dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x303ad40a3de8fa808cc30a6fbd5998633f6a89b982e6db1fa981e0566ab445e7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fa8fb92995ead02798e013190b87b84b44cc68668262f045c9b0b4783940e2bf\",\"dweb:/ipfs/QmV1uKGVLKwWisc714R8fCt71gXUQJpaKvdc6LQ8WtvMpL\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/hints/Hints.sol\":{\"keccak256\":\"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971\",\"dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox\"]},\"src/contracts/hints/VaultHints.sol\":{\"keccak256\":\"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b\",\"dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x7ee6dbf060c45d6eba95315f4ac0b3b467dd9c4999b84c31d6f66d4d8b53a116\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://301948b8ea522db292aa2722ba42def3911dae95f0b376f7023c3fef470f8676\",\"dweb:/ipfs/QmSDbP2HdzhDAzstr8Zz5isEAcSkma8ABc5UwPsoazaumZ\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadyClaimed"},{"inputs":[],"type":"error","name":"AlreadyInitialized"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DelegatorAlreadyInitialized"},{"inputs":[],"type":"error","name":"DepositLimitReached"},{"inputs":[],"type":"error","name":"ExternalCall"},{"inputs":[],"type":"error","name":"InsufficientClaim"},{"inputs":[],"type":"error","name":"InsufficientDeposit"},{"inputs":[],"type":"error","name":"InsufficientRedemption"},{"inputs":[],"type":"error","name":"InsufficientWithdrawal"},{"inputs":[],"type":"error","name":"InvalidAccount"},{"inputs":[],"type":"error","name":"InvalidCaptureEpoch"},{"inputs":[],"type":"error","name":"InvalidClaimer"},{"inputs":[],"type":"error","name":"InvalidCollateral"},{"inputs":[],"type":"error","name":"InvalidDelegator"},{"inputs":[],"type":"error","name":"InvalidEpoch"},{"inputs":[],"type":"error","name":"InvalidEpochDuration"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidLengthEpochs"},{"inputs":[],"type":"error","name":"InvalidOnBehalfOf"},{"inputs":[],"type":"error","name":"InvalidRecipient"},{"inputs":[],"type":"error","name":"InvalidSlasher"},{"inputs":[],"type":"error","name":"InvalidTimestamp"},{"inputs":[],"type":"error","name":"MissingRoles"},{"inputs":[],"type":"error","name":"NoPreviousEpoch"},{"inputs":[],"type":"error","name":"NotDelegator"},{"inputs":[],"type":"error","name":"NotFactory"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotWhitelistedDepositor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"SlasherAlreadyInitialized"},{"inputs":[],"type":"error","name":"TooMuchRedeem"},{"inputs":[],"type":"error","name":"TooMuchWithdraw"},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"epoch","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Claim","anonymous":false},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256[]","name":"epochs","type":"uint256[]","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"ClaimBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"depositor","type":"address","indexed":true},{"internalType":"address","name":"onBehalfOf","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false}],"type":"event","name":"OnSlash","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":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true}],"type":"event","name":"SetDelegator","anonymous":false},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256","indexed":false}],"type":"event","name":"SetDepositLimit","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositWhitelist","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositorWhitelistStatus","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetIsDepositLimit","anonymous":false},{"inputs":[{"internalType":"address","name":"slasher","type":"address","indexed":true}],"type":"event","name":"SetSlasher","anonymous":false},{"inputs":[{"internalType":"address","name":"withdrawer","type":"address","indexed":true},{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"burnedShares","type":"uint256","indexed":false},{"internalType":"uint256","name":"mintedShares","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DELEGATOR_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSITOR_WHITELIST_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeBalanceOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeBalanceOfHints","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeSharesHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeSharesHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeSharesOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeSharesOfHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeSharesOfHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeStakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeStakeHint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"activeStakeHintInternal","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint32","name":"hint","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"burner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256[]","name":"epochs","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"claimBatch","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"delegator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"onBehalfOf","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"depositedAmount","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"epochAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDurationInit","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"initialVersion","type":"uint64"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isDelegatorInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isDepositLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isDepositorWhitelisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isSlasherInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isWithdrawalsClaimed","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"newVersion","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"migrate"},{"inputs":[],"stateMutability":"view","type":"function","name":"nextEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"onSlash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"previousEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"withdrawnAssets","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"delegator_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegator"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDepositLimit"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositWhitelist"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositorWhitelistStatus"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setIsDepositLimit"},{"inputs":[{"internalType":"address","name":"slasher_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSlasher"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"slashableBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"slasher","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"burnedShares","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawalShares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalSharesOf","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawals","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"activeBalanceOf(address)":{"params":{"account":"account to get the active balance for"},"returns":{"_0":"active balance for the account"}},"activeBalanceOfAt(address,uint48,bytes)":{"params":{"account":"account to get the active balance for","hints":"hints for checkpoints' indexes","timestamp":"time point to get the active balance for the account at"},"returns":{"_0":"active balance for the account at the timestamp"}},"activeShares()":{"returns":{"_0":"total number of active shares"}},"activeSharesAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total number of active shares at"},"returns":{"_0":"total number of active shares at the timestamp"}},"activeSharesOf(address)":{"params":{"account":"account to get the number of active shares for"},"returns":{"_0":"number of active shares for the account"}},"activeSharesOfAt(address,uint48,bytes)":{"params":{"account":"account to get the number of active shares for","hint":"hint for the checkpoint index","timestamp":"time point to get the number of active shares for the account at"},"returns":{"_0":"number of active shares for the account at the timestamp"}},"activeStake()":{"returns":{"_0":"total amount of active stake"}},"activeStakeAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total active stake at"},"returns":{"_0":"total amount of active stake at the timestamp"}},"claim(address,uint256)":{"params":{"epoch":"epoch to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"claimBatch(address,uint256[])":{"params":{"epochs":"epochs to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"currentEpoch()":{"returns":{"_0":"current epoch"}},"currentEpochStart()":{"returns":{"_0":"start of the current epoch"}},"deposit(address,uint256)":{"params":{"amount":"amount of the collateral to deposit","onBehalfOf":"account the deposit is made on behalf of"},"returns":{"depositedAmount":"real amount of the collateral deposited","mintedShares":"amount of the active shares minted"}},"epochAt(uint48)":{"details":"Reverts if the timestamp is less than the start of the epoch 0.","params":{"timestamp":"time point to get the epoch at"},"returns":{"_0":"epoch at the timestamp"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(uint64,address,bytes)":{"params":{"data":"some data to use","initialVersion":"initial version of the entity","owner":"initial owner of the entity"}},"isInitialized()":{"returns":{"_0":"if the vault is fully initialized"}},"migrate(uint64,bytes)":{"params":{"data":"some data to use","newVersion":"new version of the entity"}},"nextEpochStart()":{"returns":{"_0":"start of the next epoch"}},"onSlash(uint256,uint48)":{"details":"Only the slasher can call this function.","params":{"amount":"amount to slash","captureTimestamp":"time point when the stake was captured"},"returns":{"slashedAmount":"real amount of the collateral slashed"}},"owner()":{"details":"Returns the address of the current owner."},"previousEpochStart()":{"details":"Reverts if the current epoch is 0.","returns":{"_0":"start of the previous epoch"}},"redeem(address,uint256)":{"params":{"claimer":"account that needs to claim the withdrawal","shares":"amount of the active shares to redeem"},"returns":{"mintedShares":"amount of the epoch withdrawal shares minted","withdrawnAssets":"amount of the collateral withdrawn"}},"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."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setDepositLimit(uint256)":{"details":"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"limit":"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)"}},"setDepositWhitelist(bool)":{"details":"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit whitelist"}},"setDepositorWhitelistStatus(address,bool)":{"details":"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.","params":{"account":"account for which the whitelist status is set","status":"if whitelisting the account"}},"setIsDepositLimit(bool)":{"details":"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit limit"}},"slashableBalanceOf(address)":{"params":{"account":"account to get the slashable collateral for"},"returns":{"_0":"total amount of the account's slashable collateral"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"totalStake()":{"returns":{"_0":"total amount of the slashable collateral"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"version()":{"details":"Starts from 1.","returns":{"_0":"version of the entity"}},"withdraw(address,uint256)":{"params":{"amount":"amount of the collateral to withdraw","claimer":"account that needs to claim the withdrawal"},"returns":{"burnedShares":"amount of the active shares burned","mintedShares":"amount of the epoch withdrawal shares minted"}},"withdrawalsOf(uint256,address)":{"params":{"account":"account to get the withdrawals for","epoch":"epoch to get the withdrawals for the account at"},"returns":{"_0":"withdrawals for the account at the epoch"}}},"version":1},"userdoc":{"kind":"user","methods":{"DELEGATOR_FACTORY()":{"notice":"Get the delegator factory's address."},"DEPOSITOR_WHITELIST_ROLE()":{"notice":"Get a depositor whitelist status setter's role."},"DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit setter's role."},"DEPOSIT_WHITELIST_SET_ROLE()":{"notice":"Get a deposit whitelist enabler/disabler's role."},"FACTORY()":{"notice":"Get the factory's address."},"IS_DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit enabler/disabler's role."},"SLASHER_FACTORY()":{"notice":"Get the slasher factory's address."},"activeBalanceOf(address)":{"notice":"Get an active balance for a particular account."},"activeBalanceOfAt(address,uint48,bytes)":{"notice":"Get an active balance for a particular account at a given timestamp using hints."},"activeShares()":{"notice":"Get a total number of active shares in the vault."},"activeSharesAt(uint48,bytes)":{"notice":"Get a total number of active shares in the vault at a given timestamp using a hint."},"activeSharesOf(address)":{"notice":"Get a number of active shares for a particular account."},"activeSharesOfAt(address,uint48,bytes)":{"notice":"Get a total number of active shares for a particular account at a given timestamp using a hint."},"activeStake()":{"notice":"Get a total amount of active stake in the vault."},"activeStakeAt(uint48,bytes)":{"notice":"Get a total amount of active stake in the vault at a given timestamp using a hint."},"burner()":{"notice":"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract)."},"claim(address,uint256)":{"notice":"Claim collateral from the vault."},"claimBatch(address,uint256[])":{"notice":"Claim collateral from the vault for multiple epochs."},"collateral()":{"notice":"Get a vault collateral."},"currentEpoch()":{"notice":"Get a current vault epoch."},"currentEpochStart()":{"notice":"Get a start of the current vault epoch."},"delegator()":{"notice":"Get a delegator (it delegates the vault's stake to networks and operators)."},"deposit(address,uint256)":{"notice":"Deposit collateral into the vault."},"depositLimit()":{"notice":"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously)."},"depositWhitelist()":{"notice":"Get if the deposit whitelist is enabled."},"epochAt(uint48)":{"notice":"Get an epoch at a given timestamp."},"epochDuration()":{"notice":"Get a duration of the vault epoch."},"epochDurationInit()":{"notice":"Get a time point of the epoch duration set."},"initialize(uint64,address,bytes)":{"notice":"Initialize this entity contract by using a given data and setting a particular version and owner."},"isDelegatorInitialized()":{"notice":"Get if the delegator is initialized."},"isDepositLimit()":{"notice":"Get if the deposit limit is set."},"isDepositorWhitelisted(address)":{"notice":"Get if a given account is whitelisted as a depositor."},"isInitialized()":{"notice":"Check if the vault is fully initialized (a delegator and a slasher are set)."},"isSlasherInitialized()":{"notice":"Get if the slasher is initialized."},"isWithdrawalsClaimed(uint256,address)":{"notice":"Get if the withdrawals are claimed for a particular account at a given epoch."},"migrate(uint64,bytes)":{"notice":"Migrate this entity to a particular newer version using a given data."},"nextEpochStart()":{"notice":"Get a start of the next vault epoch."},"onSlash(uint256,uint48)":{"notice":"Slash callback for burning collateral."},"previousEpochStart()":{"notice":"Get a start of the previous vault epoch."},"redeem(address,uint256)":{"notice":"Redeem collateral from the vault (it will be claimable after the next epoch)."},"setDepositLimit(uint256)":{"notice":"Set a deposit limit."},"setDepositWhitelist(bool)":{"notice":"Enable/disable deposit whitelist."},"setDepositorWhitelistStatus(address,bool)":{"notice":"Set a depositor whitelist status."},"setIsDepositLimit(bool)":{"notice":"Enable/disable deposit limit."},"slashableBalanceOf(address)":{"notice":"Get a total amount of the collateral that can be slashed for a given account."},"slasher()":{"notice":"Get a slasher (it provides networks a slashing mechanism)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"totalStake()":{"notice":"Get a total amount of the collateral that can be slashed."},"version()":{"notice":"Get the entity's version."},"withdraw(address,uint256)":{"notice":"Withdraw collateral from the vault (it will be claimable after the next epoch)."},"withdrawalShares(uint256)":{"notice":"Get a total number of withdrawal shares at a given epoch."},"withdrawalSharesOf(uint256,address)":{"notice":"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed)."},"withdrawals(uint256)":{"notice":"Get a total amount of the withdrawals at a given epoch."},"withdrawalsOf(uint256,address)":{"notice":"Get withdrawals for a particular account at a given epoch (zero if claimed)."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/hints/VaultHints.sol":"VaultHints"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866","urls":["bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf","dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab","urls":["bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89","dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606","urls":["bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1","dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f","urls":["bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44","dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x303ad40a3de8fa808cc30a6fbd5998633f6a89b982e6db1fa981e0566ab445e7","urls":["bzz-raw://fa8fb92995ead02798e013190b87b84b44cc68668262f045c9b0b4783940e2bf","dweb:/ipfs/QmV1uKGVLKwWisc714R8fCt71gXUQJpaKvdc6LQ8WtvMpL"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/hints/Hints.sol":{"keccak256":"0x8b565df1ae35993c097a9e642002782a8f451f6fd01809cad6bcd345bdf1b99c","urls":["bzz-raw://99a19adb01e350a92f534095b3078229df1f2f83077992d75d58d8684be45971","dweb:/ipfs/QmbmwcuswVbzvwHQFTtrJG86oV98GnfxqYTb8cV8u1acox"],"license":"BUSL-1.1"},"src/contracts/hints/VaultHints.sol":{"keccak256":"0xccb505b7159b769cc114d67b87c2de6b106557f667fc8f3780114baad5c3c442","urls":["bzz-raw://6d0c80a908fc16e96a8b5605a0bd53f9e89ad0ef0a738fbbae80ba4d3160749b","dweb:/ipfs/QmXo5UtWoR8YmunqcbBU8rQMm1nvmvjNPoXcVrDhh4pEwR"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/vault/Vault.sol":{"keccak256":"0x7ee6dbf060c45d6eba95315f4ac0b3b467dd9c4999b84c31d6f66d4d8b53a116","urls":["bzz-raw://301948b8ea522db292aa2722ba42def3911dae95f0b376f7023c3fef470f8676","dweb:/ipfs/QmSDbP2HdzhDAzstr8Zz5isEAcSkma8ABc5UwPsoazaumZ"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":96} \ No newline at end of file diff --git a/out/VaultTokenized.sol/VaultTokenized.json b/out/VaultTokenized.sol/VaultTokenized.json index 105e9f5f..70a820b3 100644 --- a/out/VaultTokenized.sol/VaultTokenized.json +++ b/out/VaultTokenized.sol/VaultTokenized.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"slasherFactory","type":"address","internalType":"address"},{"name":"vaultFactory","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DELEGATOR_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEPOSITOR_WHITELIST_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeShares","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStakeAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimBatch","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epochs","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"currentEpoch","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"currentEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"delegator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"onBehalfOf","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"depositedAmount","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"depositLimit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"depositWhitelist","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"epochAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"epochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"epochDurationInit","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialVersion","type":"uint64","internalType":"uint64"},{"name":"owner_","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isDelegatorInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositLimit","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositorWhitelisted","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSlasherInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isWithdrawalsClaimed","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"migrate","inputs":[{"name":"newVersion","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nextEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"previousEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"redeem","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"withdrawnAssets","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegator","inputs":[{"name":"delegator_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositLimit","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositWhitelist","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setIsDepositLimit","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSlasher","inputs":[{"name":"slasher_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slashableBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slasher","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"burnedShares","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawalShares","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalSharesOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawals","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalsOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Claim","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epoch","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ClaimBatch","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epochs","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"onBehalfOf","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"slashedAmount","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":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDelegator","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDepositLimit","inputs":[{"name":"limit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetDepositWhitelist","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetIsDepositLimit","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetSlasher","inputs":[{"name":"slasher","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"withdrawer","type":"address","indexed":true,"internalType":"address"},{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"burnedShares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"mintedShares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadyClaimed","inputs":[]},{"type":"error","name":"AlreadyInitialized","inputs":[]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DelegatorAlreadyInitialized","inputs":[]},{"type":"error","name":"DepositLimitReached","inputs":[]},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"InsufficientClaim","inputs":[]},{"type":"error","name":"InsufficientDeposit","inputs":[]},{"type":"error","name":"InsufficientRedemption","inputs":[]},{"type":"error","name":"InsufficientWithdrawal","inputs":[]},{"type":"error","name":"InvalidAccount","inputs":[]},{"type":"error","name":"InvalidCaptureEpoch","inputs":[]},{"type":"error","name":"InvalidClaimer","inputs":[]},{"type":"error","name":"InvalidCollateral","inputs":[]},{"type":"error","name":"InvalidDelegator","inputs":[]},{"type":"error","name":"InvalidEpoch","inputs":[]},{"type":"error","name":"InvalidEpochDuration","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidLengthEpochs","inputs":[]},{"type":"error","name":"InvalidOnBehalfOf","inputs":[]},{"type":"error","name":"InvalidRecipient","inputs":[]},{"type":"error","name":"InvalidSlasher","inputs":[]},{"type":"error","name":"InvalidTimestamp","inputs":[]},{"type":"error","name":"MissingRoles","inputs":[]},{"type":"error","name":"NoPreviousEpoch","inputs":[]},{"type":"error","name":"NotDelegator","inputs":[]},{"type":"error","name":"NotFactory","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotWhitelistedDepositor","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SlasherAlreadyInitialized","inputs":[]},{"type":"error","name":"TooMuchRedeem","inputs":[]},{"type":"error","name":"TooMuchWithdraw","inputs":[]}],"bytecode":{"object":"0x60e03461013c57601f61568838819003918201601f1916830192916001600160401b03918285118486101761014057816060928592604097885283398101031261013c5761004c82610154565b916100648461005d60208401610154565b9201610154565b9260805260a0527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82861c1661012b5780808316036100e7575b50505060c0525161551f908161016982396080518181816115820152611b27015260a051818181611c900152612213015260c051818181610a9b0152610cc30152f35b6001600160401b0319909116811790915582519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a4565b845163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361013c5756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104ba57806306fdde03146104b5578063095ea7b3146104b05780631415519b146104ab57806318160ddd146103895780631b66c9e1146104a65780631e9a6950146104a157806323b872dd1461049c578063248a9ca31461049757806327810b6e14610492578063281f57521461048d5780632abe3048146104885780632d73c69c146104835780632dd310001461047e5780632f2ff15d14610479578063313ce5671461047457806336568abe1461046f578063392e53cd1461046a5780634105a7dd14610465578063463616711461046057806347e7ef241461045b57806348d3b775146104565780634ff0876a1461045157806350861adc1461044c57806350f22068146104475780635346e34f1461044257806354fd4d501461043d57806357ec83cc1461043857806359f769a9146104335780635cc070761461042e57806361a8c8c4146104295780636da3e06d146104245780636ec1e3f81461041f57806370a08231146103d4578063715018a61461041a5780637278e31c1461041557806373790ab314610410578063766718081461040b578063794b15b7146104065780637953b33b146104015780637c04c80a146103fc578063810da75d146103f757806383cd9cc3146103f257806387df0788146103ed5780638b0e9f3f146103e85780638da5cb5b146103e357806391d14854146103de57806395d89b41146103d95780639d66201b146103d45780639f86fd85146103cf578063a1b12202146103ca578063a217fddf146103c5578063a21a1df9146103c0578063a2861466146103bb578063a3b54172146103b6578063a5d03223146103b1578063a9059cbb146103ac578063aabc2496146103a7578063aad3ec96146103a2578063afba70ad1461039d578063b134427114610398578063bd49c35f14610393578063bdc8144b1461038e578063bfefcd7b14610389578063c31e8dd714610384578063ce9b79301461037f578063d547741f1461037a578063d8dfeb4514610375578063db38871514610370578063dd62ed3e1461036b578063ecf7085814610366578063efb559d614610361578063f2fde38b1461035c578063f3fef3a3146103575763f5e7ee0f14610352575f80fd5b6128cd565b612827565b6127fa565b6126ab565b61268e565b612657565b61261d565b6125f2565b6125a6565b61257e565b612514565b610749565b612436565b61241c565b6123f4565b6123ca565b612309565b612152565b61211d565b6120d7565b61208a565b611f97565b611f5d565b611f43565b611f1f565b611e65565b6115d6565b611db3565b611d55565b611d21565b611cbf565b611c7b565b611ac2565b611aa9565b611a43565b611a1c565b6119dc565b61198a565b611949565b611677565b611610565b6115b1565b61156d565b61151a565b6114f0565b6114c9565b611391565b61135f565b6112ca565b6112b1565b611254565b611234565b611213565b610f2b565b610f03565b610e68565b610e23565b610dd8565b610d40565b610cf2565b610cae565b610c42565b610a56565b610988565b610960565b610927565b61088a565b6107a5565b61076b565b61070f565b61064d565b61054c565b346105105760203660031901126105105760043563ffffffff60e01b811680910361051057602090637965db0b60e01b81149081156104ff575b506040519015158152f35b6301ffc9a760e01b1490505f6104f4565b5f80fd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b906020610549928181520190610514565b90565b34610510575f366003190112610510576040515f5f805160206153ca83398151915280549061057a826128f7565b8085529160209160019182811690811561060f57506001146105b7575b6105b3866105a781880382610b86565b60405191829182610538565b0390f35b5f90815293507f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab05b8385106105fc575050505081016020016105a7826105b35f610597565b80548686018401529382019381016105df565b90508695506105b3969350602092506105a794915060ff191682840152151560051b82010192935f610597565b6001600160a01b0381160361051057565b346105105760403660031901126105105760043561066a8161063c565b60243533156106f7576001600160a01b0382169182156106df576106a78291610692336119a4565b9060018060a01b03165f5260205260405f2090565b556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b604051634a1406b160e11b81525f6004820152602490fd5b60405163e602df0560e01b81525f6004820152602490fd5b34610510575f3660031901126105105760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b34610510575f366003190112610510576020610763613fe1565b604051908152f35b34610510575f3660031901126105105760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b34610510576040366003190112610510576004356107c28161063c565b602435906107ce612e0f565b6001600160a01b0381161561087957335f908152600e602052604090206107f9906140ce565b6140ce565b82116108675761081961080a61405a565b610812613fe1565b9084614142565b918215610852578261082a92612e3e565b9061084160015f805160206154aa83398151915255565b604080519182526020820192909252f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b34610510576060366003190112610510576004356108a78161063c565b6024356108b38161063c565b604435906108c433610692856119a4565b5492600184016108e5575b6108d99350612fce565b60405160018152602090f35b828410610901576108fc836108d99503338361411b565b6108cf565b604051637dc7a0d960e11b81523360048201526024810185905260448101849052606490fd5b34610510576020366003190112610510576004355f525f8051602061548a8339815191526020526020600160405f200154604051908152f35b34610510575f366003190112610510576001546040516001600160a01b039091168152602090f35b34610510575f366003190112610510576109a0612b63565b8015610a015760015465ffffffffffff8160a01c16915f1981019081116109fc576109ce9160d01c9061295e565b81018091116109fc576109e36105b39161312d565b60405165ffffffffffff90911681529081906020820190565b61292f565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b038216820361051057565b9181601f84011215610510578235916001600160401b038311610510576020838186019501011161051057565b3461051057604036600319011261051057610a6f610a13565b6001600160401b0360243581811161051057610a8f903690600401610a29565b5050610a99612e0f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610b15575f805160206154ca833981519152549060ff8260401c16928315610b05575b505050610af3575f80fd5b60405163f92ee8a960e01b8152600490fd5b81169116101590505f8080610ae8565b604051631966391b60e11b8152600490fd5b65ffffffffffff81160361051057565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b03821117610b6657604052565b610b37565b604081019081106001600160401b03821117610b6657604052565b90601f801991011681019081106001600160401b03821117610b6657604052565b6040519061016082018281106001600160401b03821117610b6657604052565b60405190610bd482610b6b565b565b6001600160401b038111610b6657601f01601f191660200190565b929192610bfd82610bd6565b91610c0b6040519384610b86565b829481845281830111610510578281602093845f960137010152565b9080601f830112156105105781602061054993359101610bf1565b3461051057606036600319011261051057600435610c5f8161063c565b60243590610c6c82610b27565b604435906001600160401b03821161051057602092610c92610763933690600401610c27565b6001600160a01b039092165f908152600e855260409020613326565b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461051057604036600319011261051057610d3e602435600435610d158261063c565b805f525f8051602061548a833981519152602052610d39600160405f2001546134fd565b6137fd565b005b34610510575f366003190112610510575f5460405163313ce56760e01b8152906020908290600490829060101c6001600160a01b03165afa8015610dd3575f90610d95575b60405160ff919091168152602090f35b506020813d602011610dcb575b81610daf60209383610b86565b81010312610510575160ff81168103610510576105b390610d85565b3d9150610da2565b6129ad565b3461051057604036600319011261051057602435610df58161063c565b336001600160a01b03821603610e1157610d3e90600435613833565b60405163334bd91960e11b8152600490fd5b34610510575f3660031901126105105760ff60025460a01c1680610e4f575b6020906040519015158152f35b5060035460a01c60ff16610e42565b8015150361051057565b3461051057602036600319011261051057600435610e8581610e5e565b610e8d612e0f565b610e956133f2565b5f54901515908160ff8216151514610ef15760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f805160206154aa83398151915255005b60405163a741a04560e01b8152600490fd5b34610510575f36600319011261051057602065ffffffffffff60015460a01c16604051908152f35b3461051057604080600319360112610510576004803591610f4b8361063c565b610f53612e0f565b6001600160a01b0391838316908115611205575f5460ff8116806111ec575b6111dd5783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610dd3575f936111ba575b50610fc790602435903090339061452b565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610dd357611006935f9261118d575b5050612951565b93841561117e5760081c60ff1680611169575b61115b5750906105b3916110ca61102e61405a565b9561107761103a613fe1565b6110626110488a838b614142565b9961105c8a6110564261312d565b9261297f565b90613c7c565b5050611071896110564261312d565b90613d5c565b50506001600160a01b0381165f908152600e60205260409020906110c4886110bf6107f46110a44261312d565b6001600160a01b039095165f908152600e6020526040902090565b61297f565b91613e38565b5050815184815260208101869052819033907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a361111860015f805160206154aa83398151915255565b81518581525f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090a35191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50611176846110bf61405a565b815410611019565b50825163070f6eed60e11b8152fd5b6111ac9250803d106111b3575b6111a48183610b86565b8101906138c5565b5f80610fff565b503d61119a565b610fc79193506111d690853d87116111b3576111a48183610b86565b9290610fb5565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610f72565b8251630d534ce360e11b8152fd5b34610510575f36600319011261051057602060ff5f54166040519015158152f35b34610510575f36600319011261051057602060015460d01c604051908152f35b34610510575f36600319011261051057602060ff60025460a01c166040519015158152f35b9060406003198301126105105760043561129281610b27565b91602435906001600160401b0382116105105761054991600401610c27565b346105105760206107636112c436611279565b90613190565b34610510576020366003190112610510576004356112e781610e5e565b6112ef612e0f565b6112f761344f565b5f54901515908160ff8260081c16151514610ef15761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610d3e60015f805160206154aa83398151915255565b34610510575f3660031901126105105760206001600160401b035f805160206154ca8339815191525416604051908152f35b34610510576060366003190112610510576113aa610a13565b6024356113b68161063c565b6001600160401b0391604435838111610510576113d7903690600401610a29565b5f805160206154ca8339815191529491855494838616806114b85760ff8760401c169081156114ab575b50610af3577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966114a69661146e958716906001600160401b0319161790556114695f805160206154ca833981519152600160401b68ff000000000000000019825416179055565b6129b8565b5f805160206154ca833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f611401565b60405162dc149f60e41b8152600490fd5b346105105760203660031901126105105760206107636004356114eb8161063c565b612acc565b34610510576020366003190112610510576004355f526006602052602060405f2054604051908152f35b34610510575f3660031901126105105760015465ffffffffffff611550818360a01c1692611546612b63565b9060d01c9061295e565b82018092116109fc5761156460209261312d565b60405191168152f35b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610510575f36600319011261051057602060ff60035460a01c166040519015158152f35b34610510576020366003190112610510576004356115f38161063c565b60018060a01b03165f52600e602052602061076360405f206140ce565b34610510575f36600319011261051057611628613ab1565b5f8051602061542a83398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346105105760403660031901126105105760043560243561169781610b27565b61169f612e0f565b6003546116bc906001600160a01b03165b6001600160a01b031690565b3303611937576116ca612b63565b906116d481612b97565b9082151580611926575b801561191d575b61190b576105b3937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c79261171761405a565b9461173261172482612971565b5f52600660205260405f2090565b54908281036118255750611746818761297f565b8381188185100281189687806117de575b50505050505b836117aa575b6040805191825265ffffffffffff929092166020820152908101839052606090a161179a60015f805160206154aa83398151915255565b6040519081529081906020820190565b5f546117d99085906117c79060101c6001600160a01b03166116b0565b6001546001600160a01b031690613ef6565b611763565b61181a93610fff8361105c6118046117fd611724986118149888613af3565b8096612951565b9461180e4261312d565b92612951565b92612971565b555f80808087611757565b9150611839825f52600660205260405f2090565b5490611849816110bf848a61297f565b908482188286100282189788611864575b505050505061175d565b6118d9938361188c936118998c6118946118826118ca998884613af3565b9788958584613af3565b948592612951565b612951565b938484106118e4575b610fff9061105c6118b895969761180e4261312d565b6118c461172487612971565b55612951565b915f52600660205260405f2090565b555f8080808061185a565b91611900610fff916118fa866118b89798612951565b9061297f565b8594509290506118a2565b604051635e18d2a560e01b8152600490fd5b508282116116e5565b5061193083612943565b82106116de565b60405163dabc4ad960e01b8152600490fd5b34610510575f3660031901126105105760015465ffffffffffff808260a01c1691611972612b63565b600181018091116109fc576115509160d01c9061295e565b34610510575f366003190112610510576020610763612b63565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b34610510576020366003190112610510576004356119f98161063c565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b34610510576020366003190112610510576020610763600435611a3e81610b27565b612b97565b3461051057604036600319011261051057600435611a608161063c565b6024356001600160401b038082116105105736602383011215610510578160040135908111610510573660248260051b84010111610510576105b392602461179a930190612bd2565b34610510576020610763611abc36611279565b90613271565b3461051057602080600319360112610510576004803590611ae28261063c565b611aea612e0f565b60025460a01c60ff16611c6c576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f91611c3f575b5015611c2f5760405163fbfa77cf60e01b8152838516949082818581895afa928315610dd3575f93611c00575b505030911603611bf15750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610d3e60015f805160206154aa83398151915255565b60405163b9f0f17160e01b8152fd5b611c20929350803d10611c28575b611c188183610b86565b810190612d2b565b905f80611b84565b503d611c0e565b506040516324e5af8d60e21b8152fd5b611c5f9150823d8411611c65575b611c578183610b86565b810190612d0b565b5f611b57565b503d611c4d565b604051631380833b60e01b8152fd5b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610510575f36600319011261051057611cd7612b63565b611cdf61405a565b90805f52600660205260405f205482018092116109fc57600181018091116109fc575f52600660205260405f205481018091116109fc57602090604051908152f35b34610510575f366003190112610510575f8051602061542a833981519152546040516001600160a01b039091168152602090f35b3461051057604036600319011261051057602060ff611da7602435611d798161063c565b6004355f525f8051602061548a833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b34610510575f366003190112610510576040515f5f8051602061540a833981519152805490611de1826128f7565b8085529160209160019182811690811561060f5750600114611e0d576105b3866105a781880382610b86565b5f90815293507f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa5b838510611e52575050505081016020016105a7826105b35f610597565b8054868601840152938201938101611e35565b346105105760408060031936011261051057600435611e838161063c565b602435906001600160401b038211610510575f8091611ea9611f0d943690600401610a29565b908187519283928337810184815203915af43d15611f1557611eff3d611ece81610bd6565b90611edb86519283610b86565b81523d5f602083013e5b845194859315156020850152808401526060830190610514565b03601f198101835282610b86565b805190602001fd5b611eff6060611ee5565b34610510575f36600319011261051057602060ff5f5460081c166040519015158152f35b34610510575f3660031901126105105760206040515f8152f35b34610510575f3660031901126105105760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b3461051057604036600319011261051057600435611fb48161063c565b602435611fc081610e5e565b611fc8612e0f565b611fd06134a6565b6001600160a01b038216918215612078575f8381526005602052604090205460ff16151582151514610ef1576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a629161205f9161204d908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610d3e60015f805160206154aa83398151915255565b604051630da30f6560e31b8152600490fd5b346105105760403660031901126105105760206120ce6024356120ac8161063c565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b3461051057604036600319011261051057602060ff611da76024356120fb8161063c565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b346105105760403660031901126105105761214760043561213d8161063c565b6024359033612fce565b602060405160018152f35b34610510576020806003193601126105105760048035906121728261063c565b61217a612e0f565b60035460a01c60ff166122fa576001600160a01b038281169390846121e8575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610d3e60015f805160206154aa83398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f916122dd575b50156122cc5760405163fbfa77cf60e01b815282818581895afa928315610dd3575f936122ad575b50503091160361229e5750600380546001600160a01b0319166001600160a01b039092169190911790555f80808061219a565b604051633f3e089160e21b8152fd5b6122c4929350803d10611c2857611c188183610b86565b905f8061226b565b60405163dabc4ad960e01b81528390fd5b6122f49150833d8511611c6557611c578183610b86565b5f612243565b60405163703fe2e560e01b8152fd5b34610510576040366003190112610510576004356123268161063c565b60243590612332612e0f565b6001600160a01b03918183169081156123b8576123636105b39461235583613f45565b9485915f5460101c16613ef6565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f805160206154aa833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b34610510576020366003190112610510576004355f526007602052602060405f2054604051908152f35b34610510575f366003190112610510576003546040516001600160a01b039091168152602090f35b34610510575f36600319011261051057602061076361405a565b3461051057602036600319011261051057600435612452612e0f565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff16156124f657508060045414610ef1576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f805160206154aa83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b34610510576020366003190112610510576004356125318161063c565b612539612b63565b61254282612acc565b9161254d8183612db1565b83018093116109fc57600182018092116109fc5761256a91612db1565b81018091116109fc57602090604051908152f35b34610510575f366003190112610510576002546040516001600160a01b039091168152602090f35b3461051057604036600319011261051057610d3e6024356004356125c98261063c565b805f525f8051602061548a8339815191526020526125ed600160405f2001546134fd565b613833565b34610510575f366003190112610510575f5460405160109190911c6001600160a01b03168152602090f35b34610510575f3660031901126105105760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b346105105760403660031901126105105760206120ce6004356126798161063c565b610692602435916126898361063c565b6119a4565b34610510575f366003190112610510576020600454604051908152f35b34610510576060366003190112610510576004356126c88161063c565b602435906126d582610b27565b6001600160401b0391604435838111610510576126f6903690600401610a29565b9092604093845161270681610b4b565b60608152606060208201526060868201529280612765575b6105b3866127568787612750612737898484519161298c565b9285612747602085015183613271565b93015190613190565b91614142565b90519081529081906020820190565b8101939250602081850312610510578035908682116105105701926060848203126105105784519561279687610b4b565b843581811161051057826127ab918701610c27565b8752602085013581811161051057826127c5918701610c27565b602088015285850135908111610510576105b3966127ee61275093612737936127569801610c27565b8782015293945061271e565b3461051057602036600319011261051057610d3e60043561281a8161063c565b612822613ab1565b612d40565b34610510576040366003190112610510576004356128448161063c565b60243561284f612e0f565b6001600160a01b038216156108795780156128bb5761287e61286f613fe1565b61287761405a565b9083614bf4565b335f908152600e60205260409020909290612898906140ce565b83116128a95761082a918391612e3e565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b346105105760403660031901126105105760206107636024356128ef8161063c565b600435612db1565b90600182811c92168015612925575b602083101461291157565b634e487b7160e01b5f52602260045260245ffd5b91607f1691612906565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116109fc57565b919082039182116109fc57565b818102929181159184041417156109fc57565b90600182018092116109fc57565b919082018092116109fc57565b6001600160a01b03165f908152600e60205260409020610549929190613326565b6040513d5f823e3d90fd5b916129f5926129c5614583565b6129cd614583565b60015f805160206154aa833981519152556001600160a01b038116612ab2575b503691610bf1565b80516020908201818101828483031261051057828401516001600160401b039485821161051057019283926101a093849103126105105760405193612a3985610b4b565b612a45838383016138df565b8552610180810151868111610510578383612a62928401016139a8565b9382860194855281015195861161051057612a8a612aa99383610bd498612aa49401016139a8565b94604081019586525191611eff60405193849283016139ee565b6145c6565b51905190614982565b612ac690612abe614583565b612822614583565b5f6129ed565b6001600160a01b03165f908152600e60205260409020612aeb906140ce565b612af361405a565b612afb613fe1565b90600181018091116109fc57600182018092116109fc5761054992613af3565b65ffffffffffff91821690821603919082116109fc57565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff809116918215612b5e57160490565b612b33565b612b6c4261312d565b612b93600154612b8965ffffffffffff93848360a01c1690612b1b565b9060d01c90612b47565b1690565b6001549065ffffffffffff91828160a01c16918284821610612bc057612b9392612b8991612b1b565b60405163b7d0949760e01b8152600490fd5b90612bdb612e0f565b5f926001600160a01b0383169283156123b8578115612c93575f5b828110612c7157505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d279286929091612c46918491612c419060101c6001600160a01b03166116b0565b613ef6565b612c57604051928392339684612cce565b0390a390610bd460015f805160206154aa83398151915255565b94612c8c6001916118fa612c86898789612cb9565b35613f45565b9501612bf6565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612cc95760051b0190565b612ca5565b604080825281018390529392916001600160fb1b0381116105105760209160609160051b809183880137850101930152565b5190610bd482610e5e565b90816020910312610510575161054981610e5e565b5190610bd48261063c565b9081602091031261051057516105498161063c565b6001600160a01b03908116908115612d99575f8051602061542a83398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612dd790825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116109fc57600182018092116109fc5761054992613af3565b5f805160206154aa8339815191526002815414612e2c5760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e6020526040812093949390929190612e7d90612e604261312d565b335f908152600e602052604090206110c4908990611894906140ce565b5050612e97612e8b4261312d565b61107187611894613fe1565b5050612eb1612ea54261312d565b61105c8461189461405a565b505081612f4382610692612ecb612ec6612b63565b612971565b612f22612ee0825f52600660205260405f2090565b54612ef3835f52600760205260405f2090565b54612f0a612f0283838b614142565b9a8b9361297f565b612f1c855f52600660205260405f2090565b5561297f565b612f34825f52600760205260405f2090565b555f52600860205260405f2090565b612f4e84825461297f565b9055604080519182526020820187905281018390526001600160a01b03919091169033907febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f90606090a36040519384529233907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9080602081015b0390a3565b916001600160a01b03808416929083156131155781169384156130fd576001600160a01b0381165f908152600e6020526040902061300b906140ce565b908382106130cb57612fc99261306d7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef959361305a6130b99460018060a01b03165f52600e60205260405f2090565b90856130654261312d565b910391613e38565b50506001600160a01b0381165f908152600e6020526040902090836130b26107f46130974261312d565b6001600160a01b039094165f908152600e6020526040902090565b0191613e38565b50506040519081529081906020820190565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b81525f6004820152602490fd5b604051634b637e8f60e11b81525f6004820152602490fd5b65ffffffffffff90818111613140571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b90816020910312610510575163ffffffff811681036105105790565b90600163ffffffff809316019182116109fc57565b9080511561326757806020806131ab9351830101910161315f565b6131b4816143b3565b906131c5825165ffffffffffff1690565b9065ffffffffffff808516921682811461325b57821191826131fb575b50506131f2575061054990614163565b60209150015190565b909150613209600a54612943565b63ffffffff831614918215613222575b50505f806131e2565b61325391925061323c6132376132489261317b565b6143b3565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80613219565b50505060209150015190565b5061054990614163565b9080511561331c578060208061328c9351830101910161315f565b6132958161443d565b906132a6825165ffffffffffff1690565b9065ffffffffffff808516921682811461325b57821191826132d3575b50506131f257506105499061422a565b9091506132e1600c54612943565b63ffffffff8316149182156132fa575b50505f806132c3565b61331491925061323c61330f6132489261317b565b61443d565b115f806132f1565b506105499061422a565b918051156133e857806020806133419351830101910161315f565b9161334c83826144bd565b9261335d845165ffffffffffff1690565b9065ffffffffffff80851692168281146133dc5782119182613393575b505061338a5761054992506142ea565b50506020015190565b9091506133a08354612943565b63ffffffff8316149182156133b9575b50505f8061337a565b6133d491925061323c6133ce6132489261317b565b856144bd565b115f806133b0565b50505050506020015190565b50610549916142ea565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b5416156124f65750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff90613445565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff90613445565b5f8181525f8051602061548a83398151915260209081526040808320338452909152902060ff90613445565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f8051602061548a8339815191529060ff166135d4575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f8051602061548a8339815191529060ff905b54166136a9575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f8051602061548a8339815191529060ff90613645565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f8051602061548a8339815191529060ff90613645565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f8051602061548a8339815191529060ff90613645565b5f8181525f8051602061548a833981519152602081815260408084206001600160a01b038716855290915290912060ff90613645565b5f8181525f8051602061548a833981519152602081815260408084206001600160a01b03871685529091529091205460ff16156136a9575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b90816020910312610510575190565b5190610bd482610b27565b919082610160910312610510576138f4610ba7565b916138fe81612d20565b835261390c60208201612d20565b602084015261391d604082016138d4565b604084015261392e60608201612d00565b606084015261393f60808201612d00565b608084015260a081015160a084015261395a60c08201612d20565b60c084015261396b60e08201612d20565b60e084015261010061397e818301612d20565b90840152610120613990818301612d20565b908401526139a2610140809201612d20565b90830152565b81601f82011215610510578051906139bf82610bd6565b926139cd6040519485610b86565b8284526020838301011161051057815f9260208093018386015e8301015290565b81516001600160a01b0316815261016081019291610bd491906020818101516001600160a01b03169083015260408181015165ffffffffffff169083015260608181015115159083015260808181015115159083015260a0818101519083015260c0808201516001600160a01b03169083015260e0818101516001600160a01b031690830152610100818101516001600160a01b031690830152610120818101516001600160a01b031690830152610140908101516001600160a01b0316910152565b5f8051602061542a833981519152546001600160a01b03163303613ad157565b60405163118cdaa760e01b8152336004820152602490fd5b8115612b5e570490565b91818302915f1981850993838086109503948086039514613b735784831115613b665790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b8215600302601118614aa7565b5050906105499250613ae9565b600b54811015612cc957600b5f525f8051602061546a83398151915201905f90565b600d54811015612cc957600d5f525f8051602061544a83398151915201905f90565b8054821015612cc9575f5260205f2001905f90565b600d54600160401b811015610b66576001810180600d55811015612cc957600d5f525f8051602061544a8339815191520155565b600b54600160401b811015610b66576001810180600b55811015612cc957600b5f525f8051602061546a8339815191520155565b90815491600160401b831015610b665782613c64916001610bd495018155613bc4565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613d27575b50613c94614ab7565b50929091815492613ca361405a565b9481613d12575b5015613cef57505f1982018281116109fc5781541115612cc9575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613d03926001600160d01b03169150614f21565b5050613d0e83613bd9565b9190565b65ffffffffffff83811691161490505f613caa565b600160401b811015610b665760018101808455811015612cc9575f908382525f8051602061544a83398151915201555f613c8b565b919091600b9081548015613e03575b50613d74614b0c565b50929091815492613d83613fe1565b9481613dee575b5015613dcf57505f1982018281116109fc5781541115612cc9575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b613de3926001600160d01b03169150614ff1565b5050613d0e83613c0d565b65ffffffffffff83811691161490505f613d8a565b600160401b811015610b665760018101808455811015612cc9575f908382525f8051602061546a83398151915201555f613d6b565b90929192600182019081548015613ec6575b5084613e5584614b61565b50949092845493613e65836140ce565b9681613eb1575b5015613e8e575050505f1981019081116109fc57613c648591613d0e93613bc4565b613d0e949293613eaa926001600160d01b039091169190615090565b5050613c41565b65ffffffffffff83811691161490505f613e6c565b600160401b811015610b6657806001613ee29201845583613bc4565b8154905f199060031b1b191690555f613e4a565b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815260808101916001600160401b03831182841017610b6657610bd492604052614b9a565b90613f4e612b63565b821015613fcf575f82815260096020908152604080832033845290915290205460ff16613fbd57613f7f3383612db1565b918215613fab575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600a548061402157505f5b6001600160d01b0381161561401c57600b54811015612cc957600b5f525f8051602061546a833981519152015490565b505f90565b805f198101116109fc57600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c613fec565b600c548061409557505f5b6001600160d01b0381161561401c57600d54811015612cc957600d5f525f8051602061544a833981519152015490565b805f198101116109fc57600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c614065565b8054806140fd57505f5b6001600160d01b038116156135d45760016140f39201613bc4565b90549060031b1c90565b5f199080828101116109fc57825f5260205f2001015460301c6140d8565b906001600160a01b03808316156106f7578116156106df5761069261413f926119a4565b55565b9190600181018091116109fc57600182018092116109fc5761054992613af3565b600a54905f8291600584116141d1575b61417d9350615275565b806141a057505f5b6001600160d01b0381161561401c576140f361054991613b80565b6141c56141af6141cc92612943565b600a5f525f805160206153ea8339815191520190565b5460301c90565b614185565b91926141dc8161514a565b81039081116109fc5761417d93600a5f5265ffffffffffff80835f805160206153ea833981519152015416908516105f14614218575091614173565b92915061422490612971565b90614173565b600c54905f829160058411614291575b61424493506152de565b8061426757505f5b6001600160d01b0381161561401c576140f361054991613ba2565b6141c561427661428c92612943565b600c5f525f805160206153aa8339815191520190565b61424c565b919261429c8161514a565b81039081116109fc5761424493600c5f5265ffffffffffff80835f805160206153aa833981519152015416908516105f146142d857509161423a565b9291506142e490612971565b9061423a565b908154905f82916005841161434d575b614305935084615347565b8061432d57505f905b6001600160d01b038216156135d4576105499160016140f39201613bc4565b6141c561433c61434792612943565b835f5260205f200190565b9061430e565b91926143588161514a565b81039081116109fc5761430593855f5265ffffffffffff808360205f20015416908516105f146143895750916142fa565b92915061439590612971565b906142fa565b604051906143a882610b6b565b5f6020838281520152565b6143bb61439b565b506143c461439b565b50600a54811015612cc957600a5f526020604051916143e283610b6b565b5f805160206153ea83398151915201549165ffffffffffff83169283825260301c9182910152600b54811015612cc957600b5f525f8051602061546a83398151915201546040519161443383610b6b565b8252602082015290565b61444561439b565b5061444e61439b565b50600c54811015612cc957600c5f5260206040519161446c83610b6b565b5f805160206153aa83398151915201549165ffffffffffff83169283825260301c9182910152600d54811015612cc957600d5f525f8051602061544a83398151915201546040519161443383610b6b565b90602060016144e161450d936144d161439b565b506144da61439b565b5085613bc4565b5093604051946144f086610b6b565b549465ffffffffffff86169586825260301c938491015201613bc4565b9054906040519261451d84610b6b565b835260031b1c602082015290565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b03841117610b6657610bd492604052614b9a565b60ff5f805160206154ca8339815191525460401c161561459f57565b604051631afcd79f60e31b8152600490fd5b906101608282031261051057610549916138df565b6145d990602080825183010191016145b1565b80516001600160a01b03919082161561497057604080820165ffffffffffff614608825165ffffffffffff1690565b161561495f5760c083018051909290614629906001600160a01b03166116b0565b15614810575b509161475c610140926146fb6146d66147ba9661467d614655875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b0390921691909117905561323c6146ad4261312d565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b61471b61470b6060850151151590565b60ff80195f541691151516175f55565b61474261472b6080850151151590565b61ff005f5491151560081b169061ff001916175f55565b61474f60a0840151600455565b516001600160a01b031690565b848116614800575b5060e08101516001600160a01b03168481166147f0575b506101008101516001600160a01b03168481166147e0575b506101208101516001600160a01b03168481166147d0575b5001516001600160a01b031690565b9081166147c45750565b6147cd9061378e565b50565b6147d99061371f565b505f6147ab565b6147e9906136b0565b505f614793565b6147f9906135da565b505f61477b565b61480990613529565b505f614764565b60e0840151614827906001600160a01b03166116b0565b156148fc575b610120840151614845906001600160a01b03166116b0565b61462f576080840151156148b25760a08401511580614893575b61488357509161475c610140926146fb6146d66147ba965b9496505050925061462f565b5163183c854560e21b8152600490fd5b506101408401516148ac906001600160a01b03166116b0565b1561485f565b60a0840151158015906148dc575b61488357509161475c610140926146fb6146d66147ba96614877565b506101408401516148f5906001600160a01b03166116b0565b15156148c0565b6060840151156149325761010084015161491e906001600160a01b03166116b0565b61482d575163183c854560e21b8152600490fd5b61010084015161494a906001600160a01b03166116b0565b1561482d575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b919061498c614583565b614994614583565b82516001600160401b038111610b66575f805160206153ca833981519152906149c6816149c184546128f7565b614c2d565b602080601f8311600114614a0d575090806149fb92610bd496975f92614a02575b50508160011b915f199060031b1c19161790565b9055614d1f565b015190505f806149e7565b90601f19831696614a4b5f805160206153ca8339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab090565b925f905b898210614a8f57505090839291600194610bd4989910614a77575b505050811b019055614d1f565b01515f1960f88460031b161c191690555f8080614a6a565b80600185968294968601518155019501930190614a4f565b634e487b715f526020526024601cfd5b600c5480614ac857505f905f905f90565b805f198101116109fc57600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460019165ffffffffffff82169160301c90565b600a5480614b1d57505f905f905f90565b805f198101116109fc57600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460019165ffffffffffff82169160301c90565b805480614b725750505f905f905f90565b5f199181838101116109fc575f5260205f2001015460019165ffffffffffff82169160301c90565b905f602091828151910182855af1156129ad575f513d614beb57506001600160a01b0381163b155b614bc95750565b604051635274afe760e01b81526001600160a01b039091166004820152602490fd5b60011415614bc2565b9190600181018091116109fc57600182018092116109fc57614c17828285613af3565b928215612b5e5709151581018091116109fc5790565b601f8111614c39575050565b5f805160206153ca8339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0906020601f840160051c83019310614c9c575b601f0160051c01905b818110614c91575050565b5f8155600101614c86565b9091508190614c7d565b601f8111614cb2575050565b5f8051602061540a8339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa906020601f840160051c83019310614d15575b601f0160051c01905b818110614d0a575050565b5f8155600101614cff565b9091508190614cf6565b9081516001600160401b038111610b66575f8051602061540a83398151915290614d5281614d4d84546128f7565b614ca6565b602080601f8311600114614d8757508190614d839394955f92614a025750508160011b915f199060031b1c19161790565b9055565b90601f19831695614dc55f8051602061540a8339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa90565b925f905b888210614e0057505083600195969710614de8575b505050811b019055565b01515f1960f88460031b161c191690555f8080614dde565b80600185968294968601518155019501930190614dc9565b600c5490600160401b821015610b66576001820180600c55821015612cc957600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206153aa83398151915290910155565b600a5490600160401b821015610b66576001820180600a55821015612cc957600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206153ea83398151915290910155565b8054600160401b811015610b6657614ee391600182018155613bc4565b614f0e57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c549192918015614fc857614276614f3991612943565b9081549165ffffffffffff90818416918316808311614fb657869203614f7e57614f7792509065ffffffffffff82549181199060301b169116179055565b60301c9190565b5050614fb190614f9d614f8f610bc7565b65ffffffffffff9092168252565b6001600160d01b0385166020820152614e18565b614f77565b604051632520601d60e01b8152600490fd5b50614fec90614fd8614f8f610bc7565b6001600160d01b0384166020820152614e18565b5f9190565b600a54919291801561506c576141af61500991612943565b9081549165ffffffffffff90818416918316808311614fb65786920361504757614f7792509065ffffffffffff82549181199060301b169116179055565b5050614fb190615058614f8f610bc7565b6001600160d01b0385166020820152614e6f565b50614fec9061507c614f8f610bc7565b6001600160d01b0384166020820152614e6f565b80549293928015615125576150a76150b291612943565b825f5260205f200190565b9182549265ffffffffffff91828516928116808411614fb6578793036150f15750614f7792509065ffffffffffff82549181199060301b169116179055565b915050614fb191615111615103610bc7565b65ffffffffffff9093168352565b6001600160d01b0386166020830152614ec6565b5090614fec91615136615103610bc7565b6001600160d01b0385166020830152614ec6565b600181111561054957600181600160801b811015615263575b61520b6152016151f76151ed6151e36151d961521797600488600160401b6152129a1015615256575b640100000000811015615249575b6201000081101561523c575b610100811015615230575b6010811015615224575b101561521c575b60030260011c6151d2818b613ae9565b0160011c90565b6151d2818a613ae9565b6151d28189613ae9565b6151d28188613ae9565b6151d28187613ae9565b6151d28186613ae9565b8093613ae9565b821190565b900390565b60011b6151c2565b811c9160021b916151bb565b60081c91811b916151b1565b60101c9160081b916151a6565b60201c9160101b9161519a565b60401c9160201b9161518c565b50600160401b9050608082901c615163565b905b82811061528357505090565b9091808216906001818418811c83018093116109fc57600a5f5265ffffffffffff80845f805160206153ea833981519152015416908616105f146152cb575050915b90615277565b9093925081018091116109fc57906152c5565b905b8281106152ec57505090565b9091808216906001818418811c83018093116109fc57600c5f5265ffffffffffff80845f805160206153aa833981519152015416908616105f14615334575050915b906152e0565b9093925081018091116109fc579061532e565b91905b8382106153575750505090565b909192808316906001818518811c83018093116109fc57855f5265ffffffffffff808460205f20015416908516105f14615396575050925b919061534a565b9094935081018091116109fc579161538f56fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c752c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a852c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212201cb1dd7ba57b95c2b2ffcd1884b7939baf48797cce5035e8e51f6853f2beef0c64736f6c63430008190033","sourceMap":"652:3172:110:-:0;;;;;;;;;;;;;-1:-1:-1;;652:3172:110;;;;;-1:-1:-1;;;;;652:3172:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;3173:36:109;;;3219:32;;8837:64:26;652:3172:110;;;;;;;;;7896:76:26;;652:3172:110;;;;7985:34:26;7981:146;;-1:-1:-1;927:17:84;;;;;652:3172:110;;;;;;;3173:36:109;652:3172:110;;;;;;;;;;3219:32:109;652:3172:110;;;;;;;;;;927:17:84;652:3172:110;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;652:3172:110;;;;;;;;;;;;;8087:29:26;;652:3172:110;;8087:29:26;7981:146;;;;;7896:76;652:3172:110;;-1:-1:-1;;;7938:23:26;;;;;652:3172:110;-1:-1:-1;652:3172:110;;;;;;-1:-1:-1;652:3172:110;;;;;-1:-1:-1;652:3172:110;;;;-1:-1:-1;;;;;652:3172:110;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104ba57806306fdde03146104b5578063095ea7b3146104b05780631415519b146104ab57806318160ddd146103895780631b66c9e1146104a65780631e9a6950146104a157806323b872dd1461049c578063248a9ca31461049757806327810b6e14610492578063281f57521461048d5780632abe3048146104885780632d73c69c146104835780632dd310001461047e5780632f2ff15d14610479578063313ce5671461047457806336568abe1461046f578063392e53cd1461046a5780634105a7dd14610465578063463616711461046057806347e7ef241461045b57806348d3b775146104565780634ff0876a1461045157806350861adc1461044c57806350f22068146104475780635346e34f1461044257806354fd4d501461043d57806357ec83cc1461043857806359f769a9146104335780635cc070761461042e57806361a8c8c4146104295780636da3e06d146104245780636ec1e3f81461041f57806370a08231146103d4578063715018a61461041a5780637278e31c1461041557806373790ab314610410578063766718081461040b578063794b15b7146104065780637953b33b146104015780637c04c80a146103fc578063810da75d146103f757806383cd9cc3146103f257806387df0788146103ed5780638b0e9f3f146103e85780638da5cb5b146103e357806391d14854146103de57806395d89b41146103d95780639d66201b146103d45780639f86fd85146103cf578063a1b12202146103ca578063a217fddf146103c5578063a21a1df9146103c0578063a2861466146103bb578063a3b54172146103b6578063a5d03223146103b1578063a9059cbb146103ac578063aabc2496146103a7578063aad3ec96146103a2578063afba70ad1461039d578063b134427114610398578063bd49c35f14610393578063bdc8144b1461038e578063bfefcd7b14610389578063c31e8dd714610384578063ce9b79301461037f578063d547741f1461037a578063d8dfeb4514610375578063db38871514610370578063dd62ed3e1461036b578063ecf7085814610366578063efb559d614610361578063f2fde38b1461035c578063f3fef3a3146103575763f5e7ee0f14610352575f80fd5b6128cd565b612827565b6127fa565b6126ab565b61268e565b612657565b61261d565b6125f2565b6125a6565b61257e565b612514565b610749565b612436565b61241c565b6123f4565b6123ca565b612309565b612152565b61211d565b6120d7565b61208a565b611f97565b611f5d565b611f43565b611f1f565b611e65565b6115d6565b611db3565b611d55565b611d21565b611cbf565b611c7b565b611ac2565b611aa9565b611a43565b611a1c565b6119dc565b61198a565b611949565b611677565b611610565b6115b1565b61156d565b61151a565b6114f0565b6114c9565b611391565b61135f565b6112ca565b6112b1565b611254565b611234565b611213565b610f2b565b610f03565b610e68565b610e23565b610dd8565b610d40565b610cf2565b610cae565b610c42565b610a56565b610988565b610960565b610927565b61088a565b6107a5565b61076b565b61070f565b61064d565b61054c565b346105105760203660031901126105105760043563ffffffff60e01b811680910361051057602090637965db0b60e01b81149081156104ff575b506040519015158152f35b6301ffc9a760e01b1490505f6104f4565b5f80fd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b906020610549928181520190610514565b90565b34610510575f366003190112610510576040515f5f805160206153ca83398151915280549061057a826128f7565b8085529160209160019182811690811561060f57506001146105b7575b6105b3866105a781880382610b86565b60405191829182610538565b0390f35b5f90815293507f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab05b8385106105fc575050505081016020016105a7826105b35f610597565b80548686018401529382019381016105df565b90508695506105b3969350602092506105a794915060ff191682840152151560051b82010192935f610597565b6001600160a01b0381160361051057565b346105105760403660031901126105105760043561066a8161063c565b60243533156106f7576001600160a01b0382169182156106df576106a78291610692336119a4565b9060018060a01b03165f5260205260405f2090565b556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b604051634a1406b160e11b81525f6004820152602490fd5b60405163e602df0560e01b81525f6004820152602490fd5b34610510575f3660031901126105105760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b34610510575f366003190112610510576020610763613fe1565b604051908152f35b34610510575f3660031901126105105760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b34610510576040366003190112610510576004356107c28161063c565b602435906107ce612e0f565b6001600160a01b0381161561087957335f908152600e602052604090206107f9906140ce565b6140ce565b82116108675761081961080a61405a565b610812613fe1565b9084614142565b918215610852578261082a92612e3e565b9061084160015f805160206154aa83398151915255565b604080519182526020820192909252f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b34610510576060366003190112610510576004356108a78161063c565b6024356108b38161063c565b604435906108c433610692856119a4565b5492600184016108e5575b6108d99350612fce565b60405160018152602090f35b828410610901576108fc836108d99503338361411b565b6108cf565b604051637dc7a0d960e11b81523360048201526024810185905260448101849052606490fd5b34610510576020366003190112610510576004355f525f8051602061548a8339815191526020526020600160405f200154604051908152f35b34610510575f366003190112610510576001546040516001600160a01b039091168152602090f35b34610510575f366003190112610510576109a0612b63565b8015610a015760015465ffffffffffff8160a01c16915f1981019081116109fc576109ce9160d01c9061295e565b81018091116109fc576109e36105b39161312d565b60405165ffffffffffff90911681529081906020820190565b61292f565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b038216820361051057565b9181601f84011215610510578235916001600160401b038311610510576020838186019501011161051057565b3461051057604036600319011261051057610a6f610a13565b6001600160401b0360243581811161051057610a8f903690600401610a29565b5050610a99612e0f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610b15575f805160206154ca833981519152549060ff8260401c16928315610b05575b505050610af3575f80fd5b60405163f92ee8a960e01b8152600490fd5b81169116101590505f8080610ae8565b604051631966391b60e11b8152600490fd5b65ffffffffffff81160361051057565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b03821117610b6657604052565b610b37565b604081019081106001600160401b03821117610b6657604052565b90601f801991011681019081106001600160401b03821117610b6657604052565b6040519061016082018281106001600160401b03821117610b6657604052565b60405190610bd482610b6b565b565b6001600160401b038111610b6657601f01601f191660200190565b929192610bfd82610bd6565b91610c0b6040519384610b86565b829481845281830111610510578281602093845f960137010152565b9080601f830112156105105781602061054993359101610bf1565b3461051057606036600319011261051057600435610c5f8161063c565b60243590610c6c82610b27565b604435906001600160401b03821161051057602092610c92610763933690600401610c27565b6001600160a01b039092165f908152600e855260409020613326565b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461051057604036600319011261051057610d3e602435600435610d158261063c565b805f525f8051602061548a833981519152602052610d39600160405f2001546134fd565b6137fd565b005b34610510575f366003190112610510575f5460405163313ce56760e01b8152906020908290600490829060101c6001600160a01b03165afa8015610dd3575f90610d95575b60405160ff919091168152602090f35b506020813d602011610dcb575b81610daf60209383610b86565b81010312610510575160ff81168103610510576105b390610d85565b3d9150610da2565b6129ad565b3461051057604036600319011261051057602435610df58161063c565b336001600160a01b03821603610e1157610d3e90600435613833565b60405163334bd91960e11b8152600490fd5b34610510575f3660031901126105105760ff60025460a01c1680610e4f575b6020906040519015158152f35b5060035460a01c60ff16610e42565b8015150361051057565b3461051057602036600319011261051057600435610e8581610e5e565b610e8d612e0f565b610e956133f2565b5f54901515908160ff8216151514610ef15760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f805160206154aa83398151915255005b60405163a741a04560e01b8152600490fd5b34610510575f36600319011261051057602065ffffffffffff60015460a01c16604051908152f35b3461051057604080600319360112610510576004803591610f4b8361063c565b610f53612e0f565b6001600160a01b0391838316908115611205575f5460ff8116806111ec575b6111dd5783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610dd3575f936111ba575b50610fc790602435903090339061452b565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610dd357611006935f9261118d575b5050612951565b93841561117e5760081c60ff1680611169575b61115b5750906105b3916110ca61102e61405a565b9561107761103a613fe1565b6110626110488a838b614142565b9961105c8a6110564261312d565b9261297f565b90613c7c565b5050611071896110564261312d565b90613d5c565b50506001600160a01b0381165f908152600e60205260409020906110c4886110bf6107f46110a44261312d565b6001600160a01b039095165f908152600e6020526040902090565b61297f565b91613e38565b5050815184815260208101869052819033907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a361111860015f805160206154aa83398151915255565b81518581525f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090a35191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50611176846110bf61405a565b815410611019565b50825163070f6eed60e11b8152fd5b6111ac9250803d106111b3575b6111a48183610b86565b8101906138c5565b5f80610fff565b503d61119a565b610fc79193506111d690853d87116111b3576111a48183610b86565b9290610fb5565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610f72565b8251630d534ce360e11b8152fd5b34610510575f36600319011261051057602060ff5f54166040519015158152f35b34610510575f36600319011261051057602060015460d01c604051908152f35b34610510575f36600319011261051057602060ff60025460a01c166040519015158152f35b9060406003198301126105105760043561129281610b27565b91602435906001600160401b0382116105105761054991600401610c27565b346105105760206107636112c436611279565b90613190565b34610510576020366003190112610510576004356112e781610e5e565b6112ef612e0f565b6112f761344f565b5f54901515908160ff8260081c16151514610ef15761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610d3e60015f805160206154aa83398151915255565b34610510575f3660031901126105105760206001600160401b035f805160206154ca8339815191525416604051908152f35b34610510576060366003190112610510576113aa610a13565b6024356113b68161063c565b6001600160401b0391604435838111610510576113d7903690600401610a29565b5f805160206154ca8339815191529491855494838616806114b85760ff8760401c169081156114ab575b50610af3577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966114a69661146e958716906001600160401b0319161790556114695f805160206154ca833981519152600160401b68ff000000000000000019825416179055565b6129b8565b5f805160206154ca833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f611401565b60405162dc149f60e41b8152600490fd5b346105105760203660031901126105105760206107636004356114eb8161063c565b612acc565b34610510576020366003190112610510576004355f526006602052602060405f2054604051908152f35b34610510575f3660031901126105105760015465ffffffffffff611550818360a01c1692611546612b63565b9060d01c9061295e565b82018092116109fc5761156460209261312d565b60405191168152f35b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610510575f36600319011261051057602060ff60035460a01c166040519015158152f35b34610510576020366003190112610510576004356115f38161063c565b60018060a01b03165f52600e602052602061076360405f206140ce565b34610510575f36600319011261051057611628613ab1565b5f8051602061542a83398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346105105760403660031901126105105760043560243561169781610b27565b61169f612e0f565b6003546116bc906001600160a01b03165b6001600160a01b031690565b3303611937576116ca612b63565b906116d481612b97565b9082151580611926575b801561191d575b61190b576105b3937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c79261171761405a565b9461173261172482612971565b5f52600660205260405f2090565b54908281036118255750611746818761297f565b8381188185100281189687806117de575b50505050505b836117aa575b6040805191825265ffffffffffff929092166020820152908101839052606090a161179a60015f805160206154aa83398151915255565b6040519081529081906020820190565b5f546117d99085906117c79060101c6001600160a01b03166116b0565b6001546001600160a01b031690613ef6565b611763565b61181a93610fff8361105c6118046117fd611724986118149888613af3565b8096612951565b9461180e4261312d565b92612951565b92612971565b555f80808087611757565b9150611839825f52600660205260405f2090565b5490611849816110bf848a61297f565b908482188286100282189788611864575b505050505061175d565b6118d9938361188c936118998c6118946118826118ca998884613af3565b9788958584613af3565b948592612951565b612951565b938484106118e4575b610fff9061105c6118b895969761180e4261312d565b6118c461172487612971565b55612951565b915f52600660205260405f2090565b555f8080808061185a565b91611900610fff916118fa866118b89798612951565b9061297f565b8594509290506118a2565b604051635e18d2a560e01b8152600490fd5b508282116116e5565b5061193083612943565b82106116de565b60405163dabc4ad960e01b8152600490fd5b34610510575f3660031901126105105760015465ffffffffffff808260a01c1691611972612b63565b600181018091116109fc576115509160d01c9061295e565b34610510575f366003190112610510576020610763612b63565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b34610510576020366003190112610510576004356119f98161063c565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b34610510576020366003190112610510576020610763600435611a3e81610b27565b612b97565b3461051057604036600319011261051057600435611a608161063c565b6024356001600160401b038082116105105736602383011215610510578160040135908111610510573660248260051b84010111610510576105b392602461179a930190612bd2565b34610510576020610763611abc36611279565b90613271565b3461051057602080600319360112610510576004803590611ae28261063c565b611aea612e0f565b60025460a01c60ff16611c6c576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f91611c3f575b5015611c2f5760405163fbfa77cf60e01b8152838516949082818581895afa928315610dd3575f93611c00575b505030911603611bf15750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610d3e60015f805160206154aa83398151915255565b60405163b9f0f17160e01b8152fd5b611c20929350803d10611c28575b611c188183610b86565b810190612d2b565b905f80611b84565b503d611c0e565b506040516324e5af8d60e21b8152fd5b611c5f9150823d8411611c65575b611c578183610b86565b810190612d0b565b5f611b57565b503d611c4d565b604051631380833b60e01b8152fd5b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610510575f36600319011261051057611cd7612b63565b611cdf61405a565b90805f52600660205260405f205482018092116109fc57600181018091116109fc575f52600660205260405f205481018091116109fc57602090604051908152f35b34610510575f366003190112610510575f8051602061542a833981519152546040516001600160a01b039091168152602090f35b3461051057604036600319011261051057602060ff611da7602435611d798161063c565b6004355f525f8051602061548a833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b34610510575f366003190112610510576040515f5f8051602061540a833981519152805490611de1826128f7565b8085529160209160019182811690811561060f5750600114611e0d576105b3866105a781880382610b86565b5f90815293507f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa5b838510611e52575050505081016020016105a7826105b35f610597565b8054868601840152938201938101611e35565b346105105760408060031936011261051057600435611e838161063c565b602435906001600160401b038211610510575f8091611ea9611f0d943690600401610a29565b908187519283928337810184815203915af43d15611f1557611eff3d611ece81610bd6565b90611edb86519283610b86565b81523d5f602083013e5b845194859315156020850152808401526060830190610514565b03601f198101835282610b86565b805190602001fd5b611eff6060611ee5565b34610510575f36600319011261051057602060ff5f5460081c166040519015158152f35b34610510575f3660031901126105105760206040515f8152f35b34610510575f3660031901126105105760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b3461051057604036600319011261051057600435611fb48161063c565b602435611fc081610e5e565b611fc8612e0f565b611fd06134a6565b6001600160a01b038216918215612078575f8381526005602052604090205460ff16151582151514610ef1576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a629161205f9161204d908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610d3e60015f805160206154aa83398151915255565b604051630da30f6560e31b8152600490fd5b346105105760403660031901126105105760206120ce6024356120ac8161063c565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b3461051057604036600319011261051057602060ff611da76024356120fb8161063c565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b346105105760403660031901126105105761214760043561213d8161063c565b6024359033612fce565b602060405160018152f35b34610510576020806003193601126105105760048035906121728261063c565b61217a612e0f565b60035460a01c60ff166122fa576001600160a01b038281169390846121e8575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610d3e60015f805160206154aa83398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f916122dd575b50156122cc5760405163fbfa77cf60e01b815282818581895afa928315610dd3575f936122ad575b50503091160361229e5750600380546001600160a01b0319166001600160a01b039092169190911790555f80808061219a565b604051633f3e089160e21b8152fd5b6122c4929350803d10611c2857611c188183610b86565b905f8061226b565b60405163dabc4ad960e01b81528390fd5b6122f49150833d8511611c6557611c578183610b86565b5f612243565b60405163703fe2e560e01b8152fd5b34610510576040366003190112610510576004356123268161063c565b60243590612332612e0f565b6001600160a01b03918183169081156123b8576123636105b39461235583613f45565b9485915f5460101c16613ef6565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f805160206154aa833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b34610510576020366003190112610510576004355f526007602052602060405f2054604051908152f35b34610510575f366003190112610510576003546040516001600160a01b039091168152602090f35b34610510575f36600319011261051057602061076361405a565b3461051057602036600319011261051057600435612452612e0f565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff16156124f657508060045414610ef1576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f805160206154aa83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b34610510576020366003190112610510576004356125318161063c565b612539612b63565b61254282612acc565b9161254d8183612db1565b83018093116109fc57600182018092116109fc5761256a91612db1565b81018091116109fc57602090604051908152f35b34610510575f366003190112610510576002546040516001600160a01b039091168152602090f35b3461051057604036600319011261051057610d3e6024356004356125c98261063c565b805f525f8051602061548a8339815191526020526125ed600160405f2001546134fd565b613833565b34610510575f366003190112610510575f5460405160109190911c6001600160a01b03168152602090f35b34610510575f3660031901126105105760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b346105105760403660031901126105105760206120ce6004356126798161063c565b610692602435916126898361063c565b6119a4565b34610510575f366003190112610510576020600454604051908152f35b34610510576060366003190112610510576004356126c88161063c565b602435906126d582610b27565b6001600160401b0391604435838111610510576126f6903690600401610a29565b9092604093845161270681610b4b565b60608152606060208201526060868201529280612765575b6105b3866127568787612750612737898484519161298c565b9285612747602085015183613271565b93015190613190565b91614142565b90519081529081906020820190565b8101939250602081850312610510578035908682116105105701926060848203126105105784519561279687610b4b565b843581811161051057826127ab918701610c27565b8752602085013581811161051057826127c5918701610c27565b602088015285850135908111610510576105b3966127ee61275093612737936127569801610c27565b8782015293945061271e565b3461051057602036600319011261051057610d3e60043561281a8161063c565b612822613ab1565b612d40565b34610510576040366003190112610510576004356128448161063c565b60243561284f612e0f565b6001600160a01b038216156108795780156128bb5761287e61286f613fe1565b61287761405a565b9083614bf4565b335f908152600e60205260409020909290612898906140ce565b83116128a95761082a918391612e3e565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b346105105760403660031901126105105760206107636024356128ef8161063c565b600435612db1565b90600182811c92168015612925575b602083101461291157565b634e487b7160e01b5f52602260045260245ffd5b91607f1691612906565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116109fc57565b919082039182116109fc57565b818102929181159184041417156109fc57565b90600182018092116109fc57565b919082018092116109fc57565b6001600160a01b03165f908152600e60205260409020610549929190613326565b6040513d5f823e3d90fd5b916129f5926129c5614583565b6129cd614583565b60015f805160206154aa833981519152556001600160a01b038116612ab2575b503691610bf1565b80516020908201818101828483031261051057828401516001600160401b039485821161051057019283926101a093849103126105105760405193612a3985610b4b565b612a45838383016138df565b8552610180810151868111610510578383612a62928401016139a8565b9382860194855281015195861161051057612a8a612aa99383610bd498612aa49401016139a8565b94604081019586525191611eff60405193849283016139ee565b6145c6565b51905190614982565b612ac690612abe614583565b612822614583565b5f6129ed565b6001600160a01b03165f908152600e60205260409020612aeb906140ce565b612af361405a565b612afb613fe1565b90600181018091116109fc57600182018092116109fc5761054992613af3565b65ffffffffffff91821690821603919082116109fc57565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff809116918215612b5e57160490565b612b33565b612b6c4261312d565b612b93600154612b8965ffffffffffff93848360a01c1690612b1b565b9060d01c90612b47565b1690565b6001549065ffffffffffff91828160a01c16918284821610612bc057612b9392612b8991612b1b565b60405163b7d0949760e01b8152600490fd5b90612bdb612e0f565b5f926001600160a01b0383169283156123b8578115612c93575f5b828110612c7157505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d279286929091612c46918491612c419060101c6001600160a01b03166116b0565b613ef6565b612c57604051928392339684612cce565b0390a390610bd460015f805160206154aa83398151915255565b94612c8c6001916118fa612c86898789612cb9565b35613f45565b9501612bf6565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612cc95760051b0190565b612ca5565b604080825281018390529392916001600160fb1b0381116105105760209160609160051b809183880137850101930152565b5190610bd482610e5e565b90816020910312610510575161054981610e5e565b5190610bd48261063c565b9081602091031261051057516105498161063c565b6001600160a01b03908116908115612d99575f8051602061542a83398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612dd790825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116109fc57600182018092116109fc5761054992613af3565b5f805160206154aa8339815191526002815414612e2c5760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e6020526040812093949390929190612e7d90612e604261312d565b335f908152600e602052604090206110c4908990611894906140ce565b5050612e97612e8b4261312d565b61107187611894613fe1565b5050612eb1612ea54261312d565b61105c8461189461405a565b505081612f4382610692612ecb612ec6612b63565b612971565b612f22612ee0825f52600660205260405f2090565b54612ef3835f52600760205260405f2090565b54612f0a612f0283838b614142565b9a8b9361297f565b612f1c855f52600660205260405f2090565b5561297f565b612f34825f52600760205260405f2090565b555f52600860205260405f2090565b612f4e84825461297f565b9055604080519182526020820187905281018390526001600160a01b03919091169033907febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f90606090a36040519384529233907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9080602081015b0390a3565b916001600160a01b03808416929083156131155781169384156130fd576001600160a01b0381165f908152600e6020526040902061300b906140ce565b908382106130cb57612fc99261306d7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef959361305a6130b99460018060a01b03165f52600e60205260405f2090565b90856130654261312d565b910391613e38565b50506001600160a01b0381165f908152600e6020526040902090836130b26107f46130974261312d565b6001600160a01b039094165f908152600e6020526040902090565b0191613e38565b50506040519081529081906020820190565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b81525f6004820152602490fd5b604051634b637e8f60e11b81525f6004820152602490fd5b65ffffffffffff90818111613140571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b90816020910312610510575163ffffffff811681036105105790565b90600163ffffffff809316019182116109fc57565b9080511561326757806020806131ab9351830101910161315f565b6131b4816143b3565b906131c5825165ffffffffffff1690565b9065ffffffffffff808516921682811461325b57821191826131fb575b50506131f2575061054990614163565b60209150015190565b909150613209600a54612943565b63ffffffff831614918215613222575b50505f806131e2565b61325391925061323c6132376132489261317b565b6143b3565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80613219565b50505060209150015190565b5061054990614163565b9080511561331c578060208061328c9351830101910161315f565b6132958161443d565b906132a6825165ffffffffffff1690565b9065ffffffffffff808516921682811461325b57821191826132d3575b50506131f257506105499061422a565b9091506132e1600c54612943565b63ffffffff8316149182156132fa575b50505f806132c3565b61331491925061323c61330f6132489261317b565b61443d565b115f806132f1565b506105499061422a565b918051156133e857806020806133419351830101910161315f565b9161334c83826144bd565b9261335d845165ffffffffffff1690565b9065ffffffffffff80851692168281146133dc5782119182613393575b505061338a5761054992506142ea565b50506020015190565b9091506133a08354612943565b63ffffffff8316149182156133b9575b50505f8061337a565b6133d491925061323c6133ce6132489261317b565b856144bd565b115f806133b0565b50505050506020015190565b50610549916142ea565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b5416156124f65750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff90613445565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff90613445565b5f8181525f8051602061548a83398151915260209081526040808320338452909152902060ff90613445565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f8051602061548a8339815191529060ff166135d4575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f8051602061548a8339815191529060ff905b54166136a9575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f8051602061548a8339815191529060ff90613645565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f8051602061548a8339815191529060ff90613645565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f8051602061548a8339815191529060ff90613645565b5f8181525f8051602061548a833981519152602081815260408084206001600160a01b038716855290915290912060ff90613645565b5f8181525f8051602061548a833981519152602081815260408084206001600160a01b03871685529091529091205460ff16156136a9575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b90816020910312610510575190565b5190610bd482610b27565b919082610160910312610510576138f4610ba7565b916138fe81612d20565b835261390c60208201612d20565b602084015261391d604082016138d4565b604084015261392e60608201612d00565b606084015261393f60808201612d00565b608084015260a081015160a084015261395a60c08201612d20565b60c084015261396b60e08201612d20565b60e084015261010061397e818301612d20565b90840152610120613990818301612d20565b908401526139a2610140809201612d20565b90830152565b81601f82011215610510578051906139bf82610bd6565b926139cd6040519485610b86565b8284526020838301011161051057815f9260208093018386015e8301015290565b81516001600160a01b0316815261016081019291610bd491906020818101516001600160a01b03169083015260408181015165ffffffffffff169083015260608181015115159083015260808181015115159083015260a0818101519083015260c0808201516001600160a01b03169083015260e0818101516001600160a01b031690830152610100818101516001600160a01b031690830152610120818101516001600160a01b031690830152610140908101516001600160a01b0316910152565b5f8051602061542a833981519152546001600160a01b03163303613ad157565b60405163118cdaa760e01b8152336004820152602490fd5b8115612b5e570490565b91818302915f1981850993838086109503948086039514613b735784831115613b665790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b8215600302601118614aa7565b5050906105499250613ae9565b600b54811015612cc957600b5f525f8051602061546a83398151915201905f90565b600d54811015612cc957600d5f525f8051602061544a83398151915201905f90565b8054821015612cc9575f5260205f2001905f90565b600d54600160401b811015610b66576001810180600d55811015612cc957600d5f525f8051602061544a8339815191520155565b600b54600160401b811015610b66576001810180600b55811015612cc957600b5f525f8051602061546a8339815191520155565b90815491600160401b831015610b665782613c64916001610bd495018155613bc4565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613d27575b50613c94614ab7565b50929091815492613ca361405a565b9481613d12575b5015613cef57505f1982018281116109fc5781541115612cc9575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613d03926001600160d01b03169150614f21565b5050613d0e83613bd9565b9190565b65ffffffffffff83811691161490505f613caa565b600160401b811015610b665760018101808455811015612cc9575f908382525f8051602061544a83398151915201555f613c8b565b919091600b9081548015613e03575b50613d74614b0c565b50929091815492613d83613fe1565b9481613dee575b5015613dcf57505f1982018281116109fc5781541115612cc9575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b613de3926001600160d01b03169150614ff1565b5050613d0e83613c0d565b65ffffffffffff83811691161490505f613d8a565b600160401b811015610b665760018101808455811015612cc9575f908382525f8051602061546a83398151915201555f613d6b565b90929192600182019081548015613ec6575b5084613e5584614b61565b50949092845493613e65836140ce565b9681613eb1575b5015613e8e575050505f1981019081116109fc57613c648591613d0e93613bc4565b613d0e949293613eaa926001600160d01b039091169190615090565b5050613c41565b65ffffffffffff83811691161490505f613e6c565b600160401b811015610b6657806001613ee29201845583613bc4565b8154905f199060031b1b191690555f613e4a565b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815260808101916001600160401b03831182841017610b6657610bd492604052614b9a565b90613f4e612b63565b821015613fcf575f82815260096020908152604080832033845290915290205460ff16613fbd57613f7f3383612db1565b918215613fab575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600a548061402157505f5b6001600160d01b0381161561401c57600b54811015612cc957600b5f525f8051602061546a833981519152015490565b505f90565b805f198101116109fc57600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c613fec565b600c548061409557505f5b6001600160d01b0381161561401c57600d54811015612cc957600d5f525f8051602061544a833981519152015490565b805f198101116109fc57600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c614065565b8054806140fd57505f5b6001600160d01b038116156135d45760016140f39201613bc4565b90549060031b1c90565b5f199080828101116109fc57825f5260205f2001015460301c6140d8565b906001600160a01b03808316156106f7578116156106df5761069261413f926119a4565b55565b9190600181018091116109fc57600182018092116109fc5761054992613af3565b600a54905f8291600584116141d1575b61417d9350615275565b806141a057505f5b6001600160d01b0381161561401c576140f361054991613b80565b6141c56141af6141cc92612943565b600a5f525f805160206153ea8339815191520190565b5460301c90565b614185565b91926141dc8161514a565b81039081116109fc5761417d93600a5f5265ffffffffffff80835f805160206153ea833981519152015416908516105f14614218575091614173565b92915061422490612971565b90614173565b600c54905f829160058411614291575b61424493506152de565b8061426757505f5b6001600160d01b0381161561401c576140f361054991613ba2565b6141c561427661428c92612943565b600c5f525f805160206153aa8339815191520190565b61424c565b919261429c8161514a565b81039081116109fc5761424493600c5f5265ffffffffffff80835f805160206153aa833981519152015416908516105f146142d857509161423a565b9291506142e490612971565b9061423a565b908154905f82916005841161434d575b614305935084615347565b8061432d57505f905b6001600160d01b038216156135d4576105499160016140f39201613bc4565b6141c561433c61434792612943565b835f5260205f200190565b9061430e565b91926143588161514a565b81039081116109fc5761430593855f5265ffffffffffff808360205f20015416908516105f146143895750916142fa565b92915061439590612971565b906142fa565b604051906143a882610b6b565b5f6020838281520152565b6143bb61439b565b506143c461439b565b50600a54811015612cc957600a5f526020604051916143e283610b6b565b5f805160206153ea83398151915201549165ffffffffffff83169283825260301c9182910152600b54811015612cc957600b5f525f8051602061546a83398151915201546040519161443383610b6b565b8252602082015290565b61444561439b565b5061444e61439b565b50600c54811015612cc957600c5f5260206040519161446c83610b6b565b5f805160206153aa83398151915201549165ffffffffffff83169283825260301c9182910152600d54811015612cc957600d5f525f8051602061544a83398151915201546040519161443383610b6b565b90602060016144e161450d936144d161439b565b506144da61439b565b5085613bc4565b5093604051946144f086610b6b565b549465ffffffffffff86169586825260301c938491015201613bc4565b9054906040519261451d84610b6b565b835260031b1c602082015290565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b03841117610b6657610bd492604052614b9a565b60ff5f805160206154ca8339815191525460401c161561459f57565b604051631afcd79f60e31b8152600490fd5b906101608282031261051057610549916138df565b6145d990602080825183010191016145b1565b80516001600160a01b03919082161561497057604080820165ffffffffffff614608825165ffffffffffff1690565b161561495f5760c083018051909290614629906001600160a01b03166116b0565b15614810575b509161475c610140926146fb6146d66147ba9661467d614655875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b0390921691909117905561323c6146ad4261312d565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b61471b61470b6060850151151590565b60ff80195f541691151516175f55565b61474261472b6080850151151590565b61ff005f5491151560081b169061ff001916175f55565b61474f60a0840151600455565b516001600160a01b031690565b848116614800575b5060e08101516001600160a01b03168481166147f0575b506101008101516001600160a01b03168481166147e0575b506101208101516001600160a01b03168481166147d0575b5001516001600160a01b031690565b9081166147c45750565b6147cd9061378e565b50565b6147d99061371f565b505f6147ab565b6147e9906136b0565b505f614793565b6147f9906135da565b505f61477b565b61480990613529565b505f614764565b60e0840151614827906001600160a01b03166116b0565b156148fc575b610120840151614845906001600160a01b03166116b0565b61462f576080840151156148b25760a08401511580614893575b61488357509161475c610140926146fb6146d66147ba965b9496505050925061462f565b5163183c854560e21b8152600490fd5b506101408401516148ac906001600160a01b03166116b0565b1561485f565b60a0840151158015906148dc575b61488357509161475c610140926146fb6146d66147ba96614877565b506101408401516148f5906001600160a01b03166116b0565b15156148c0565b6060840151156149325761010084015161491e906001600160a01b03166116b0565b61482d575163183c854560e21b8152600490fd5b61010084015161494a906001600160a01b03166116b0565b1561482d575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b919061498c614583565b614994614583565b82516001600160401b038111610b66575f805160206153ca833981519152906149c6816149c184546128f7565b614c2d565b602080601f8311600114614a0d575090806149fb92610bd496975f92614a02575b50508160011b915f199060031b1c19161790565b9055614d1f565b015190505f806149e7565b90601f19831696614a4b5f805160206153ca8339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab090565b925f905b898210614a8f57505090839291600194610bd4989910614a77575b505050811b019055614d1f565b01515f1960f88460031b161c191690555f8080614a6a565b80600185968294968601518155019501930190614a4f565b634e487b715f526020526024601cfd5b600c5480614ac857505f905f905f90565b805f198101116109fc57600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460019165ffffffffffff82169160301c90565b600a5480614b1d57505f905f905f90565b805f198101116109fc57600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460019165ffffffffffff82169160301c90565b805480614b725750505f905f905f90565b5f199181838101116109fc575f5260205f2001015460019165ffffffffffff82169160301c90565b905f602091828151910182855af1156129ad575f513d614beb57506001600160a01b0381163b155b614bc95750565b604051635274afe760e01b81526001600160a01b039091166004820152602490fd5b60011415614bc2565b9190600181018091116109fc57600182018092116109fc57614c17828285613af3565b928215612b5e5709151581018091116109fc5790565b601f8111614c39575050565b5f805160206153ca8339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0906020601f840160051c83019310614c9c575b601f0160051c01905b818110614c91575050565b5f8155600101614c86565b9091508190614c7d565b601f8111614cb2575050565b5f8051602061540a8339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa906020601f840160051c83019310614d15575b601f0160051c01905b818110614d0a575050565b5f8155600101614cff565b9091508190614cf6565b9081516001600160401b038111610b66575f8051602061540a83398151915290614d5281614d4d84546128f7565b614ca6565b602080601f8311600114614d8757508190614d839394955f92614a025750508160011b915f199060031b1c19161790565b9055565b90601f19831695614dc55f8051602061540a8339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa90565b925f905b888210614e0057505083600195969710614de8575b505050811b019055565b01515f1960f88460031b161c191690555f8080614dde565b80600185968294968601518155019501930190614dc9565b600c5490600160401b821015610b66576001820180600c55821015612cc957600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206153aa83398151915290910155565b600a5490600160401b821015610b66576001820180600a55821015612cc957600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206153ea83398151915290910155565b8054600160401b811015610b6657614ee391600182018155613bc4565b614f0e57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c549192918015614fc857614276614f3991612943565b9081549165ffffffffffff90818416918316808311614fb657869203614f7e57614f7792509065ffffffffffff82549181199060301b169116179055565b60301c9190565b5050614fb190614f9d614f8f610bc7565b65ffffffffffff9092168252565b6001600160d01b0385166020820152614e18565b614f77565b604051632520601d60e01b8152600490fd5b50614fec90614fd8614f8f610bc7565b6001600160d01b0384166020820152614e18565b5f9190565b600a54919291801561506c576141af61500991612943565b9081549165ffffffffffff90818416918316808311614fb65786920361504757614f7792509065ffffffffffff82549181199060301b169116179055565b5050614fb190615058614f8f610bc7565b6001600160d01b0385166020820152614e6f565b50614fec9061507c614f8f610bc7565b6001600160d01b0384166020820152614e6f565b80549293928015615125576150a76150b291612943565b825f5260205f200190565b9182549265ffffffffffff91828516928116808411614fb6578793036150f15750614f7792509065ffffffffffff82549181199060301b169116179055565b915050614fb191615111615103610bc7565b65ffffffffffff9093168352565b6001600160d01b0386166020830152614ec6565b5090614fec91615136615103610bc7565b6001600160d01b0385166020830152614ec6565b600181111561054957600181600160801b811015615263575b61520b6152016151f76151ed6151e36151d961521797600488600160401b6152129a1015615256575b640100000000811015615249575b6201000081101561523c575b610100811015615230575b6010811015615224575b101561521c575b60030260011c6151d2818b613ae9565b0160011c90565b6151d2818a613ae9565b6151d28189613ae9565b6151d28188613ae9565b6151d28187613ae9565b6151d28186613ae9565b8093613ae9565b821190565b900390565b60011b6151c2565b811c9160021b916151bb565b60081c91811b916151b1565b60101c9160081b916151a6565b60201c9160101b9161519a565b60401c9160201b9161518c565b50600160401b9050608082901c615163565b905b82811061528357505090565b9091808216906001818418811c83018093116109fc57600a5f5265ffffffffffff80845f805160206153ea833981519152015416908616105f146152cb575050915b90615277565b9093925081018091116109fc57906152c5565b905b8281106152ec57505090565b9091808216906001818418811c83018093116109fc57600c5f5265ffffffffffff80845f805160206153aa833981519152015416908616105f14615334575050915b906152e0565b9093925081018091116109fc579061532e565b91905b8382106153575750505090565b909192808316906001818518811c83018093116109fc57855f5265ffffffffffff808460205f20015416908516105f14615396575050925b919061534a565b9094935081018091116109fc579161538f56fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c752c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a852c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212201cb1dd7ba57b95c2b2ffcd1884b7939baf48797cce5035e8e51f6853f2beef0c64736f6c63430008190033","sourceMap":"652:3172:110:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;652:3172:110;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;652:3172:110;;;;;;;;;;3551:87:23;-1:-1:-1;;;1134:40:32;;-1:-1:-1;3551:87:23;;;652:3172:110;-1:-1:-1;652:3172:110;;;;;;;;;;;;;;;;;;;-1:-1:-1;652:3172:110;;;;;;;;-1:-1:-1;;652:3172:110;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;-1:-1:-1;;652:3172:110;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:110;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;652:3172:110;;;;;;;-1:-1:-1;;;;652:3172:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:110;;;;;:::o;:::-;;;;;;-1:-1:-1;;652:3172:110;;;;;;;;;:::i;:::-;;;966:10:28;11141:19:27;11137:89;;-1:-1:-1;;;;;652:3172:110;;;11239:21:27;;11235:90;;11334:29;966:10:28;;11334:20:27;966:10:28;11334:20:27;:::i;:::-;652:3172:110;;;;;;;;;;;;;;;;11334:29:27;652:3172:110;;;;;;11415:31:27;652:3172:110;966:10:28;11415:31:27;;652:3172:110;;;10117:4:27;652:3172:110;;;11235:90:27;652:3172:110;;-1:-1:-1;;;11283:31:27;;-1:-1:-1;652:3172:110;11283:31:27;;652:3172:110;;;11283:31:27;11137:89;652:3172:110;;-1:-1:-1;;;11183:32:27;;11158:1;652:3172:110;11183:32:27;;652:3172:110;;;11183:32:27;652:3172:110;;;;;;-1:-1:-1;;652:3172:110;;;;;;;966:38:109;652:3172:110;;;;;;;;;-1:-1:-1;;652:3172:110;;;;;4803:22:109;;:::i;:::-;652:3172:110;;;;;;;;;;;;-1:-1:-1;;652:3172:110;;;;;;;821:37:109;652:3172:110;;;;;;;;;-1:-1:-1;;652:3172:110;;;;;;;;;:::i;:::-;;;3361:103:30;;;:::i;:::-;-1:-1:-1;;;;;652:3172:110;;5525:21:108;5521:75;;5634:10;652:3172:110;;;;5606:15:109;652:3172:110;;;;;5606:33:109;;;:::i;:24::-;:33;:::i;:::-;5610:35:108;;5606:88;;1057:70:100;5173:21:109;;:::i;:::-;4803:22;;:::i;:::-;1057:70:100;;;:::i;:::-;5801:20:108;;;5797:82;;5904:43;;;;:::i;:::-;3426:1:30;;1949;-1:-1:-1;;;;;;;;;;;652:3172:110;3860:283:30;3426:1;652:3172:110;;;;;;;;;;;;;;5797:82:108;652:3172:110;;-1:-1:-1;;;;;;5844:24:108;;652:3172:110;;5844:24:108;5606:88;652:3172:110;;-1:-1:-1;;;5668:15:108;;652:3172:110;;5668:15:108;5521:75;652:3172:110;;-1:-1:-1;;;5569:16:108;;652:3172:110;;5569:16:108;652:3172:110;;;;;;-1:-1:-1;;652:3172:110;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;966:10:28;4867:29:27;966:10:28;4867:20:27;;;:::i;:29::-;652:3172:110;;11910:37:27;;;11906:310;;652:3172:110;6198:5:27;;;;:::i;:::-;652:3172:110;;4867:13:27;652:3172:110;;;;;11906:310:27;11967:24;;;11963:130;;12185:5;652:3172:110;6198:5:27;652:3172:110;;966:10:28;12185:5:27;;:::i;:::-;11906:310;;11963:130;652:3172:110;;-1:-1:-1;;;12018:60:27;;966:10:28;652:3172:110;12018:60:27;;652:3172:110;;;;;;;;;;;;;;;12018:60:27;652:3172:110;;;;;;-1:-1:-1;;652:3172:110;;;;;;-1:-1:-1;652:3172:110;-1:-1:-1;;;;;;;;;;;652:3172:110;;;4919:24:23;652:3172:110;-1:-1:-1;652:3172:110;4919:24:23;652:3172:110;;;;;;;;;;;;;-1:-1:-1;;652:3172:110;;;;;;;;-1:-1:-1;;;;;652:3172:110;;;;;;;;;;;;;;-1:-1:-1;;652:3172:110;;;;4084:14:109;;:::i;:::-;4112:10;;4108:65;;4190:17;652:3172:110;;;;;;11930:17:27;;;652:3172:110;;;;;;;4210:27:109;652:3172:110;;;4210:27:109;;:::i;:::-;652:3172:110;;;;;;;4189:60:109;652:3172:110;4189:60:109;;:::i;:::-;652:3172:110;;;;;;;;;;;;;;;;;;:::i;4108:65:109:-;652:3172:110;;-1:-1:-1;;;4145:17:109;;652:3172:110;;4145:17:109;652:3172:110;;;;-1:-1:-1;;;;;652:3172:110;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:110;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;652:3172:110;;;;;;:::i;:::-;-1:-1:-1;;;;;652:3172:110;;;;;;;;;;;;;;:::i;:::-;3361:103:30;;;;:::i;:::-;1673:7:84;-1:-1:-1;;;;;652:3172:110;1659:10:84;:21;1655:71;;-1:-1:-1;;;;;;;;;;;652:3172:110;;;;;;;6431:44:26;;;;;652:3172:110;6427:105:26;;;;;-1:-1:-1;15924:8:108;;6427:105:26;652:3172:110;;-1:-1:-1;;;6498:23:26;;652:3172:110;;6498:23:26;6431:44;652:3172:110;;;;6450:25:26;;;-1:-1:-1;6431:44:26;;;;;1655:71:84;652:3172:110;;-1:-1:-1;;;1703:12:84;;652:3172:110;;1703:12:84;652:3172:110;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:110;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;652:3172:110;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:110;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;652:3172:110;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;652:3172:110;;;;;;-1:-1:-1;;652:3172:110;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;652:3172:110;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;652:3172:110;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;652:3172:110;;;;;;;5383:59:109;652:3172:110;;;;;;:::i;:::-;-1:-1:-1;;;;;652:3172:110;;;-1:-1:-1;652:3172:110;;;5383:15:109;652:3172:110;;;;;5383:59:109;:::i;652:3172:110:-;;;;;;-1:-1:-1;;652:3172:110;;;;;;655:32:84;-1:-1:-1;;;;;652:3172:110;;;;;;;;;;;;-1:-1:-1;;652:3172:110;;;;5350:25:23;652:3172:110;;;;;;;:::i;:::-;;-1:-1:-1;652:3172:110;-1:-1:-1;;;;;;;;;;;652:3172:110;;3202:4:23;4919:24;652:3172:110;-1:-1:-1;652:3172:110;4919:24:23;652:3172:110;3202:4:23;:::i;:::-;5350:25;:::i;:::-;652:3172:110;;;;;;;-1:-1:-1;;652:3172:110;;;;;;;;-1:-1:-1;;;1109:37:110;;652:3172;1109:37;;652:3172;;;;;;;;-1:-1:-1;;;;;652:3172:110;1109:37;;;;;;652:3172;1109:37;;;652:3172;;;;;;;;;;;;;1109:37;;;;;;;;;;;;;;;;:::i;:::-;;;652:3172;;;;;;;;;;;;;1109:37;;;;;;-1:-1:-1;1109:37:110;;;;:::i;652:3172::-;;;;;;-1:-1:-1;;652:3172:110;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;652:3172:110;;6441:34:23;6437:102;;6549:37;652:3172:110;;;6549:37:23;:::i;6437:102::-;652:3172:110;;-1:-1:-1;;;6498:30:23;;652:3172:110;;6498:30:23;652:3172:110;;;;;;-1:-1:-1;;652:3172:110;;;;;1524:22:108;652:3172:110;;;;1524:46:108;;;652:3172:110;;;;;;;;;;;1524:46:108;-1:-1:-1;1550:20:108;652:3172:110;;;;;1524:46:108;;652:3172:110;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;652:3172:110;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;652:3172:110;;;;;;;;;;;9542:26:108;9538:76;;-1:-1:-1;;652:3172:110;;;;;-1:-1:-1;652:3172:110;;;;;;9665:27:108;;652:3172:110;;9665:27:108;1949:1:30;-1:-1:-1;;;;;;;;;;;652:3172:110;;9538:76:108;652:3172:110;;-1:-1:-1;;;9591:12:108;;652:3172:110;;9591:12:108;652:3172:110;;;;;;-1:-1:-1;;652:3172:110;;;;;;1718:31:109;652:3172:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;-1:-1:-1;;;;;652:3172:110;;;;;3474:24:108;;3470:81;;-1:-1:-1;652:3172:110;;;;3565:55:108;;;652:3172:110;3561:118:108;;652:3172:110;;-1:-1:-1;;;3713:43:108;;;3750:4;3713:43;;;652:3172:110;;;;;;;;;;;;;;;;;;;;;;;;;3713:43:108;;;;;;;;;;-1:-1:-1;3713:43:108;;;652:3172:110;;3829:6:108;652:3172:110;;;3750:4:108;;3802:10;;3829:6;;:::i;:::-;-1:-1:-1;652:3172:110;;;3864:43:108;;;3750:4;3864:43;;;652:3172:110;;;;;;;;;;3864:43:108;652:3172:110;;;;;;3864:43:108;652:3172:110;;;;;3864:43:108;;;;;;;:59;:43;-1:-1:-1;3864:43:108;;;652:3172:110;3864:59:108;;;:::i;:::-;3938:20;;;3934:79;;652:3172:110;;;;;4027:64:108;;652:3172:110;4023:123:108;;5173:21:109;;652:3172:110;5173:21:109;4502:93:108;5173:21:109;;:::i;:::-;4803:22;4426:66:108;4803:22:109;;:::i;:::-;4349:67:108;390:70:100;;;;;:::i;:::-;837:15:75;4385:30:108;837:15:75;819:34;837:15;819:34;:::i;:::-;4385:30:108;;:::i;:::-;4349:67;;:::i;:::-;837:15:75;;4463:28:108;837:15:75;819:34;837:15;819:34;:::i;4463:28:108:-;4426:66;;:::i;:::-;-1:-1:-1;;;;;;;652:3172:110;;;;;;5606:15:109;652:3172:110;;;;;837:15:75;4553:41:108;837:15:75;5606:33:109;:24;819:34:75;837:15;819:34;:::i;:::-;-1:-1:-1;;;;;652:3172:110;;;;;;;5606:15:109;652:3172:110;;;;;;;5606:33:109;4553:41:108;:::i;:::-;4502:93;;:::i;:::-;-1:-1:-1;;652:3172:110;;;;;;;;;;;;;3802:10:108;;4611:62;;652:3172:110;;4611:62:108;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;652:3172:110;3860:283:30;3426:1;652:3172:110;;;;;-1:-1:-1;;1808:46:110;;652:3172;;1808:46;652:3172;;;;;;;;;;;;;;;;;;;4023:123:108;652:3172:110;;-1:-1:-1;;;4114:21:108;;;4027:64;5173:21:109;4045:31:108;5173:21:109;;;:::i;4045:31:108:-;652:3172:110;;-1:-1:-1;4027:64:108;;3934:79;-1:-1:-1;652:3172:110;;-1:-1:-1;;;3981:21:108;;;3864:43;;;;;;-1:-1:-1;3864:43:108;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;3713;3829:6;3713:43;;;;;;;;;;;;;;;:::i;:::-;;;;;3561:118;-1:-1:-1;652:3172:110;;-1:-1:-1;;;3643:25:108;;;3565:55;-1:-1:-1;3609:10:108;652:3172:110;;;;3586:22:108;652:3172:110;;;;;;;;3585:35:108;3565:55;;3470:81;652:3172:110;;-1:-1:-1;;;3521:19:108;;;652:3172:110;;;;;;-1:-1:-1;;652:3172:110;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:110;;;;;1805:27:109;652:3172:110;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:110;;;;;;1968:34:109;652:3172:110;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:110;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;652:3172:110;;;;;;;;;:::i;:::-;;;;;4622:48:109;652:3172:110;;;:::i;:::-;4622:48:109;;:::i;652:3172:110:-;;;;;;-1:-1:-1;;652:3172:110;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;652:3172:110;;;;;;;;;;;;;10370:24:108;10366:74;;-1:-1:-1;;652:3172:110;;;;;;;;-1:-1:-1;652:3172:110;;;;;;10489:25:108;;652:3172:110;;10489:25:108;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;652:3172:110;3860:283:30;652:3172:110;;;;;;-1:-1:-1;;652:3172:110;;;;;-1:-1:-1;;;;;;;;;;;;;;;;652:3172:110;;;;;;;;;;;;;;-1:-1:-1;;652:3172:110;;;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;;;;;652:3172:110;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;8837:64:26;;652:3172:110;;;;;;734:29:84;730:87;;652:3172:110;;;;;6431:44:26;;;;;652:3172:110;6427:105:26;;;6656:20;652:3172:110;6656:20:26;652:3172:110;1167:340:84;652:3172:110;;;;-1:-1:-1;;;;;652:3172:110;;;;;6575:22:26;-1:-1:-1;;;;;;;;;;;;;;652:3172:110;;;;;;;;;6575:22:26;1167:340:84;:::i;:::-;-1:-1:-1;;;;;;;;;;;652:3172:110;;-1:-1:-1;;652:3172:110;;;;;-1:-1:-1;;;;;652:3172:110;;;;;;;;;;;;;6656:20:26;;;;652:3172:110;6431:44:26;652:3172:110;;;;;-1:-1:-1;6450:25:26;6431:44;;;730:87:84;652:3172:110;;-1:-1:-1;;;786:20:84;;652:3172:110;;786:20:84;652:3172:110;;;;;;-1:-1:-1;;652:3172:110;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;652:3172:110;;;;;;-1:-1:-1;652:3172:110;2431:59:109;652:3172:110;;;;-1:-1:-1;652:3172:110;;;;;;;;;;;;;;-1:-1:-1;;652:3172:110;;;;3875:17:109;652:3172:110;;3895:30:109;652:3172:110;;;;;3895:14:109;;;:::i;:::-;652:3172:110;;;3895:30:109;;:::i;:::-;652:3172:110;;;;;;;3874:63:109;652:3172:110;3874:63:109;;:::i;:::-;652:3172:110;;;;;;;;;;;;;-1:-1:-1;;652:3172:110;;;;;;1200:42:109;-1:-1:-1;;;;;652:3172:110;;;;;;;;;;;;-1:-1:-1;;652:3172:110;;;;;;2136:32:109;652:3172:110;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:110;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;652:3172:110;5606:15:109;652:3172:110;;;5606:33:109;652:3172:110;-1:-1:-1;652:3172:110;5606:33:109;:::i;652:3172:110:-;;;;;;-1:-1:-1;;652:3172:110;;;;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;652:3172:110;;-1:-1:-1;;;;;;652:3172:110;;;;;;;-1:-1:-1;;;;;652:3172:110;3975:40:24;652:3172:110;;3975:40:24;652:3172:110;;;;;;;-1:-1:-1;;652:3172:110;;;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;7131:7:108;652:3172:110;7117:21:108;;-1:-1:-1;;;;;652:3172:110;;-1:-1:-1;;;;;652:3172:110;;;7117:21:108;:10;:21;7113:71;;7218:14;;:::i;:::-;7265:25;;;;:::i;:::-;7305:17;;;;:53;;;652:3172:110;7304:87:108;;;;652:3172:110;7300:146:108;;652:3172:110;5173:21:109;9310:48:108;5173:21:109;;;:::i;:::-;7540:17:108;7528:30;7540:17;;;:::i;:::-;652:3172:110;;7528:11:108;652:3172:110;;;;;;;7528:30:108;652:3172:110;;7572:29:108;;;;;7642:30;;;;;:::i;:::-;3066:5:70;;;3463;;;652:3172:110;3060:42:70;;7752:17:108;;;7748:384;;7568:1615;;;;;;;9197:17;9193:102;;7568:1615;652:3172:110;;;;;;;;;;;;;;;;;;;;;;;9310:48:108;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;652:3172:110;3860:283:30;3426:1;652:3172:110;;;;;;;;;;;;;9193:102:108;-1:-1:-1;652:3172:110;9270:13:108;;652:3172:110;;9230:18:108;;652:3172:110;;-1:-1:-1;;;;;652:3172:110;;;9230:18:108;7556:1;652:3172:110;-1:-1:-1;;;;;652:3172:110;9270:13:108;;:::i;:::-;9193:102;;7748:384;8045:29;7813:50;7962:65;7813:50;7998:28;7914:29;7813:50;8057:16;7813:50;8077:40;7813:50;;;:::i;:::-;7914:29;;;:::i;:::-;837:15:75;819:34;837:15;819:34;:::i;:::-;7998:28:108;;:::i;8077:40::-;8057:16;;:::i;8045:29::-;652:3172:110;7748:384:108;;;;;;;7568:1615;8185:26;;;;652:3172:110;;7528:11:108;652:3172:110;;;;;;;8185:26:108;652:3172:110;8250:27:108;:45;:27;;;;;:::i;:45::-;3463:5:70;3066;;;3463;;;652:3172:110;3060:42:70;;8375:17:108;;8371:802;;7568:1615;;;;;;;;8371:802;9096:26;8436:50;;8537:53;8436:50;8637:54;8436:50;8637:29;8436:50;9125:33;8436:50;;;;:::i;:::-;8537:53;;;;;;:::i;:::-;8637:29;;;;:::i;:::-;:54;:::i;:::-;8714:33;;;;8710:194;;8371:802;8922:65;837:15:75;8958:28:108;9038:40;837:15:75;;;819:34;837:15;819:34;:::i;9038:40:108:-;9005:30;9017:17;;;:::i;9005:30::-;652:3172:110;9125:33:108;:::i;:::-;9096:26;652:3172:110;;7528:11:108;652:3172:110;;;;;;;9096:26:108;652:3172:110;8371:802:108;;;;;;;8710:194;8797:33;8771:59;8922:65;8797:33;;;9038:40;8797:33;;;:::i;:::-;8771:59;;:::i;:::-;8852:33;;-1:-1:-1;8852:33:108;;-1:-1:-1;8710:194:108;;7300:146;652:3172:110;;-1:-1:-1;;;7414:21:108;;652:3172:110;;7414:21:108;7304:87;7363:28;;;;7304:87;;7305:53;7341:17;;;;:::i;:::-;7326:32;;7305:53;;7113:71;652:3172:110;;-1:-1:-1;;;7161:12:108;;652:3172:110;;7161:12:108;652:3172:110;;;;;;-1:-1:-1;;652:3172:110;;;;4384:17:109;652:3172:110;;;;;;;4405:14:109;;;:::i;:::-;4384:17;652:3172:110;;;;;;;4404:36:109;652:3172:110;;;4404:36:109;;:::i;652:3172:110:-;;;;;;-1:-1:-1;;652:3172:110;;;;;;;:::i;:::-;-1:-1:-1;;;;;652:3172:110;;;;;4867:13:27;652:3172:110;;;;;;:::o;:::-;;;;;;-1:-1:-1;;652:3172:110;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;652:3172:110;2307:68:109;652:3172:110;;;;;-1:-1:-1;652:3172:110;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:110;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;652:3172:110;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;652:3172:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6491:14:108;652:3172:110;;6491:14:108;;:::i;652:3172:110:-;;;;;4994:47:109;652:3172:110;;;:::i;:::-;4994:47:109;;:::i;652:3172:110:-;;;;;;;;;;;;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;10932:22:108;652:3172:110;;;;;10928:89:108;;652:3172:110;;-1:-1:-1;;;11032:49:108;;-1:-1:-1;;;;;652:3172:110;;;11032:49:108;;;652:3172:110;;;;;;;;;;;;;;;11032:49:108;11042:17;;;652:3172:110;11032:49:108;;;;;;;-1:-1:-1;11032:49:108;;;652:3172:110;11031:50:108;;11027:102;;652:3172:110;;-1:-1:-1;;;11143:34:108;;652:3172:110;;;;;11143:34:108;652:3172:110;11143:34:108;652:3172:110;;11143:34:108;;;;;;;-1:-1:-1;11143:34:108;;;652:3172:110;11189:4:108;;;652:3172:110;;11143:51:108;11139:107;;-1:-1:-1;10932:22:108;652:3172:110;;-1:-1:-1;;;;;652:3172:110;;;;-1:-1:-1;;;;;;652:3172:110;;;;;;;-1:-1:-1;;;652:3172:110;;;11334:24:108;-1:-1:-1;;11334:24:108;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;652:3172:110;3860:283:30;11139:107:108;652:3172:110;;-1:-1:-1;;;11217:18:108;;;11143:34;;;;;;;-1:-1:-1;11143:34:108;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;11027:102;-1:-1:-1;652:3172:110;;-1:-1:-1;;;11104:14:108;;;11032:49;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;10928:89;652:3172:110;;-1:-1:-1;;;10977:29:108;;;652:3172:110;;;;;;-1:-1:-1;;652:3172:110;;;;;;1298:40:109;-1:-1:-1;;;;;652:3172:110;;;;;;;;;;;;-1:-1:-1;;652:3172:110;;;;1703:14:108;;:::i;:::-;5173:21:109;;:::i;:::-;652:3172:110;;;;1750:11:108;652:3172:110;;;;;;;;;;;;;1791:1:108;652:3172:110;;;;;;;;;1750:11:108;652:3172:110;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:110;;;;-1:-1:-1;;;;;;;;;;;652:3172:110;;;-1:-1:-1;;;;;652:3172:110;;;;;;;;;;;;;;-1:-1:-1;;652:3172:110;;;;;;3901:31:23;652:3172:110;;;;;:::i;:::-;;;-1:-1:-1;652:3172:110;-1:-1:-1;;;;;;;;;;;652:3172:110;;;-1:-1:-1;652:3172:110;;;;;;;;;;;;;;;;;3901:31:23;652:3172:110;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:110;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:110;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;652:3172:110;;;;;;;-1:-1:-1;;;;652:3172:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;652:3172:110;;;;-1:-1:-1;652:3172:110;;;477:31:88;652:3172:110;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:88;;;;652:3172:110;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;652:3172:110;;;;;;;;;;;;;477:31:88;;652:3172:110;;;;;;;;;;:::i;:::-;477:31:88;652:3172:110;;477:31:88;;;;;;:::i;:::-;518:79;;;652:3172:110;518:79:88;;652:3172:110;;;;;;;;;;;-1:-1:-1;;652:3172:110;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:110;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:110;;;;;;;1109:35:109;652:3172:110;;;;;;;;;-1:-1:-1;;652:3172:110;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;;;;;652:3172:110;;;9907:21:108;;9903:75;;-1:-1:-1;652:3172:110;;;9992:22:108;652:3172:110;;;;;;;;;;;;;9992:41:108;9988:91;;-1:-1:-1;;;;;652:3172:110;;;;;3586:22:108;652:3172:110;;;;;10145:44:108;;;;10089:40;;:31;652:3172:110;;;;;;;;;;;;;;10089:40:108;652:3172:110;;;;;;;;;;;;;;;10145:44:108;;;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;652:3172:110;3860:283:30;9903:75:108;652:3172:110;;-1:-1:-1;;;9951:16:108;;652:3172:110;;9951:16:108;652:3172:110;;;;;;-1:-1:-1;;652:3172:110;;;;;2666:94:109;652:3172:110;;;;;:::i;:::-;;;-1:-1:-1;652:3172:110;2666:94:109;652:3172:110;;;-1:-1:-1;652:3172:110;;;;;;;;;;;;;;;;;2666:94:109;652:3172:110;;;;;;;;;;;;;-1:-1:-1;;652:3172:110;;;;;;2816:92:109;652:3172:110;;;;;:::i;:::-;;;-1:-1:-1;652:3172:110;2816:92:109;652:3172:110;;;-1:-1:-1;652:3172:110;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:110;;;;4616:5:27;652:3172:110;;;;;:::i;:::-;;;966:10:28;;4616:5:27;:::i;:::-;652:3172:110;;;4639:4:27;652:3172:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;11459:20:108;652:3172:110;;;;;11455:85:108;;-1:-1:-1;;;;;652:3172:110;;;;;;11550:312:108;;652:3172:110;11459:20:108;652:3172:110;;-1:-1:-1;;;;652:3172:110;-1:-1:-1;;;652:3172:110;;;11872:27:108;11915:20;-1:-1:-1;11915:20:108;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;652:3172:110;3860:283:30;11550:312:108;652:3172:110;;-1:-1:-1;;;11597:45:108;;-1:-1:-1;;;;;652:3172:110;;11597:45:108;;;652:3172:110;;;11597:45:108;;652:3172:110;;;;;;11597:45:108;11607:15;;;652:3172:110;11597:45:108;;;;;;;-1:-1:-1;11597:45:108;;;11550:312;11596:46;;11592:104;;652:3172:110;;-1:-1:-1;;;11714:30:108;;;652:3172:110;11714:30:108;652:3172:110;11714:30:108;;;;;;;;-1:-1:-1;11714:30:108;;;11550:312;11756:4;;;652:3172:110;;11714:47:108;11710:109;;-1:-1:-1;11459:20:108;652:3172:110;;-1:-1:-1;;;;;;652:3172:110;-1:-1:-1;;;;;652:3172:110;;;;;;;;;11550:312:108;;;;;;11710:109;652:3172:110;;-1:-1:-1;;;11788:16:108;;;11714:30;;;;;;;-1:-1:-1;11714:30:108;;;;;;:::i;:::-;;;;;;11592:104;652:3172:110;;-1:-1:-1;;;11669:12:108;;652:3172:110;;11669:12:108;11597:45;;;;;;;;;;;;;;:::i;:::-;;;;11455:85;652:3172:110;;-1:-1:-1;;;11502:27:108;;;652:3172:110;;;;;;-1:-1:-1;;652:3172:110;;;;;;;;;:::i;:::-;;;3361:103:30;;;:::i;:::-;-1:-1:-1;;;;;652:3172:110;;;;;6112:23:108;;6108:79;;6273:6;652:3172:110;6206:13:108;;;;:::i;:::-;652:3172:110;;;-1:-1:-1;652:3172:110;;;;6273:6:108;:::i;:::-;652:3172:110;;;;;;;;;;;;6302:10:108;;6296:43;;652:3172:110;6296:43:108;1949:1:30;-1:-1:-1;;;;;;;;;;;652:3172:110;;;;;;;;;;;;;;6108:79:108;652:3172:110;;-1:-1:-1;;;6158:18:108;;652:3172:110;;6158:18:108;652:3172:110;;;;;;-1:-1:-1;;652:3172:110;;;;;;-1:-1:-1;652:3172:110;2546:64:109;652:3172:110;;;;-1:-1:-1;652:3172:110;;;;;;;;;;;;;;-1:-1:-1;;652:3172:110;;;;2058:22:109;652:3172:110;;;-1:-1:-1;;;;;652:3172:110;;;;;;;;;;;;;;-1:-1:-1;;652:3172:110;;;;;5173:21:109;;:::i;652:3172:110:-;;;;;;-1:-1:-1;;652:3172:110;;;;;;3361:103:30;;:::i;:::-;966:10:28;-1:-1:-1;652:3172:110;;;;;;;;;;1109:35:109;;652:3172:110;;4468:23:23;4464:108;;652:3172:110;;;;10692:21:108;10688:71;;652:3172:110;;10805:22:108;652:3172:110;;;;;;;;10805:22:108;1949:1:30;-1:-1:-1;;;;;;;;;;;652:3172:110;;4464:108:23;652:3172:110;;;;4514:47:23;;;;;;966:10:28;652:3172:110;4514:47:23;;652:3172:110;;;;;4514:47:23;652:3172:110;;;;;;-1:-1:-1;;652:3172:110;;;;;;;;;:::i;:::-;3123:14:108;;:::i;:::-;3154:24;;;:::i;:::-;3181:29;;;;;:::i;:::-;652:3172:110;;;;;;;3235:1:108;652:3172:110;;;;;;;3213:33:108;;;:::i;:::-;652:3172:110;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:110;;;;1888:24:109;652:3172:110;;;-1:-1:-1;;;;;652:3172:110;;;;;;;;;;;;;;-1:-1:-1;;652:3172:110;;;;5767:26:23;652:3172:110;;;;;;;:::i;:::-;;-1:-1:-1;652:3172:110;-1:-1:-1;;;;;;;;;;;652:3172:110;;3202:4:23;4919:24;652:3172:110;-1:-1:-1;652:3172:110;4919:24:23;652:3172:110;3202:4:23;:::i;:::-;5767:26;:::i;652:3172:110:-;;;;;;-1:-1:-1;;652:3172:110;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:110;;;;;;;;;;;;-1:-1:-1;;652:3172:110;;;;;;;675:39:109;652:3172:110;;;;;;;;;-1:-1:-1;;652:3172:110;;;;;4867:29:27;652:3172:110;;;;;:::i;:::-;4867:20:27;652:3172:110;;;;;;:::i;:::-;4867:20:27;:::i;652:3172:110:-;;;;;;-1:-1:-1;;652:3172:110;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:110;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;652:3172:110;;;;;;;;;;;;;;;:::i;:::-;1972:48:108;;652:3172:110;;;;;;;:::i;:::-;;;;;;;;;;;;;;2034:16:108;;2030:111;;652:3172:110;;2233:39:108;1057:70:100;2233:39:108;;4622:48:109;2196:77:108;2233:39;;;;2196:77;;:::i;:::-;2312:36;;4994:47:109;652:3172:110;2312:36:108;;;4994:47:109;;:::i;:::-;2389:37:108;;;4622:48:109;;:::i;:::-;1057:70:100;;:::i;:::-;652:3172:110;;;;;;;;;;;;;2030:111:108;2089:41;;;;-1:-1:-1;652:3172:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;4622:48:109;652:3172:110;2196:77:108;652:3172:110;1057:70:100;652:3172:110;;;:::i;:::-;;;;;2030:111:108;;;;;652:3172:110;;;;;;-1:-1:-1;;652:3172:110;;;;2357:1:24;652:3172:110;;;;;:::i;:::-;2303:62:24;;:::i;:::-;2357:1;:::i;652:3172:110:-;;;;;;-1:-1:-1;;652:3172:110;;;;;;;;;:::i;:::-;;;3361:103:30;;:::i;:::-;-1:-1:-1;;;;;652:3172:110;;4890:21:108;4886:75;;4975:11;;4971:73;;845:69:100;4803:22:109;;:::i;:::-;5173:21;;:::i;:::-;845:69:100;;;:::i;:::-;5180:10:108;652:3172:110;;;;5606:15:109;652:3172:110;;;;;5180:10:108;;;5606:33:109;;;:::i;:::-;5150:41:108;;5146:96;;5267:40;;;;;:::i;5146:96::-;652:3172:110;;-1:-1:-1;;;5214:17:108;;652:3172:110;;5214:17:108;4971:73;652:3172:110;;-1:-1:-1;;;5009:24:108;;652:3172:110;;5009:24:108;652:3172:110;;;;;;-1:-1:-1;;652:3172:110;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:110;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;7556:1:108;652:3172:110;;;;;;;:::o;:::-;;;;;;;;;;:::o;5256:193:109:-;-1:-1:-1;;;;;652:3172:110;-1:-1:-1;652:3172:110;;;5383:15:109;652:3172:110;;;;;5383:59:109;;5256:193;;5383:59;:::i;652:3172:110:-;;;;;;;;;;1167:340:84;;652:3172:110;1167:340:84;6893:76:26;;:::i;:::-;;;:::i;:::-;1949:1:30;-1:-1:-1;;;;;;;;;;;652:3172:110;-1:-1:-1;;;;;652:3172:110;;1376:73:84;;1167:340;652:3172:110;;;;:::i;:::-;;;3642:39;;;;;;;652:3172;;;;;;;3642:39;;;652:3172;-1:-1:-1;;;;;652:3172:110;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;3734:29;652:3172;;2282:147:27;652:3172:110;3734:29;652:3172;;;;:::i;:::-;;;;;;;;3745:17;652:3172;3734:29;652:3172;;3734:29;;;;;;:::i;:::-;;:::i;:::-;3788:11;3801:13;;2282:147:27;;:::i;1376:73:84:-;6961:1:26;6893:76;;;:::i;:::-;;;:::i;6961:1::-;1376:73:84;;;2492:191:108;-1:-1:-1;;;;;652:3172:110;-1:-1:-1;652:3172:110;;;5606:15:109;652:3172:110;;;;;5606:33:109;;;:::i;:::-;5173:21;;:::i;:::-;4803:22;;:::i;:::-;652:3172:110;1884:1:100;652:3172:110;;;;;;;1884:1:100;652:3172:110;;;;;;;9478:25:70;;;:::i;652:3172:110:-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;3612:132:109:-;819:34:75;837:15;819:34;:::i;:::-;3683:54:109;3703:17;652:3172:110;3684:36:109;652:3172:110;;;;;;;3684:36:109;;:::i;:::-;652:3172:110;;;3683:54:109;;:::i;:::-;652:3172:110;3612:132:109;:::o;3313:244::-;3418:17;652:3172:110;;;;;;;;;;;;;;3406:29:109;3402:85;;3503:47;3504:29;;;;:::i;3402:85::-;652:3172:110;;-1:-1:-1;;;3458:18:109;;;;;3361:103:30;;;;:::i;:::-;652:3172:110;;-1:-1:-1;;;;;652:3172:110;;;6521:23:108;;6517:79;;6650:11;;6646:70;;652:3172:110;6742:10:108;;;;;;-1:-1:-1;652:3172:110;;6887:49:108;;652:3172:110;;;;6864:6:108;;652:3172:110;;6821:18:108;;652:3172:110;;-1:-1:-1;;;;;652:3172:110;;;6821:18:108;6864:6;:::i;:::-;6887:49;652:3172:110;;6898:10:108;;;;6887:49;;;:::i;:::-;;;;3426:1:30;;1949;-1:-1:-1;;;;;;;;;;;652:3172:110;3860:283:30;6754:3:108;6790:9;6773:27;652:3172:110;6790:9:108;6783:17;6790:9;;;;;:::i;:::-;652:3172:110;6783:17:108;:::i;6773:27::-;6754:3;652:3172:110;6731:9:108;;6646:70;652:3172:110;;-1:-1:-1;;;6684:21:108;;;;;652:3172:110;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:110;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;3405:215:24:-;-1:-1:-1;;;;;652:3172:110;;;;3489:22:24;;3485:91;;-1:-1:-1;;;;;;;;;;;652:3172:110;;-1:-1:-1;;;;;;652:3172:110;;;;;;;;3975:40:24;-1:-1:-1;;3975:40:24;3405:215::o;3485:91::-;652:3172:110;;-1:-1:-1;;;3534:31:24;;3509:1;3534:31;;;652:3172:110;;;3534:31:24;2731:227:108;;2871:34;2731:227;652:3172:110;-1:-1:-1;652:3172:110;2871:18:108;652:3172:110;;;-1:-1:-1;652:3172:110;;;;;;;;;;;;;;;;;2871:34:108;652:3172:110;;-1:-1:-1;652:3172:110;2907:11:108;652:3172:110;;;-1:-1:-1;652:3172:110;;2927:16:108;652:3172:110;;;-1:-1:-1;652:3172:110;;;1884:1:100;652:3172:110;;;;;;;1884:1:100;652:3172:110;;;;;;;9478:25:70;;;:::i;3470:384:30:-;-1:-1:-1;;;;;;;;;;;1991:1:30;652:3172:110;;3670:20:30;3666:88;;1991:1;652:3172:110;;3470:384:30:o;3666:88::-;652:3172:110;;-1:-1:-1;;;3713:30:30;;;;;1867:311:110;12135:10:108;-1:-1:-1;652:3172:110;;;5606:15:109;652:3172:110;;;;;1867:311;;;-1:-1:-1;;1867:311:110;;12119:93:108;;819:34:75;837:15;819:34;:::i;:::-;12135:10:108;652:3172:110;;;;5606:15:109;652:3172:110;;;;;12170:41:108;;12135:10;;5606:33:109;;;:::i;12119:93:108:-;837:15:75;;12222:67:108;819:34:75;837:15;819:34;:::i;:::-;12259:29:108;4803:22:109;;;:::i;12222:67:108:-;837:15:75;;12299:68:108;819:34:75;837:15;819:34;:::i;:::-;12335:31:108;5173:21:109;;;:::i;12299:68:108:-;12394:14;;;12769:34;12394:14;12769:25;12394:18;:14;;:::i;:::-;:18;:::i;:::-;12726:33;12445:18;;652:3172:110;;7528:11:108;652:3172:110;;;;;;;12445:18:108;652:3172:110;12502:23:108;;652:3172:110;;12502:16:108;652:3172:110;;;;;;;12502:23:108;652:3172:110;12660:30:108;390:70:100;;;;;:::i;:::-;12660:30:108;;;;:::i;:::-;12639:18;;652:3172:110;;7528:11:108;652:3172:110;;;;;;;12639:18:108;652:3172:110;12726:33:108;:::i;:::-;12700:23;;652:3172:110;;12502:16:108;652:3172:110;;;;;;;12700:23:108;652:3172:110;;;12769:18:108;652:3172:110;;;;;;;12769:34:108;:50;652:3172:110;;;12769:50:108;:::i;:::-;652:3172:110;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:110;;;;;12135:10:108;;12835:74;;652:3172:110;;12835:74:108;652:3172:110;;;;;;12135:10:108;;2125:46:110;;652:3172;;;;2125:46;;;;1867:311::o;6605:300:27:-;;-1:-1:-1;;;;;652:3172:110;;;;;6688:18:27;;6684:86;;652:3172:110;;6783:16:27;;;6779:86;;-1:-1:-1;;;;;652:3172:110;;;;;;5606:15:109;652:3172:110;;;;;5606:33:109;;;:::i;:::-;2607:19:110;;;;2603:115;;3459:25;2838:21;:65;3459:25;2838:21;;;3354:65;2838:21;652:3172;;;;;;;;5606:15:109;652:3172:110;;;;;;;2838:21;837:15:75;;819:34;837:15;819:34;:::i;:::-;652:3172:110;;2838:65;;:::i;:::-;-1:-1:-1;;;;;;;652:3172:110;;;;;;5606:15:109;652:3172:110;;;;;837:15:75;;5606:33:109;:24;819:34:75;837:15;819:34;:::i;:::-;-1:-1:-1;;;;;652:3172:110;;;;;;;5606:15:109;652:3172:110;;;;;;;5606:33:109;652:3172:110;3354:65;;:::i;:::-;-1:-1:-1;;652:3172:110;;;;;;;;;;;;;2603:115;652:3172;;-1:-1:-1;;;2653:50:110;;-1:-1:-1;;;;;652:3172:110;;;;2653:50;;;652:3172;;;;;;;;;;;;;;;;12018:60:27;6779:86;652:3172:110;;-1:-1:-1;;;6822:32:27;;6704:1;6822:32;;;652:3172:110;;;6822:32:27;6684:86;652:3172:110;;-1:-1:-1;;;6729:30:27;;6704:1;6729:30;;;652:3172:110;;;6729:30:27;14296:213:71;652:3172:110;14374:24:71;;;;14370:103;;652:3172:110;14296:213:71;:::o;14370:103::-;652:3172:110;;;;14421:41:71;;;;;;14452:2;14421:41;;;652:3172:110;;;;;14421:41:71;652:3172:110;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:99:-;;652:3172:110;;7686:17:99;7682:83;;652:3172:110;7789:27:99;652:3172:110;7789:27:99;652:3172:110;;7789:27:99;;;;;;:::i;:::-;7860:14;;;:::i;:::-;652:3172:110;;;;;;;;;;;;;;;;7888:22:99;;;7884:77;;7975:21;-1:-1:-1;7975:84:99;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;7789:27;8082:17;;;652:3172:110;8075:24:99;:::o;7975:84::-;652:3172:110;;;8009:16:99;4622:13:109;652:3172:110;8009:16:99;:::i;:::-;652:3172:110;;;8001:24:99;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:::-;652:3172:110;;;;;8029:23:99;652:3172:110;;;;8029:29:99;;8001:57;;;;7884:77;7933:17;;;7789:27;7933:17;;;652:3172:110;7926:24:99;:::o;7682:83::-;7726:28;;;;:::i;7558:604::-;;652:3172:110;;7686:17:99;7682:83;;652:3172:110;7789:27:99;652:3172:110;7789:27:99;652:3172:110;;7789:27:99;;;;;;:::i;:::-;7860:14;;;:::i;:::-;652:3172:110;;;;;;;;;;;;;;;;7888:22:99;;;7884:77;;7975:21;-1:-1:-1;7975:84:99;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7975:84::-;652:3172:110;;;8009:16:99;4994:12:109;652:3172:110;8009:16:99;:::i;:::-;652:3172:110;;;8001:24:99;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:29::-;;8001:57;;;;7682:83;7726:28;;;;:::i;7558:604::-;;652:3172:110;;7686:17:99;7682:83;;652:3172:110;7789:27:99;652:3172:110;7789:27:99;652:3172:110;;7789:27:99;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;652:3172:110;;;;;;;;;;;;;;;;7888:22:99;;;7884:77;;7975:21;-1:-1:-1;7975:84:99;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;652:3172:110;8075:24:99;:::o;7975:84::-;652:3172:110;;;8009:16:99;652:3172:110;;8009:16:99;:::i;:::-;652:3172:110;;;8001:24:99;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:29::-;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;652:3172:110;7926:24:99;:::o;7682:83::-;7726:28;;;;:::i;4148:103:23:-;966:10:28;-1:-1:-1;652:3172:110;;;;;;;;;675:39:109;;652:3172:110;;3901:31:23;652:3172:110;;4468:23:23;4464:108;;4148:103;:::o;:::-;966:10:28;-1:-1:-1;652:3172:110;;;;;;;;;966:38:109;;652:3172:110;;3901:31:23;652:3172:110;4148:103:23;966:10:28;-1:-1:-1;652:3172:110;;;;;;;;;821:37:109;;652:3172:110;;3901:31:23;652:3172:110;4148:103:23;-1:-1:-1;652:3172:110;;;-1:-1:-1;;;;;;;;;;;652:3172:110;;;;;;;;966:10:28;652:3172:110;;;;;;;;;3901:31:23;652:3172:110;7270:387:23;-1:-1:-1;;;;;652:3172:110;;13555:17:108;652:3172:110;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;652:3172:110;;;;13555:17:108;652:3172:110;;;;;;;;;;;-1:-1:-1;;;;;652:3172:110;;;;;;;;;;-1:-1:-1;;652:3172:110;7509:4:23;652:3172:110;;;966:10:28;;-1:-1:-1;;;;;652:3172:110;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;13555:17:108;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;652:3172:110;;-1:-1:-1;652:3172:110;;;;;;;;;675:39:109;;-1:-1:-1;;;;;;;;;;;2887:71:23;652:3172:110;;3901:31:23;652:3172:110;;;;-1:-1:-1;652:3172:110;;;;;;;;;;;-1:-1:-1;;;;;652:3172:110;;;;;;;;;;-1:-1:-1;;652:3172:110;7509:4:23;652:3172:110;;;966:10:28;;-1:-1:-1;;;;;652:3172:110;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;652:3172:110;;-1:-1:-1;652:3172:110;;;;;;;;;821:37:109;;-1:-1:-1;;;;;;;;;;;2887:71:23;652:3172:110;;3901:31:23;652:3172:110;7270:387:23;-1:-1:-1;;;;;652:3172:110;;-1:-1:-1;652:3172:110;;;;;;;;;966:38:109;;-1:-1:-1;;;;;;;;;;;2887:71:23;652:3172:110;;3901:31:23;652:3172:110;7270:387:23;-1:-1:-1;;;;;652:3172:110;;-1:-1:-1;652:3172:110;;;;;;;;;1109:35:109;;-1:-1:-1;;;;;;;;;;;2887:71:23;652:3172:110;;3901:31:23;652:3172:110;7270:387:23;-1:-1:-1;652:3172:110;;;-1:-1:-1;;;;;;;;;;;652:3172:110;;;;;;;;-1:-1:-1;;;;;652:3172:110;;;;;;;;;;;;3901:31:23;652:3172:110;7892:388:23;-1:-1:-1;652:3172:110;;;-1:-1:-1;;;;;;;;;;;652:3172:110;;;;;;;;-1:-1:-1;;;;;652:3172:110;;;;;;;;;;;;;;;;-1:-1:-1;652:3172:110;;;;;;;;;;;-1:-1:-1;;;;;652:3172:110;;;;;;;;;;-1:-1:-1;;652:3172:110;;;966:10:28;;-1:-1:-1;;;;;652:3172:110;;8155:40:23;-1:-1:-1;;8155:40:23;652:3172:110;8209:11:23;:::o;652:3172:110:-;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;652:3172:110;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;652:3172:110;;;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:110;;;;;;;;;;-1:-1:-1;;;;;652:3172:110;;;;;;;;;;-1:-1:-1;;;;;652:3172:110;;;;;;;;;;-1:-1:-1;;;;;652:3172:110;;;;;;;;;;-1:-1:-1;;;;;652:3172:110;;;;;2658:162:24;-1:-1:-1;;;;;;;;;;;652:3172:110;-1:-1:-1;;;;;652:3172:110;966:10:28;2717:23:24;2713:101;;2658:162::o;2713:101::-;652:3172:110;;-1:-1:-1;;;2763:40:24;;966:10:28;2763:40:24;;;652:3172:110;;;2763:40:24;652:3172:110;;;;;;;:::o;4996:4226:70:-;;652:3172:110;;;;-1:-1:-1;;652:3172:110;4996:4226:70;5584:131;;;;;;;;;;;;5796:10;;5792:368;;6270:20;;;;6266:143;;6695:300;;;;652:3172:110;-1:-1:-1;652:3172:110;7214:31:70;;7259:375;;;8094:1;652:3172:110;;8075:1:70;652:3172:110;8074:21:70;652:3172:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7259:375:70;;;;-1:-1:-1;7259:375:70;;;6695:300;;;;;;652:3172:110;6695:300:70;;7259:375;7700:21;652:3172:110;4996:4226:70;:::o;6266:143::-;6330:16;;3066:5;652:3172:110;940:4:60;3060:42:70;6322:71;:::i;5792:368::-;6126:19;;;;;;;:::i;652:3172:110:-;7178:12:99;652:3172:110;;;;;;7178:12:99;-1:-1:-1;652:3172:110;-1:-1:-1;;;;;;;;;;;652:3172:110;;-1:-1:-1;652:3172:110;:::o;:::-;7178:12:99;652:3172:110;;;;;;7178:12:99;-1:-1:-1;652:3172:110;-1:-1:-1;;;;;;;;;;;652:3172:110;;-1:-1:-1;652:3172:110;:::o;:::-;;;;;;;;-1:-1:-1;652:3172:110;;-1:-1:-1;652:3172:110;;;-1:-1:-1;652:3172:110;:::o;:::-;6360:12:99;652:3172:110;-1:-1:-1;;;652:3172:110;;;;;;;;;6360:12:99;652:3172:110;;;;;;6360:12:99;-1:-1:-1;652:3172:110;-1:-1:-1;;;;;;;;;;;652:3172:110;;:::o;:::-;6360:12:99;652:3172:110;-1:-1:-1;;;652:3172:110;;;;;;;;;6360:12:99;652:3172:110;;;;;;6360:12:99;-1:-1:-1;652:3172:110;-1:-1:-1;;;;;;;;;;;652:3172:110;;:::o;:::-;;;;;-1:-1:-1;;;652:3172:110;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;11930:17:27;;;652:3172:110;;;;;;;;6246:584:99;;;;6360:12;652:3172:110;;;6360:24:99;;6356:75;;6246:584;6474:30;;;:::i;:::-;652:3172:110;;;;;;6578:12:99;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:99;;;-1:-1:-1;;;652:3172:110;;;;;;;;;-1:-1:-1;652:3172:110;;;-1:-1:-1;652:3172:110;;;;;;6798:25:99;652:3172:110;6246:584:99:o;6600:188::-;8310:38:73;;-1:-1:-1;;;;;652:3172:110;;-1:-1:-1;8310:38:73;:::i;:::-;6753:24:99;;;;;:::i;:::-;6798:25;6246:584;:::o;6604:24::-;652:3172:110;;;;;;6614:14:99;;-1:-1:-1;6604:24:99;;;6356:75;-1:-1:-1;;;652:3172:110;;;;;;;;;;;;;;;;-1:-1:-1;652:3172:110;;;;-1:-1:-1;;;;;;;;;;;652:3172:110;;6356:75:99;;;6246:584;;;;6360:12;652:3172:110;;;6360:24:99;;6356:75;;6246:584;6474:30;;;:::i;:::-;652:3172:110;;;;;;6578:12:99;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:99;;;-1:-1:-1;;;652:3172:110;;;;;;;;;-1:-1:-1;652:3172:110;;;-1:-1:-1;652:3172:110;;;;;;6798:25:99;652:3172:110;6246:584:99:o;6600:188::-;8310:38:73;;-1:-1:-1;;;;;652:3172:110;;-1:-1:-1;8310:38:73;:::i;:::-;6753:24:99;;;;;:::i;6604:::-;652:3172:110;;;;;;6614:14:99;;-1:-1:-1;6604:24:99;;;6356:75;-1:-1:-1;;;652:3172:110;;;;;;;;;;;;;;;;-1:-1:-1;652:3172:110;;;;-1:-1:-1;;;;;;;;;;;652:3172:110;;6356:75:99;;;6246:584;;;;;6360:12;;;652:3172:110;;;6360:24:99;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;652:3172:110;;;;;;6578:12:99;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:99;;;-1:-1:-1;;;;;652:3172:110;;;;;;;6644:21:99;;;:29;:21;;:::i;6600:188::-;6753:24;;652:3172:110;;8310:38:73;;-1:-1:-1;;;;;652:3172:110;;;;;8310:38:73;:::i;:::-;6753:24:99;;;:::i;6604:::-;652:3172:110;;;;;;6614:14:99;;-1:-1:-1;6604:24:99;;;6356:75;-1:-1:-1;;;652:3172:110;;;;;;6360:12:99;652:3172:110;;;;;;;:::i;:::-;;;11930:17:27;;;652:3172:110;;;;;;;;6356:75:99;;;1271:160:56;652:3172:110;;-1:-1:-1;;;1380:43:56;;;;-1:-1:-1;;;;;652:3172:110;;;1380:43:56;;;652:3172:110;;;;;;;;;1380:43:56;;;652:3172:110;;;;-1:-1:-1;;;;;652:3172:110;;;;;;;;1380:43:56;652:3172:110;;;1380:43:56;:::i;12922:460:108:-;;13024:14;;:::i;:::-;13015:23;;;13011:75;;-1:-1:-1;652:3172:110;;;13100:20:108;652:3172:110;;;;;;;;13128:10:108;652:3172:110;;;;;;;;;;13096:93:108;;13208:32;13128:10;13208:32;;:::i;:::-;13255:11;;;13251:68;;-1:-1:-1;652:3172:110;;;13100:20:108;652:3172:110;;;;;;;;13128:10:108;652:3172:110;;;;;;;;;-1:-1:-1;;652:3172:110;13371:4:108;652:3172:110;;;12922:460:108:o;13251:68::-;652:3172:110;;-1:-1:-1;;;13289:19:108;;;;;13096:93;652:3172:110;;-1:-1:-1;;;13162:16:108;;;;;13011:75;652:3172:110;;-1:-1:-1;;;13061:14:108;;;;;10580:184:99;4803:13:109;652:3172:110;10446:8:73;;;:63;-1:-1:-1;10446:63:73;-1:-1:-1;;;;;652:3172:110;;10726:7:99;652:3172:110;;10736:12:99;652:3172:110;;;;;;10736:12:99;-1:-1:-1;652:3172:110;-1:-1:-1;;;;;;;;;;;652:3172:110;;10580:184:99;:::o;10726:31::-;;-1:-1:-1;10580:184:99;:::o;10446:63:73:-;11930:17:27;;;652:3172:110;;;;;4803:13:109;-1:-1:-1;14439:109:73;;;652:3172:110;;;10446:63:73;;10580:184:99;5173:12:109;652:3172:110;10446:8:73;;;:63;-1:-1:-1;10446:63:73;-1:-1:-1;;;;;652:3172:110;;10726:7:99;652:3172:110;;10736:12:99;652:3172:110;;;;;;10736:12:99;-1:-1:-1;652:3172:110;-1:-1:-1;;;;;;;;;;;652:3172:110;;10580:184:99;:::o;10446:63:73:-;11930:17:27;;;652:3172:110;;;;;5173:12:109;-1:-1:-1;14439:109:73;;;652:3172:110;;;10446:63:73;;10580:184:99;652:3172:110;;10446:8:73;;;:63;-1:-1:-1;10446:63:73;-1:-1:-1;;;;;652:3172:110;;10726:7:99;652:3172:110;;10736:12:99;:17;:12;;:17;:::i;:::-;652:3172:110;;;;;;10580:184:99;:::o;10446:63:73:-;11930:17:27;;652:3172:110;;;;;;;;14439:109:73;-1:-1:-1;14439:109:73;;-1:-1:-1;14439:109:73;;;652:3172:110;;;10446:63:73;;10976:487:27;;-1:-1:-1;;;;;652:3172:110;;;11141:19:27;11137:89;;652:3172:110;;11239:21:27;11235:90;;11334:20;:29;:20;;:::i;:29::-;652:3172:110;10976:487:27:o;1662:280:100:-;;;1884:1;652:3172:110;;;;;;;1884:1:100;652:3172:110;;;;;;;9478:25:70;;;:::i;6999:207:99:-;4622:13:109;652:3172:110;9737:15:73;-1:-1:-1;9762:18:73;9795:7;9801:1;9795:7;;9791:234;;6999:207:99;10049:53:73;;;;:::i;:::-;10120:8;;;:63;-1:-1:-1;10120:63:73;-1:-1:-1;;;;;652:3172:110;;7168:7:99;652:3172:110;;7178:17:99;652:3172:110;7178:17:99;;:::i;10120:63:73:-;10135:41;10168:7;10135:48;10168:7;;:::i;:::-;4622:13:109;14439:109:73;;-1:-1:-1;;;;;;;;;;;14439:109:73;14289:265;;10135:41;652:3172:110;;;;;10135:48:73;10120:63;;9791:234;9838:14;;;;;:::i;:::-;652:3172:110;;;;;;;10049:53:73;14439:109;4622:13:109;-1:-1:-1;14439:109:73;652:3172:110;14439:109:73;;-1:-1:-1;;;;;;;;;;;14439:109:73;652:3172:110;;;;;9870:48:73;9866:149;652:3172:110;;;9938:10:73;9866:149;9791:234;;9866:149;9993:7;;;;;;:::i;:::-;9866:149;9791:234;;6999:207:99;4994:12:109;652:3172:110;9737:15:73;-1:-1:-1;9762:18:73;9795:7;9801:1;9795:7;;9791:234;;6999:207:99;10049:53:73;;;;:::i;:::-;10120:8;;;:63;-1:-1:-1;10120:63:73;-1:-1:-1;;;;;652:3172:110;;7168:7:99;652:3172:110;;7178:17:99;652:3172:110;7178:17:99;;:::i;10120:63:73:-;10135:41;10168:7;10135:48;10168:7;;:::i;:::-;4994:12:109;14439:109:73;;-1:-1:-1;;;;;;;;;;;14439:109:73;14289:265;;10135:48;10120:63;;9791:234;9838:14;;;;;:::i;:::-;652:3172:110;;;;;;;10049:53:73;14439:109;4994:12:109;-1:-1:-1;14439:109:73;652:3172:110;14439:109:73;;-1:-1:-1;;;;;;;;;;;14439:109:73;652:3172:110;;;;;9870:48:73;9866:149;652:3172:110;;;9938:10:73;9866:149;9791:234;;9866:149;9993:7;;;;;;:::i;:::-;9866:149;9791:234;;6999:207:99;;652:3172:110;;9737:15:73;-1:-1:-1;9762:18:73;9795:7;9801:1;9795:7;;9791:234;;6999:207:99;10049:53:73;;;;;:::i;:::-;10120:8;;;:63;-1:-1:-1;10120:63:73;;-1:-1:-1;;;;;652:3172:110;;7168:7:99;652:3172:110;;;7178:12:99;;:17;:12;;:17;:::i;10120:63:73:-;10135:41;10168:7;10135:48;10168:7;;:::i;:::-;10135:41;14439:109;;;;;;14289:265;;10135:48;10120:63;;;9791:234;9838:14;;;;;:::i;:::-;652:3172:110;;;;;;;10049:53:73;14439:109;;-1:-1:-1;14439:109:73;652:3172:110;14439:109:73;;;-1:-1:-1;14439:109:73;;652:3172:110;;;;;9870:48:73;9866:149;652:3172:110;;;9938:10:73;9866:149;9791:234;;9866:149;9993:7;;;;;;:::i;:::-;9866:149;9791:234;;652:3172:110;;;;;;;:::i;:::-;-1:-1:-1;652:3172:110;;;;;;;:::o;11486:272:99:-;652:3172:110;;:::i;:::-;;;;:::i;:::-;;4622:13:109;652:3172:110;;;;;;4622:13:109;-1:-1:-1;652:3172:110;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;652:3172:110;;;;;;;;;;;;;;;;;11718:12:99;652:3172:110;;;;;;11718:12:99;-1:-1:-1;652:3172:110;-1:-1:-1;;;;;;;;;;;652:3172:110;;;;;;;;:::i;:::-;;;;11672:79:99;;652:3172:110;11486:272:99;:::o;:::-;652:3172:110;;:::i;:::-;;;;:::i;:::-;;4994:12:109;652:3172:110;;;;;;4994:12:109;-1:-1:-1;652:3172:110;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;652:3172:110;;;;;;;;;;;;;;;;;11718:12:99;652:3172:110;;;;;;11718:12:99;-1:-1:-1;652:3172:110;-1:-1:-1;;;;;;;;;;;652:3172:110;;;;;;;;:::i;11486:272:99:-;;652:3172:110;11718:12:99;11452:22:73;11718:31:99;11486:272;652:3172:110;;:::i;:::-;;;;:::i;:::-;;11452:22:73;;:::i;:::-;652:3172:110;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;11718:12:99;:31;:::i;:::-;652:3172:110;;;;;;;;;:::i;:::-;;;;;;;11672:79:99;;652:3172:110;11486:272:99;:::o;1670:188:56:-;652:3172:110;;-1:-1:-1;;;1797:53:56;;;;-1:-1:-1;;;;;652:3172:110;;;1797:53:56;;;652:3172:110;;;;;;;;;;;;;;;;;1797:53:56;;;652:3172:110;;;;;;;-1:-1:-1;;;;;652:3172:110;;;;;1797:53:56;652:3172:110;;;1797:53:56;:::i;7084:141:26:-;652:3172:110;-1:-1:-1;;;;;;;;;;;652:3172:110;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;652:3172:110;;-1:-1:-1;;;7191:17:26;;;;;652:3172:110;;;;;;;;;;;;:::i;13388:2406:108:-;13510:30;13388:2406;13510:30;652:3172:110;;;13510:30:108;;;;;;:::i;:::-;652:3172:110;;-1:-1:-1;;;;;652:3172:110;;;;13555:31:108;13551:88;;13653:20;;;;652:3172:110;;;;;;;;;;13653:25:108;13649:85;;13748:29;;;652:3172:110;;13748:29:108;;652:3172:110;13748:43:108;;-1:-1:-1;;;;;652:3172:110;;;13748:43:108;;13744:943;;13388:2406;652:3172:110;;;15647:32:108;652:3172:110;14817:36:108;652:3172:110;;;14697:30:108;652:3172:110;;;;;;;;;;;;13555:17:108;652:3172:110;;-1:-1:-1;;;;;;652:3172:110;;;;;;-1:-1:-1;;;;;652:3172:110;;;;;;;;14697:30:108;13510;14747:13;;652:3172:110;;;;-1:-1:-1;;;;;;652:3172:110;-1:-1:-1;;;;;652:3172:110;;;;;;;;;14771:36:108;819:34:75;837:15;819:34;:::i;:::-;14738:22:108;652:3172:110;;-1:-1:-1;;;;652:3172:110;;;;;;-1:-1:-1;;;652:3172:110;;;;;;;;;14738:22:108;652:3172:110;;-1:-1:-1;;;;;652:3172:110;;;;;;-1:-1:-1;;;;;;652:3172:110;;;;;;;;14817:36:108;14864:42;652:3172:110;14883:23:108;;;652:3172:110;;;;;;;;;13555:17:108;652:3172:110;;;;;;;13555:17:108;652:3172:110;;14864:42:108;14917:38;652:3172:110;14934:21:108;;;652:3172:110;;;;;;;13555:17:108;652:3172:110;;;;;;;;;;;;13555:17:108;652:3172:110;;14917:38:108;14965:34;14980:19;;;652:3172:110;14965:34:108;652:3172:110;;14965:34:108;652:3172:110;-1:-1:-1;;;;;652:3172:110;;;;;;;15010:135:108;;13388:2406;-1:-1:-1;15158:36:108;;;652:3172:110;-1:-1:-1;;;;;652:3172:110;;;;15154:157:108;;13388:2406;-1:-1:-1;15324:35:108;;;652:3172:110;-1:-1:-1;;;;;652:3172:110;;;;15320:153:108;;13388:2406;-1:-1:-1;15486:34:108;;;652:3172:110;-1:-1:-1;;;;;652:3172:110;;;;15482:152:108;;13388:2406;-1:-1:-1;15647:32:108;652:3172:110;-1:-1:-1;;;;;652:3172:110;;;;;;;15643:145:108;;13388:2406;:::o;15643:145::-;15709:68;;;:::i;:::-;;13388:2406::o;15482:152::-;15550:73;;;:::i;:::-;;15482:152;;;15320:153;15389:73;;;:::i;:::-;;15320:153;;;15154:157;15224:76;;;:::i;:::-;;15154:157;;;15010:135;15073:61;;;:::i;:::-;;15010:135;;;13744:943;13811:36;;;652:3172:110;13811:50:108;;-1:-1:-1;;;;;652:3172:110;;;13811:50:108;;13807:405;;13744:943;14230:34;;;652:3172:110;14230:48:108;;-1:-1:-1;;;;;652:3172:110;;;14230:48:108;13744:943;14226:451;14302:21;;;652:3172:110;;14302:21:108;;14351:19;;;652:3172:110;14351:24:108;:74;;;14298:365;14347:150;;14298:365;;652:3172:110;15647:32:108;14298:365;14817:36;652:3172:110;;14298:365:108;;14226:451;;;;;;;13744:943;;14347:150;652:3172:110;-1:-1:-1;;;14460:14:108;;;;;14351:74;-1:-1:-1;14379:32:108;;;652:3172:110;14379:46:108;;-1:-1:-1;;;;;652:3172:110;;;14379:46:108;;14351:74;;14298:365;14525:19;;;652:3172:110;14525:24:108;;;:74;;;14298:365;14521:142;;14298:365;;652:3172:110;15647:32:108;14298:365;14817:36;652:3172:110;;14298:365:108;;;14525:74;-1:-1:-1;14553:32:108;;;652:3172:110;14553:46:108;;-1:-1:-1;;;;;652:3172:110;;;14553:46:108;;;14525:74;;13807:405;13885:23;;;652:3172:110;;13885:23:108;;13936:35;;;652:3172:110;13936:49:108;;-1:-1:-1;;;;;652:3172:110;;;13936:49:108;13807:405;13932:125;652:3172:110;-1:-1:-1;;;14020:14:108;;;;;13881:317;14085:35;;;652:3172:110;14085:49:108;;-1:-1:-1;;;;;652:3172:110;;;14085:49:108;14081:117;13807:405;14081:117;652:3172:110;-1:-1:-1;;;14165:14:108;;;;;13649:85;652:3172:110;;-1:-1:-1;;;13701:22:108;;;;;13551:88;652:3172:110;;-1:-1:-1;;;13609:19:108;;;;;6893:76:26;;;;;:::i;:::-;;;:::i;:::-;652:3172:110;;-1:-1:-1;;;;;652:3172:110;;;;-1:-1:-1;;;;;;;;;;;652:3172:110;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;11930:17:27;;;652:3172:110;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;652:3172:110;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;11930:17:27;;652:3172:110;;2600:7:27;652:3172:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1776:194:60;1829:135;;;;;;;;10695:389:73;5173:12:109;652:3172:110;10871:8:73;;;10895:20;10833:17;10895:20;10833:17;10895:20;10833:17;10895:20;:::o;10867:211::-;11930:17:27;;;652:3172:110;;;;;5173:12:109;10833:17:73;14439:109;;;652:3172:110;11014:1:73;;652:3172:110;;;;;;;11030:37:73:o;10695:389::-;4803:13:109;652:3172:110;10871:8:73;;;10895:20;10833:17;10895:20;10833:17;10895:20;10833:17;10895:20;:::o;10867:211::-;11930:17:27;;;652:3172:110;;;;;4803:13:109;10833:17:73;14439:109;;;652:3172:110;11014:1:73;;652:3172:110;;;;;;;11030:37:73:o;10695:389::-;652:3172:110;;10871:8:73;;;10895:20;;10833:17;10895:20;10833:17;10895:20;10833:17;10895:20;:::o;10867:211::-;11930:17:27;;652:3172:110;;;;;;;;10833:17:73;14439:109;;10833:17;14439:109;;;652:3172:110;11014:1:73;652:3172:110;;;;;;;11030:37:73;:::o;7738:720:56:-;;-1:-1:-1;7875:421:56;7738:720;7875:421;;;;;;;;;;;;-1:-1:-1;7875:421:56;;8310:15;;-1:-1:-1;;;;;;652:3172:110;;8328:26:56;:31;8310:68;8306:146;;7738:720;:::o;8306:146::-;652:3172:110;;-1:-1:-1;;;8401:40:56;;-1:-1:-1;;;;;652:3172:110;;;8401:40:56;;;652:3172:110;;;8401:40:56;8310:68;8377:1;8362:16;;8310:68;;1258:280:100;;;652:3172:110;;;;;;;;;;;;;;;;9478:25:70;;;;;:::i;:::-;9552;;;;;;:29;;652:3172:110;;;;;;;1258:280:100;:::o;652:3172:110:-;;;;;;;;:::o;:::-;-1:-1:-1;;;;;;;;;;;;652:3172:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;652:3172:110;;;;;;;;;-1:-1:-1;652:3172:110;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;;;;;;;;652:3172:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;652:3172:110;;;;;;;;;-1:-1:-1;652:3172:110;;;;;;;;-1:-1:-1;;;;;652:3172:110;;;;-1:-1:-1;;;;;;;;;;;652:3172:110;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;11930:17:27;;;652:3172:110;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;11930:17:27;;652:3172:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5173:12:109;652:3172:110;;-1:-1:-1;;;652:3172:110;;;;;;;;;5173:12:109;652:3172:110;;;;;;5173:12:109;-1:-1:-1;652:3172:110;;;;;;;;;;-1:-1:-1;;652:3172:110;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:110;;;;:::o;:::-;4803:13:109;652:3172:110;;-1:-1:-1;;;652:3172:110;;;;;;;;;4803:13:109;652:3172:110;;;;;;4803:13:109;-1:-1:-1;652:3172:110;;;;;;;;;;-1:-1:-1;;652:3172:110;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:110;;;;:::o;:::-;;;-1:-1:-1;;;652:3172:110;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;652:3172:110;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11657:922:73;5173:12:109;652:3172:110;11657:922:73;;;11864:7;;;;11936;11916:28;11936:7;;:::i;11916:28::-;652:3172:110;;;;;;;;;;;;12103:13:73;;;12099:89;;12251:14;;;;;12285:19;;;652:3172:110;;;;;;;;;;;;;;;;;12285:19:73;652:3172:110;;12423:25:73;;:::o;12247:163::-;652:3172:110;;12343:52:73;652:3172:110;12353:41:73;652:3172:110;;:::i;:::-;;;;;;;;12353:41:73;-1:-1:-1;;;;;652:3172:110;;12353:41:73;;;652:3172:110;12343:52:73;:::i;:::-;12247:163;;12099:89;652:3172:110;;-1:-1:-1;;;12143:30:73;;;;;11860:713;652:3172:110;12479:52:73;652:3172:110;12489:41:73;652:3172:110;;:::i;12489:41:73:-;-1:-1:-1;;;;;652:3172:110;;12489:41:73;;;652:3172:110;12343:52:73;:::i;12479:::-;11870:1;12545:17;;:::o;11657:922::-;4803:13:109;652:3172:110;11657:922:73;;;11864:7;;;;11936;11916:28;11936:7;;:::i;11916:28::-;652:3172:110;;;;;;;;;;;;12103:13:73;;;12099:89;;12251:14;;;;;12285:19;;;652:3172:110;;;;;;;;;;;;;;;;;12247:163:73;652:3172:110;;12343:52:73;652:3172:110;12353:41:73;652:3172:110;;:::i;12353:41:73:-;-1:-1:-1;;;;;652:3172:110;;12353:41:73;;;652:3172:110;12343:52:73;:::i;11860:713::-;652:3172:110;12479:52:73;652:3172:110;12489:41:73;652:3172:110;;:::i;12489:41:73:-;-1:-1:-1;;;;;652:3172:110;;12489:41:73;;;652:3172:110;12343:52:73;:::i;11657:922::-;652:3172:110;;11657:922:73;;;11864:7;;;;11936;11916:28;11936:7;;:::i;:::-;11916:28;14439:109;;;;;;14289:265;;11916:28;652:3172:110;;;;;;;;;;;;12103:13:73;;;12099:89;;12251:14;;;;;12285:19;;;;652:3172:110;;;;;;;;;;;;;;;;;12247:163:73;652:3172:110;;;12343:52:73;652:3172:110;12353:41:73;652:3172:110;;:::i;:::-;;;;;;;;12353:41:73;-1:-1:-1;;;;;652:3172:110;;12353:41:73;;;652:3172:110;12343:52:73;:::i;11860:713::-;652:3172:110;;12479:52:73;652:3172:110;12489:41:73;652:3172:110;;:::i;12489:41:73:-;-1:-1:-1;;;;;652:3172:110;;12489:41:73;;;652:3172:110;12343:52:73;:::i;18080:5181:70:-;18246:1;18241:6;;;18237:53;;18246:1;19217:14;-1:-1:-1;;;19278:16:70;;;19274:92;;18080:5181;22827:18;22717;22607;22498;22387;22278;23216:28;19383:15;19898:6;19383:15;-1:-1:-1;;;23237:6:70;19383:15;;;19379:90;;18080:5181;19493:7;19486:15;;;19482:90;;18080:5181;19596:7;19589:15;;;19585:89;;18080:5181;19698:6;19691:14;;;19687:87;;18080:5181;19798:6;19791:14;;;19787:87;;18080:5181;19891:14;;19887:61;;18080:5181;20374:1;652:3172:110;18246:1:70;652:3172:110;22284:6:70;;;;:::i;:::-;652:3172:110;;;;;22278:18:70;22393:6;;;;:::i;22387:18::-;22504:6;;;;:::i;22498:18::-;22613:6;;;;:::i;22607:18::-;22723:6;;;;:::i;22717:18::-;22833:6;;;;:::i;22827:18::-;23237:6;;;:::i;:::-;23232:11;;;652:3172:110;23216:28:70;652:3172:110;;18080:5181:70;:::o;19887:61::-;18246:1;652:3172:110;19887:61:70;;19787:87;652:3172:110;;;;;19787:87:70;;;19687;652:3172:110;;;;;19687:87:70;;;19585:89;652:3172:110;;;;;19585:89:70;;;19482:90;652:3172:110;;;;;19482:90:70;;;19379;652:3172:110;;;;;19379:90:70;;;19274:92;-1:-1:-1;;;;652:3172:110;-1:-1:-1;652:3172:110;;;;19274:92:70;;12929:433:73;;13112:10;;;;;;13344:11;;12929:433;:::o;13105:230::-;3721:5:70;;;;;652:3172:110;;3731:5:70;;;652:3172:110;;;;;;;;;4622:13:109;-1:-1:-1;14439:109:73;652:3172:110;14439:109:73;;-1:-1:-1;;;;;;;;;;;14439:109:73;652:3172:110;;;;;-1:-1:-1;13189:136:73;652:3172:110;;;13248:10:73;;13189:136;;13105:230;;;13189:136;652:3172:110;;;;;;;;;;;13189:136:73;;;12929:433;;13112:10;;;;;;13344:11;;12929:433;:::o;13105:230::-;3721:5:70;;;;;652:3172:110;;3731:5:70;;;652:3172:110;;;;;;;;;4994:12:109;-1:-1:-1;14439:109:73;652:3172:110;14439:109:73;;-1:-1:-1;;;;;;;;;;;14439:109:73;652:3172:110;;;;;-1:-1:-1;13189:136:73;652:3172:110;;;13248:10:73;;13189:136;;13105:230;;;13189:136;652:3172:110;;;;;;;;;;;13189:136:73;;;12929:433;;;13112:10;;;;;;13344:11;;;12929:433;:::o;13105:230::-;3721:5:70;;;;;;652:3172:110;;3731:5:70;;;652:3172:110;;;;;;;;;14439:109:73;-1:-1:-1;14439:109:73;652:3172:110;14439:109:73;;;-1:-1:-1;14439:109:73;;652:3172:110;;;;;-1:-1:-1;13189:136:73;652:3172:110;;;13248:10:73;;13189:136;;13105:230;;;;13189:136;652:3172:110;;;;;;;;;;;13189:136:73;;","linkReferences":{},"immutableReferences":{"60387":[{"start":2715,"length":32},{"start":3267,"length":32}],"71027":[{"start":5506,"length":32},{"start":6951,"length":32}],"71030":[{"start":7312,"length":32},{"start":8723,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","DELEGATOR_FACTORY()":"6da3e06d","DEPOSITOR_WHITELIST_ROLE()":"1b66c9e1","DEPOSIT_LIMIT_SET_ROLE()":"a21a1df9","DEPOSIT_WHITELIST_SET_ROLE()":"db388715","FACTORY()":"2dd31000","IS_DEPOSIT_LIMIT_SET_ROLE()":"1415519b","SLASHER_FACTORY()":"87df0788","activeBalanceOf(address)":"59f769a9","activeBalanceOfAt(address,uint48,bytes)":"efb559d6","activeShares()":"bfefcd7b","activeSharesAt(uint48,bytes)":"50f22068","activeSharesOf(address)":"9d66201b","activeSharesOfAt(address,uint48,bytes)":"2d73c69c","activeStake()":"bd49c35f","activeStakeAt(uint48,bytes)":"810da75d","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burner()":"27810b6e","claim(address,uint256)":"aad3ec96","claimBatch(address,uint256[])":"7c04c80a","collateral()":"d8dfeb45","currentEpoch()":"76671808","currentEpochStart()":"61a8c8c4","decimals()":"313ce567","delegator()":"ce9b7930","deposit(address,uint256)":"47e7ef24","depositLimit()":"ecf70858","depositWhitelist()":"48d3b775","epochAt(uint48)":"7953b33b","epochDuration()":"4ff0876a","epochDurationInit()":"46361671","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(uint64,address,bytes)":"57ec83cc","isDelegatorInitialized()":"50861adc","isDepositLimit()":"a1b12202","isDepositorWhitelisted(address)":"794b15b7","isInitialized()":"392e53cd","isSlasherInitialized()":"6ec1e3f8","isWithdrawalsClaimed(uint256,address)":"a5d03223","migrate(uint64,bytes)":"2abe3048","name()":"06fdde03","nextEpochStart()":"73790ab3","onSlash(uint256,uint48)":"7278e31c","owner()":"8da5cb5b","previousEpochStart()":"281f5752","redeem(address,uint256)":"1e9a6950","renounceOwnership()":"715018a6","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setDelegator(address)":"83cd9cc3","setDepositLimit(uint256)":"bdc8144b","setDepositWhitelist(bool)":"4105a7dd","setDepositorWhitelistStatus(address,bool)":"a2861466","setIsDepositLimit(bool)":"5346e34f","setSlasher(address)":"aabc2496","slashableBalanceOf(address)":"c31e8dd7","slasher()":"b1344271","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","totalStake()":"8b0e9f3f","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b","version()":"54fd4d50","withdraw(address,uint256)":"f3fef3a3","withdrawalShares(uint256)":"afba70ad","withdrawalSharesOf(uint256,address)":"a3b54172","withdrawals(uint256)":"5cc07076","withdrawalsOf(uint256,address)":"f5e7ee0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slasherFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyClaimed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DepositLimitReached\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientDeposit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientRedemption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientWithdrawal\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidClaimer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLengthEpochs\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOnBehalfOf\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRecipient\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoles\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoPreviousEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotFactory\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhitelistedDepositor\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchRedeem\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchWithdraw\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Claim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ClaimBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"name\":\"OnSlash\",\"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\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"SetDelegator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"SetDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositWhitelist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositorWhitelistStatus\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetIsDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"}],\"name\":\"SetSlasher\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DELEGATOR_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSITOR_WHITELIST_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_WHITELIST_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"activeBalanceOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"burner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"}],\"name\":\"claimBatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"depositedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositWhitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"epochAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDurationInit\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"initialVersion\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDelegatorInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDepositLimit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isDepositorWhitelisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSlasherInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isWithdrawalsClaimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"onSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"previousEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"withdrawnAssets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator_\",\"type\":\"address\"}],\"name\":\"setDelegator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"setDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositorWhitelistStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setIsDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher_\",\"type\":\"address\"}],\"name\":\"setSlasher\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"slashableBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawalShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Claim(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epoch\":\"epoch the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"ClaimBatch(address,address,uint256[],uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epochs\":\"epochs the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"Deposit(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral deposited\",\"depositor\":\"account that made the deposit\",\"onBehalfOf\":\"account the deposit was made on behalf of\",\"shares\":\"amount of the active shares minted\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(uint256,uint48,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to slash\",\"captureTimestamp\":\"time point when the stake was captured\",\"slashedAmount\":\"real amount of the collateral slashed\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetDelegator(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"delegator\":\"vault's delegator to delegate the stake to networks and operators\"}},\"SetDepositLimit(uint256)\":{\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"SetDepositWhitelist(bool)\":{\"params\":{\"status\":\"if enabled deposit whitelist\"}},\"SetDepositorWhitelistStatus(address,bool)\":{\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisted the account\"}},\"SetIsDepositLimit(bool)\":{\"params\":{\"status\":\"if enabled deposit limit\"}},\"SetSlasher(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"slasher\":\"vault's slasher to provide a slashing mechanism to networks\"}},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral withdrawn\",\"burnedShares\":\"amount of the active shares burned\",\"claimer\":\"account that needs to claim the withdrawal\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawer\":\"account that made the withdrawal\"}}},\"kind\":\"dev\",\"methods\":{\"activeBalanceOf(address)\":{\"params\":{\"account\":\"account to get the active balance for\"},\"returns\":{\"_0\":\"active balance for the account\"}},\"activeBalanceOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the active balance for\",\"hints\":\"hints for checkpoints' indexes\",\"timestamp\":\"time point to get the active balance for the account at\"},\"returns\":{\"_0\":\"active balance for the account at the timestamp\"}},\"activeShares()\":{\"returns\":{\"_0\":\"total number of active shares\"}},\"activeSharesAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total number of active shares at\"},\"returns\":{\"_0\":\"total number of active shares at the timestamp\"}},\"activeSharesOf(address)\":{\"params\":{\"account\":\"account to get the number of active shares for\"},\"returns\":{\"_0\":\"number of active shares for the account\"}},\"activeSharesOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the number of active shares for\",\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the number of active shares for the account at\"},\"returns\":{\"_0\":\"number of active shares for the account at the timestamp\"}},\"activeStake()\":{\"returns\":{\"_0\":\"total amount of active stake\"}},\"activeStakeAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total active stake at\"},\"returns\":{\"_0\":\"total amount of active stake at the timestamp\"}},\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"claim(address,uint256)\":{\"params\":{\"epoch\":\"epoch to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"claimBatch(address,uint256[])\":{\"params\":{\"epochs\":\"epochs to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"currentEpoch()\":{\"returns\":{\"_0\":\"current epoch\"}},\"currentEpochStart()\":{\"returns\":{\"_0\":\"start of the current epoch\"}},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"deposit(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to deposit\",\"onBehalfOf\":\"account the deposit is made on behalf of\"},\"returns\":{\"depositedAmount\":\"real amount of the collateral deposited\",\"mintedShares\":\"amount of the active shares minted\"}},\"epochAt(uint48)\":{\"details\":\"Reverts if the timestamp is less than the start of the epoch 0.\",\"params\":{\"timestamp\":\"time point to get the epoch at\"},\"returns\":{\"_0\":\"epoch at the timestamp\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(uint64,address,bytes)\":{\"params\":{\"data\":\"some data to use\",\"initialVersion\":\"initial version of the entity\",\"owner\":\"initial owner of the entity\"}},\"isInitialized()\":{\"returns\":{\"_0\":\"if the vault is fully initialized\"}},\"migrate(uint64,bytes)\":{\"params\":{\"data\":\"some data to use\",\"newVersion\":\"new version of the entity\"}},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nextEpochStart()\":{\"returns\":{\"_0\":\"start of the next epoch\"}},\"onSlash(uint256,uint48)\":{\"details\":\"Only the slasher can call this function.\",\"params\":{\"amount\":\"amount to slash\",\"captureTimestamp\":\"time point when the stake was captured\"},\"returns\":{\"slashedAmount\":\"real amount of the collateral slashed\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"previousEpochStart()\":{\"details\":\"Reverts if the current epoch is 0.\",\"returns\":{\"_0\":\"start of the previous epoch\"}},\"redeem(address,uint256)\":{\"params\":{\"claimer\":\"account that needs to claim the withdrawal\",\"shares\":\"amount of the active shares to redeem\"},\"returns\":{\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawnAssets\":\"amount of the collateral withdrawn\"}},\"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.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setDepositLimit(uint256)\":{\"details\":\"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"setDepositWhitelist(bool)\":{\"details\":\"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit whitelist\"}},\"setDepositorWhitelistStatus(address,bool)\":{\"details\":\"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.\",\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisting the account\"}},\"setIsDepositLimit(bool)\":{\"details\":\"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit limit\"}},\"slashableBalanceOf(address)\":{\"params\":{\"account\":\"account to get the slashable collateral for\"},\"returns\":{\"_0\":\"total amount of the account's slashable collateral\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalStake()\":{\"returns\":{\"_0\":\"total amount of the slashable collateral\"}},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"version()\":{\"details\":\"Starts from 1.\",\"returns\":{\"_0\":\"version of the entity\"}},\"withdraw(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to withdraw\",\"claimer\":\"account that needs to claim the withdrawal\"},\"returns\":{\"burnedShares\":\"amount of the active shares burned\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\"}},\"withdrawalsOf(uint256,address)\":{\"params\":{\"account\":\"account to get the withdrawals for\",\"epoch\":\"epoch to get the withdrawals for the account at\"},\"returns\":{\"_0\":\"withdrawals for the account at the epoch\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Claim(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a claim is made.\"},\"ClaimBatch(address,address,uint256[],uint256)\":{\"notice\":\"Emitted when a batch claim is made.\"},\"Deposit(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a deposit is made.\"},\"OnSlash(uint256,uint48,uint256)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetDelegator(address)\":{\"notice\":\"Emitted when a delegator is set.\"},\"SetDepositLimit(uint256)\":{\"notice\":\"Emitted when a deposit limit is set.\"},\"SetDepositWhitelist(bool)\":{\"notice\":\"Emitted when a deposit whitelist status is enabled/disabled.\"},\"SetDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Emitted when a depositor whitelist status is set.\"},\"SetIsDepositLimit(bool)\":{\"notice\":\"Emitted when a deposit limit status is enabled/disabled.\"},\"SetSlasher(address)\":{\"notice\":\"Emitted when a slasher is set.\"},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"notice\":\"Emitted when a withdrawal is made.\"}},\"kind\":\"user\",\"methods\":{\"DELEGATOR_FACTORY()\":{\"notice\":\"Get the delegator factory's address.\"},\"DEPOSITOR_WHITELIST_ROLE()\":{\"notice\":\"Get a depositor whitelist status setter's role.\"},\"DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit setter's role.\"},\"DEPOSIT_WHITELIST_SET_ROLE()\":{\"notice\":\"Get a deposit whitelist enabler/disabler's role.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"IS_DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit enabler/disabler's role.\"},\"SLASHER_FACTORY()\":{\"notice\":\"Get the slasher factory's address.\"},\"activeBalanceOf(address)\":{\"notice\":\"Get an active balance for a particular account.\"},\"activeBalanceOfAt(address,uint48,bytes)\":{\"notice\":\"Get an active balance for a particular account at a given timestamp using hints.\"},\"activeShares()\":{\"notice\":\"Get a total number of active shares in the vault.\"},\"activeSharesAt(uint48,bytes)\":{\"notice\":\"Get a total number of active shares in the vault at a given timestamp using a hint.\"},\"activeSharesOf(address)\":{\"notice\":\"Get a number of active shares for a particular account.\"},\"activeSharesOfAt(address,uint48,bytes)\":{\"notice\":\"Get a total number of active shares for a particular account at a given timestamp using a hint.\"},\"activeStake()\":{\"notice\":\"Get a total amount of active stake in the vault.\"},\"activeStakeAt(uint48,bytes)\":{\"notice\":\"Get a total amount of active stake in the vault at a given timestamp using a hint.\"},\"burner()\":{\"notice\":\"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract).\"},\"claim(address,uint256)\":{\"notice\":\"Claim collateral from the vault.\"},\"claimBatch(address,uint256[])\":{\"notice\":\"Claim collateral from the vault for multiple epochs.\"},\"collateral()\":{\"notice\":\"Get a vault collateral.\"},\"currentEpoch()\":{\"notice\":\"Get a current vault epoch.\"},\"currentEpochStart()\":{\"notice\":\"Get a start of the current vault epoch.\"},\"delegator()\":{\"notice\":\"Get a delegator (it delegates the vault's stake to networks and operators).\"},\"deposit(address,uint256)\":{\"notice\":\"Deposit collateral into the vault.\"},\"depositLimit()\":{\"notice\":\"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously).\"},\"depositWhitelist()\":{\"notice\":\"Get if the deposit whitelist is enabled.\"},\"epochAt(uint48)\":{\"notice\":\"Get an epoch at a given timestamp.\"},\"epochDuration()\":{\"notice\":\"Get a duration of the vault epoch.\"},\"epochDurationInit()\":{\"notice\":\"Get a time point of the epoch duration set.\"},\"initialize(uint64,address,bytes)\":{\"notice\":\"Initialize this entity contract by using a given data and setting a particular version and owner.\"},\"isDelegatorInitialized()\":{\"notice\":\"Get if the delegator is initialized.\"},\"isDepositLimit()\":{\"notice\":\"Get if the deposit limit is set.\"},\"isDepositorWhitelisted(address)\":{\"notice\":\"Get if a given account is whitelisted as a depositor.\"},\"isInitialized()\":{\"notice\":\"Check if the vault is fully initialized (a delegator and a slasher are set).\"},\"isSlasherInitialized()\":{\"notice\":\"Get if the slasher is initialized.\"},\"isWithdrawalsClaimed(uint256,address)\":{\"notice\":\"Get if the withdrawals are claimed for a particular account at a given epoch.\"},\"migrate(uint64,bytes)\":{\"notice\":\"Migrate this entity to a particular newer version using a given data.\"},\"nextEpochStart()\":{\"notice\":\"Get a start of the next vault epoch.\"},\"onSlash(uint256,uint48)\":{\"notice\":\"Slash callback for burning collateral.\"},\"previousEpochStart()\":{\"notice\":\"Get a start of the previous vault epoch.\"},\"redeem(address,uint256)\":{\"notice\":\"Redeem collateral from the vault (it will be claimable after the next epoch).\"},\"setDepositLimit(uint256)\":{\"notice\":\"Set a deposit limit.\"},\"setDepositWhitelist(bool)\":{\"notice\":\"Enable/disable deposit whitelist.\"},\"setDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Set a depositor whitelist status.\"},\"setIsDepositLimit(bool)\":{\"notice\":\"Enable/disable deposit limit.\"},\"slashableBalanceOf(address)\":{\"notice\":\"Get a total amount of the collateral that can be slashed for a given account.\"},\"slasher()\":{\"notice\":\"Get a slasher (it provides networks a slashing mechanism).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"totalStake()\":{\"notice\":\"Get a total amount of the collateral that can be slashed.\"},\"version()\":{\"notice\":\"Get the entity's version.\"},\"withdraw(address,uint256)\":{\"notice\":\"Withdraw collateral from the vault (it will be claimable after the next epoch).\"},\"withdrawalShares(uint256)\":{\"notice\":\"Get a total number of withdrawal shares at a given epoch.\"},\"withdrawalSharesOf(uint256,address)\":{\"notice\":\"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed).\"},\"withdrawals(uint256)\":{\"notice\":\"Get a total amount of the withdrawals at a given epoch.\"},\"withdrawalsOf(uint256,address)\":{\"notice\":\"Get withdrawals for a particular account at a given epoch (zero if claimed).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/vault/VaultTokenized.sol\":\"VaultTokenized\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol\":{\"keccak256\":\"0xbb96dc9c468170c3224126e953de917e06332ec5909a3d85e6e5bb0df10c5139\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d14e6486e127e7e31c2ffccfc212c7ebaaecf8fb05677575128b449ee113def2\",\"dweb:/ipfs/QmabvyfStwBcum8mGfkmxcTV45rjyHmzHGCxfxyhmu48Yx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf\",\"dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44\",\"dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/contracts/vault/VaultTokenized.sol\":{\"keccak256\":\"0xa9475a46a3e32b35e48bc37fdaf08e1a586fb7c9667ac5e014b716a08873c46d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://0a292a4f35bc43ce7174b36e2d016bc44d6737e94b41e48cb5dd1bb1e4821e48\",\"dweb:/ipfs/QmduHZe2REPnygiWvQRV82yD4tYHdwX33FkYRFm1UZoXBA\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]},\"src/interfaces/vault/IVaultTokenized.sol\":{\"keccak256\":\"0xb723560b49c30b38130634388a0550c9e07596f92a58edbfa2415e690024e0c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc9dde973a0bbf0adbc305462a796fa3b2e5be9daa1984e4f3e4f48e3c254f39\",\"dweb:/ipfs/QmQydZsr7ESw7ZSe9mqaxZ3dycvru8ZFVwrL9pmVnpyd7c\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"address","name":"slasherFactory","type":"address"},{"internalType":"address","name":"vaultFactory","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadyClaimed"},{"inputs":[],"type":"error","name":"AlreadyInitialized"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DelegatorAlreadyInitialized"},{"inputs":[],"type":"error","name":"DepositLimitReached"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[],"type":"error","name":"InsufficientClaim"},{"inputs":[],"type":"error","name":"InsufficientDeposit"},{"inputs":[],"type":"error","name":"InsufficientRedemption"},{"inputs":[],"type":"error","name":"InsufficientWithdrawal"},{"inputs":[],"type":"error","name":"InvalidAccount"},{"inputs":[],"type":"error","name":"InvalidCaptureEpoch"},{"inputs":[],"type":"error","name":"InvalidClaimer"},{"inputs":[],"type":"error","name":"InvalidCollateral"},{"inputs":[],"type":"error","name":"InvalidDelegator"},{"inputs":[],"type":"error","name":"InvalidEpoch"},{"inputs":[],"type":"error","name":"InvalidEpochDuration"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidLengthEpochs"},{"inputs":[],"type":"error","name":"InvalidOnBehalfOf"},{"inputs":[],"type":"error","name":"InvalidRecipient"},{"inputs":[],"type":"error","name":"InvalidSlasher"},{"inputs":[],"type":"error","name":"InvalidTimestamp"},{"inputs":[],"type":"error","name":"MissingRoles"},{"inputs":[],"type":"error","name":"NoPreviousEpoch"},{"inputs":[],"type":"error","name":"NotDelegator"},{"inputs":[],"type":"error","name":"NotFactory"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotWhitelistedDepositor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"SlasherAlreadyInitialized"},{"inputs":[],"type":"error","name":"TooMuchRedeem"},{"inputs":[],"type":"error","name":"TooMuchWithdraw"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"epoch","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Claim","anonymous":false},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256[]","name":"epochs","type":"uint256[]","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"ClaimBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"depositor","type":"address","indexed":true},{"internalType":"address","name":"onBehalfOf","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false}],"type":"event","name":"OnSlash","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":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true}],"type":"event","name":"SetDelegator","anonymous":false},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256","indexed":false}],"type":"event","name":"SetDepositLimit","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositWhitelist","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositorWhitelistStatus","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetIsDepositLimit","anonymous":false},{"inputs":[{"internalType":"address","name":"slasher","type":"address","indexed":true}],"type":"event","name":"SetSlasher","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"withdrawer","type":"address","indexed":true},{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"burnedShares","type":"uint256","indexed":false},{"internalType":"uint256","name":"mintedShares","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DELEGATOR_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSITOR_WHITELIST_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeBalanceOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeSharesOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeStakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"burner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256[]","name":"epochs","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"claimBatch","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"delegator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"onBehalfOf","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"depositedAmount","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"epochAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDurationInit","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"initialVersion","type":"uint64"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isDelegatorInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isDepositLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isDepositorWhitelisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isSlasherInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isWithdrawalsClaimed","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"newVersion","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"migrate"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nextEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"onSlash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"previousEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"withdrawnAssets","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"delegator_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegator"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDepositLimit"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositWhitelist"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositorWhitelistStatus"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setIsDepositLimit"},{"inputs":[{"internalType":"address","name":"slasher_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSlasher"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"slashableBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"slasher","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"burnedShares","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawalShares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalSharesOf","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawals","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"activeBalanceOf(address)":{"params":{"account":"account to get the active balance for"},"returns":{"_0":"active balance for the account"}},"activeBalanceOfAt(address,uint48,bytes)":{"params":{"account":"account to get the active balance for","hints":"hints for checkpoints' indexes","timestamp":"time point to get the active balance for the account at"},"returns":{"_0":"active balance for the account at the timestamp"}},"activeShares()":{"returns":{"_0":"total number of active shares"}},"activeSharesAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total number of active shares at"},"returns":{"_0":"total number of active shares at the timestamp"}},"activeSharesOf(address)":{"params":{"account":"account to get the number of active shares for"},"returns":{"_0":"number of active shares for the account"}},"activeSharesOfAt(address,uint48,bytes)":{"params":{"account":"account to get the number of active shares for","hint":"hint for the checkpoint index","timestamp":"time point to get the number of active shares for the account at"},"returns":{"_0":"number of active shares for the account at the timestamp"}},"activeStake()":{"returns":{"_0":"total amount of active stake"}},"activeStakeAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total active stake at"},"returns":{"_0":"total amount of active stake at the timestamp"}},"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"claim(address,uint256)":{"params":{"epoch":"epoch to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"claimBatch(address,uint256[])":{"params":{"epochs":"epochs to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"currentEpoch()":{"returns":{"_0":"current epoch"}},"currentEpochStart()":{"returns":{"_0":"start of the current epoch"}},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"deposit(address,uint256)":{"params":{"amount":"amount of the collateral to deposit","onBehalfOf":"account the deposit is made on behalf of"},"returns":{"depositedAmount":"real amount of the collateral deposited","mintedShares":"amount of the active shares minted"}},"epochAt(uint48)":{"details":"Reverts if the timestamp is less than the start of the epoch 0.","params":{"timestamp":"time point to get the epoch at"},"returns":{"_0":"epoch at the timestamp"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(uint64,address,bytes)":{"params":{"data":"some data to use","initialVersion":"initial version of the entity","owner":"initial owner of the entity"}},"isInitialized()":{"returns":{"_0":"if the vault is fully initialized"}},"migrate(uint64,bytes)":{"params":{"data":"some data to use","newVersion":"new version of the entity"}},"name()":{"details":"Returns the name of the token."},"nextEpochStart()":{"returns":{"_0":"start of the next epoch"}},"onSlash(uint256,uint48)":{"details":"Only the slasher can call this function.","params":{"amount":"amount to slash","captureTimestamp":"time point when the stake was captured"},"returns":{"slashedAmount":"real amount of the collateral slashed"}},"owner()":{"details":"Returns the address of the current owner."},"previousEpochStart()":{"details":"Reverts if the current epoch is 0.","returns":{"_0":"start of the previous epoch"}},"redeem(address,uint256)":{"params":{"claimer":"account that needs to claim the withdrawal","shares":"amount of the active shares to redeem"},"returns":{"mintedShares":"amount of the epoch withdrawal shares minted","withdrawnAssets":"amount of the collateral withdrawn"}},"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."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setDepositLimit(uint256)":{"details":"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"limit":"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)"}},"setDepositWhitelist(bool)":{"details":"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit whitelist"}},"setDepositorWhitelistStatus(address,bool)":{"details":"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.","params":{"account":"account for which the whitelist status is set","status":"if whitelisting the account"}},"setIsDepositLimit(bool)":{"details":"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit limit"}},"slashableBalanceOf(address)":{"params":{"account":"account to get the slashable collateral for"},"returns":{"_0":"total amount of the account's slashable collateral"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalStake()":{"returns":{"_0":"total amount of the slashable collateral"}},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"version()":{"details":"Starts from 1.","returns":{"_0":"version of the entity"}},"withdraw(address,uint256)":{"params":{"amount":"amount of the collateral to withdraw","claimer":"account that needs to claim the withdrawal"},"returns":{"burnedShares":"amount of the active shares burned","mintedShares":"amount of the epoch withdrawal shares minted"}},"withdrawalsOf(uint256,address)":{"params":{"account":"account to get the withdrawals for","epoch":"epoch to get the withdrawals for the account at"},"returns":{"_0":"withdrawals for the account at the epoch"}}},"version":1},"userdoc":{"kind":"user","methods":{"DELEGATOR_FACTORY()":{"notice":"Get the delegator factory's address."},"DEPOSITOR_WHITELIST_ROLE()":{"notice":"Get a depositor whitelist status setter's role."},"DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit setter's role."},"DEPOSIT_WHITELIST_SET_ROLE()":{"notice":"Get a deposit whitelist enabler/disabler's role."},"FACTORY()":{"notice":"Get the factory's address."},"IS_DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit enabler/disabler's role."},"SLASHER_FACTORY()":{"notice":"Get the slasher factory's address."},"activeBalanceOf(address)":{"notice":"Get an active balance for a particular account."},"activeBalanceOfAt(address,uint48,bytes)":{"notice":"Get an active balance for a particular account at a given timestamp using hints."},"activeShares()":{"notice":"Get a total number of active shares in the vault."},"activeSharesAt(uint48,bytes)":{"notice":"Get a total number of active shares in the vault at a given timestamp using a hint."},"activeSharesOf(address)":{"notice":"Get a number of active shares for a particular account."},"activeSharesOfAt(address,uint48,bytes)":{"notice":"Get a total number of active shares for a particular account at a given timestamp using a hint."},"activeStake()":{"notice":"Get a total amount of active stake in the vault."},"activeStakeAt(uint48,bytes)":{"notice":"Get a total amount of active stake in the vault at a given timestamp using a hint."},"burner()":{"notice":"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract)."},"claim(address,uint256)":{"notice":"Claim collateral from the vault."},"claimBatch(address,uint256[])":{"notice":"Claim collateral from the vault for multiple epochs."},"collateral()":{"notice":"Get a vault collateral."},"currentEpoch()":{"notice":"Get a current vault epoch."},"currentEpochStart()":{"notice":"Get a start of the current vault epoch."},"delegator()":{"notice":"Get a delegator (it delegates the vault's stake to networks and operators)."},"deposit(address,uint256)":{"notice":"Deposit collateral into the vault."},"depositLimit()":{"notice":"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously)."},"depositWhitelist()":{"notice":"Get if the deposit whitelist is enabled."},"epochAt(uint48)":{"notice":"Get an epoch at a given timestamp."},"epochDuration()":{"notice":"Get a duration of the vault epoch."},"epochDurationInit()":{"notice":"Get a time point of the epoch duration set."},"initialize(uint64,address,bytes)":{"notice":"Initialize this entity contract by using a given data and setting a particular version and owner."},"isDelegatorInitialized()":{"notice":"Get if the delegator is initialized."},"isDepositLimit()":{"notice":"Get if the deposit limit is set."},"isDepositorWhitelisted(address)":{"notice":"Get if a given account is whitelisted as a depositor."},"isInitialized()":{"notice":"Check if the vault is fully initialized (a delegator and a slasher are set)."},"isSlasherInitialized()":{"notice":"Get if the slasher is initialized."},"isWithdrawalsClaimed(uint256,address)":{"notice":"Get if the withdrawals are claimed for a particular account at a given epoch."},"migrate(uint64,bytes)":{"notice":"Migrate this entity to a particular newer version using a given data."},"nextEpochStart()":{"notice":"Get a start of the next vault epoch."},"onSlash(uint256,uint48)":{"notice":"Slash callback for burning collateral."},"previousEpochStart()":{"notice":"Get a start of the previous vault epoch."},"redeem(address,uint256)":{"notice":"Redeem collateral from the vault (it will be claimable after the next epoch)."},"setDepositLimit(uint256)":{"notice":"Set a deposit limit."},"setDepositWhitelist(bool)":{"notice":"Enable/disable deposit whitelist."},"setDepositorWhitelistStatus(address,bool)":{"notice":"Set a depositor whitelist status."},"setIsDepositLimit(bool)":{"notice":"Enable/disable deposit limit."},"slashableBalanceOf(address)":{"notice":"Get a total amount of the collateral that can be slashed for a given account."},"slasher()":{"notice":"Get a slasher (it provides networks a slashing mechanism)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"totalStake()":{"notice":"Get a total amount of the collateral that can be slashed."},"version()":{"notice":"Get the entity's version."},"withdraw(address,uint256)":{"notice":"Withdraw collateral from the vault (it will be claimable after the next epoch)."},"withdrawalShares(uint256)":{"notice":"Get a total number of withdrawal shares at a given epoch."},"withdrawalSharesOf(uint256,address)":{"notice":"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed)."},"withdrawals(uint256)":{"notice":"Get a total amount of the withdrawals at a given epoch."},"withdrawalsOf(uint256,address)":{"notice":"Get withdrawals for a particular account at a given epoch (zero if claimed)."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/vault/VaultTokenized.sol":"VaultTokenized"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol":{"keccak256":"0xbb96dc9c468170c3224126e953de917e06332ec5909a3d85e6e5bb0df10c5139","urls":["bzz-raw://d14e6486e127e7e31c2ffccfc212c7ebaaecf8fb05677575128b449ee113def2","dweb:/ipfs/QmabvyfStwBcum8mGfkmxcTV45rjyHmzHGCxfxyhmu48Yx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866","urls":["bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf","dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab","urls":["bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89","dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606","urls":["bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1","dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f","urls":["bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44","dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/contracts/vault/VaultTokenized.sol":{"keccak256":"0xa9475a46a3e32b35e48bc37fdaf08e1a586fb7c9667ac5e014b716a08873c46d","urls":["bzz-raw://0a292a4f35bc43ce7174b36e2d016bc44d6737e94b41e48cb5dd1bb1e4821e48","dweb:/ipfs/QmduHZe2REPnygiWvQRV82yD4tYHdwX33FkYRFm1UZoXBA"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"},"src/interfaces/vault/IVaultTokenized.sol":{"keccak256":"0xb723560b49c30b38130634388a0550c9e07596f92a58edbfa2415e690024e0c4","urls":["bzz-raw://dc9dde973a0bbf0adbc305462a796fa3b2e5be9daa1984e4f3e4f48e3c254f39","dweb:/ipfs/QmQydZsr7ESw7ZSe9mqaxZ3dycvru8ZFVwrL9pmVnpyd7c"],"license":"MIT"}},"version":1},"id":110} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"slasherFactory","type":"address","internalType":"address"},{"name":"vaultFactory","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DELEGATOR_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEPOSITOR_WHITELIST_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeShares","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStakeAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimBatch","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epochs","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"currentEpoch","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"currentEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"delegator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"onBehalfOf","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"depositedAmount","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"depositLimit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"depositWhitelist","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"epochAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"epochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"epochDurationInit","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialVersion","type":"uint64","internalType":"uint64"},{"name":"owner_","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isDelegatorInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositLimit","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositorWhitelisted","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSlasherInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isWithdrawalsClaimed","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"migrate","inputs":[{"name":"newVersion","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nextEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"previousEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"redeem","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"withdrawnAssets","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegator","inputs":[{"name":"delegator_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositLimit","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositWhitelist","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setIsDepositLimit","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSlasher","inputs":[{"name":"slasher_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slashableBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slasher","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"burnedShares","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawalShares","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalSharesOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawals","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalsOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Claim","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epoch","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ClaimBatch","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epochs","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"onBehalfOf","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"slashedAmount","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":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDelegator","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDepositLimit","inputs":[{"name":"limit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetDepositWhitelist","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetIsDepositLimit","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetSlasher","inputs":[{"name":"slasher","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"withdrawer","type":"address","indexed":true,"internalType":"address"},{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"burnedShares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"mintedShares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadyClaimed","inputs":[]},{"type":"error","name":"AlreadyInitialized","inputs":[]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DelegatorAlreadyInitialized","inputs":[]},{"type":"error","name":"DepositLimitReached","inputs":[]},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"InsufficientClaim","inputs":[]},{"type":"error","name":"InsufficientDeposit","inputs":[]},{"type":"error","name":"InsufficientRedemption","inputs":[]},{"type":"error","name":"InsufficientWithdrawal","inputs":[]},{"type":"error","name":"InvalidAccount","inputs":[]},{"type":"error","name":"InvalidCaptureEpoch","inputs":[]},{"type":"error","name":"InvalidClaimer","inputs":[]},{"type":"error","name":"InvalidCollateral","inputs":[]},{"type":"error","name":"InvalidDelegator","inputs":[]},{"type":"error","name":"InvalidEpoch","inputs":[]},{"type":"error","name":"InvalidEpochDuration","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidLengthEpochs","inputs":[]},{"type":"error","name":"InvalidOnBehalfOf","inputs":[]},{"type":"error","name":"InvalidRecipient","inputs":[]},{"type":"error","name":"InvalidSlasher","inputs":[]},{"type":"error","name":"InvalidTimestamp","inputs":[]},{"type":"error","name":"MissingRoles","inputs":[]},{"type":"error","name":"NoPreviousEpoch","inputs":[]},{"type":"error","name":"NotDelegator","inputs":[]},{"type":"error","name":"NotFactory","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotWhitelistedDepositor","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SlasherAlreadyInitialized","inputs":[]},{"type":"error","name":"TooMuchRedeem","inputs":[]},{"type":"error","name":"TooMuchWithdraw","inputs":[]}],"bytecode":{"object":"0x60e03461013c57601f61569238819003918201601f1916830192916001600160401b03918285118486101761014057816060928592604097885283398101031261013c5761004c82610154565b916100648461005d60208401610154565b9201610154565b9260805260a0527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82861c1661012b5780808316036100e7575b50505060c05251615529908161016982396080518181816115810152611b26015260a051818181611c8f0152612212015260c051818181610a9c0152610cc20152f35b6001600160401b0319909116811790915582519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a4565b845163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361013c5756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104ba57806306fdde03146104b5578063095ea7b3146104b05780631415519b146104ab57806318160ddd146103895780631b66c9e1146104a65780631e9a6950146104a157806323b872dd1461049c578063248a9ca31461049757806327810b6e14610492578063281f57521461048d5780632abe3048146104885780632d73c69c146104835780632dd310001461047e5780632f2ff15d14610479578063313ce5671461047457806336568abe1461046f578063392e53cd1461046a5780634105a7dd14610465578063463616711461046057806347e7ef241461045b57806348d3b775146104565780634ff0876a1461045157806350861adc1461044c57806350f22068146104475780635346e34f1461044257806354fd4d501461043d57806357ec83cc1461043857806359f769a9146104335780635cc070761461042e57806361a8c8c4146104295780636da3e06d146104245780636ec1e3f81461041f57806370a08231146103d4578063715018a61461041a5780637278e31c1461041557806373790ab314610410578063766718081461040b578063794b15b7146104065780637953b33b146104015780637c04c80a146103fc578063810da75d146103f757806383cd9cc3146103f257806387df0788146103ed5780638b0e9f3f146103e85780638da5cb5b146103e357806391d14854146103de57806395d89b41146103d95780639d66201b146103d45780639f86fd85146103cf578063a1b12202146103ca578063a217fddf146103c5578063a21a1df9146103c0578063a2861466146103bb578063a3b54172146103b6578063a5d03223146103b1578063a9059cbb146103ac578063aabc2496146103a7578063aad3ec96146103a2578063afba70ad1461039d578063b134427114610398578063bd49c35f14610393578063bdc8144b1461038e578063bfefcd7b14610389578063c31e8dd714610384578063ce9b79301461037f578063d547741f1461037a578063d8dfeb4514610375578063db38871514610370578063dd62ed3e1461036b578063ecf7085814610366578063efb559d614610361578063f2fde38b1461035c578063f3fef3a3146103575763f5e7ee0f14610352575f80fd5b6128cc565b612826565b6127f9565b6126aa565b61268d565b612656565b61261c565b6125f1565b6125a5565b61257d565b612513565b610749565b612435565b61241b565b6123f3565b6123c9565b612308565b612151565b61211c565b6120d6565b612089565b611f96565b611f5c565b611f42565b611f1e565b611e64565b6115d5565b611db2565b611d54565b611d20565b611cbe565b611c7a565b611ac1565b611aa8565b611a42565b611a1b565b6119db565b611989565b611948565b611676565b61160f565b6115b0565b61156c565b611519565b6114ef565b6114c8565b611390565b61135e565b6112c9565b6112b0565b611253565b611233565b611212565b610f2a565b610f02565b610e67565b610e22565b610dd7565b610d3f565b610cf1565b610cad565b610c41565b610a56565b610988565b610960565b610927565b61088a565b6107a5565b61076b565b61070f565b61064d565b61054c565b346105105760203660031901126105105760043563ffffffff60e01b811680910361051057602090637965db0b60e01b81149081156104ff575b506040519015158152f35b6301ffc9a760e01b1490505f6104f4565b5f80fd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b906020610549928181520190610514565b90565b34610510575f366003190112610510576040515f5f805160206153d483398151915280549061057a826128f6565b8085529160209160019182811690811561060f57506001146105b7575b6105b3866105a781880382610b85565b60405191829182610538565b0390f35b5f90815293507f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab05b8385106105fc575050505081016020016105a7826105b35f610597565b80548686018401529382019381016105df565b90508695506105b3969350602092506105a794915060ff191682840152151560051b82010192935f610597565b6001600160a01b0381160361051057565b346105105760403660031901126105105760043561066a8161063c565b60243533156106f7576001600160a01b0382169182156106df576106a78291610692336119a3565b9060018060a01b03165f5260205260405f2090565b556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b604051634a1406b160e11b81525f6004820152602490fd5b60405163e602df0560e01b81525f6004820152602490fd5b34610510575f3660031901126105105760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b34610510575f366003190112610510576020610763613feb565b604051908152f35b34610510575f3660031901126105105760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b34610510576040366003190112610510576004356107c28161063c565b602435906107ce612e0e565b6001600160a01b0381161561087957335f908152600e602052604090206107f9906140d8565b6140d8565b82116108675761081961080a614064565b610812613feb565b908461414c565b918215610852578261082a92612e3d565b9061084160015f805160206154b483398151915255565b604080519182526020820192909252f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b34610510576060366003190112610510576004356108a78161063c565b6024356108b38161063c565b604435906108c433610692856119a3565b5492600184016108e5575b6108d99350612fcd565b60405160018152602090f35b828410610901576108fc836108d995033383614125565b6108cf565b604051637dc7a0d960e11b81523360048201526024810185905260448101849052606490fd5b34610510576020366003190112610510576004355f525f805160206154948339815191526020526020600160405f200154604051908152f35b34610510575f366003190112610510576001546040516001600160a01b039091168152602090f35b34610510575f366003190112610510576109a0612b62565b8015610a015760015465ffffffffffff8160a01c16915f1981019081116109fc576109ce9160d01c9061295d565b81018091116109fc576109e36105b39161312c565b60405165ffffffffffff90911681529081906020820190565b61292e565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b038216820361051057565b9181601f84011215610510578235916001600160401b038311610510576020838186019501011161051057565b3461051057604036600319011261051057610a6f610a13565b6001600160401b0360243581811161051057610a8f903690600401610a29565b929091610a9a612e0e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610b14575f805160206154d4833981519152549060ff8260401c16928315610b04575b5050501561315e575b60405163f92ee8a960e01b8152600490fd5b81169116101590505f8080610ae9565b604051631966391b60e11b8152600490fd5b65ffffffffffff81160361051057565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b03821117610b6557604052565b610b36565b604081019081106001600160401b03821117610b6557604052565b90601f801991011681019081106001600160401b03821117610b6557604052565b6040519061016082018281106001600160401b03821117610b6557604052565b60405190610bd382610b6a565b565b6001600160401b038111610b6557601f01601f191660200190565b929192610bfc82610bd5565b91610c0a6040519384610b85565b829481845281830111610510578281602093845f960137010152565b9080601f830112156105105781602061054993359101610bf0565b3461051057606036600319011261051057600435610c5e8161063c565b60243590610c6b82610b26565b604435906001600160401b03821161051057602092610c91610763933690600401610c26565b6001600160a01b039092165f908152600e855260409020613330565b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461051057604036600319011261051057610d3d602435600435610d148261063c565b805f525f80516020615494833981519152602052610d38600160405f200154613507565b613807565b005b34610510575f366003190112610510575f5460405163313ce56760e01b8152906020908290600490829060101c6001600160a01b03165afa8015610dd2575f90610d94575b60405160ff919091168152602090f35b506020813d602011610dca575b81610dae60209383610b85565b81010312610510575160ff81168103610510576105b390610d84565b3d9150610da1565b6129ac565b3461051057604036600319011261051057602435610df48161063c565b336001600160a01b03821603610e1057610d3d9060043561383d565b60405163334bd91960e11b8152600490fd5b34610510575f3660031901126105105760ff60025460a01c1680610e4e575b6020906040519015158152f35b5060035460a01c60ff16610e41565b8015150361051057565b3461051057602036600319011261051057600435610e8481610e5d565b610e8c612e0e565b610e946133fc565b5f54901515908160ff8216151514610ef05760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f805160206154b483398151915255005b60405163a741a04560e01b8152600490fd5b34610510575f36600319011261051057602065ffffffffffff60015460a01c16604051908152f35b3461051057604080600319360112610510576004803591610f4a8361063c565b610f52612e0e565b6001600160a01b0391838316908115611204575f5460ff8116806111eb575b6111dc5783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610dd2575f936111b9575b50610fc6906024359030903390614535565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610dd257611005935f9261118c575b5050612950565b93841561117d5760081c60ff1680611168575b61115a5750906105b3916110c961102d614064565b95611076611039613feb565b6110616110478a838b61414c565b9961105b8a6110554261312c565b9261297e565b90613c86565b5050611070896110554261312c565b90613d66565b50506001600160a01b0381165f908152600e60205260409020906110c3886110be6107f46110a34261312c565b6001600160a01b039095165f908152600e6020526040902090565b61297e565b91613e42565b5050815184815260208101869052819033907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a361111760015f805160206154b483398151915255565b81518581525f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090a35191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50611175846110be614064565b815410611018565b50825163070f6eed60e11b8152fd5b6111ab9250803d106111b2575b6111a38183610b85565b8101906138cf565b5f80610ffe565b503d611199565b610fc69193506111d590853d87116111b2576111a38183610b85565b9290610fb4565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610f71565b8251630d534ce360e11b8152fd5b34610510575f36600319011261051057602060ff5f54166040519015158152f35b34610510575f36600319011261051057602060015460d01c604051908152f35b34610510575f36600319011261051057602060ff60025460a01c166040519015158152f35b9060406003198301126105105760043561129181610b26565b91602435906001600160401b0382116105105761054991600401610c26565b346105105760206107636112c336611278565b9061319a565b34610510576020366003190112610510576004356112e681610e5d565b6112ee612e0e565b6112f6613459565b5f54901515908160ff8260081c16151514610ef05761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610d3d60015f805160206154b483398151915255565b34610510575f3660031901126105105760206001600160401b035f805160206154d48339815191525416604051908152f35b34610510576060366003190112610510576113a9610a13565b6024356113b58161063c565b6001600160401b0391604435838111610510576113d6903690600401610a29565b5f805160206154d48339815191529491855494838616806114b75760ff8760401c169081156114aa575b50610af2577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966114a59661146d958716906001600160401b0319161790556114685f805160206154d4833981519152600160401b68ff000000000000000019825416179055565b6129b7565b5f805160206154d4833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f611400565b60405162dc149f60e41b8152600490fd5b346105105760203660031901126105105760206107636004356114ea8161063c565b612acb565b34610510576020366003190112610510576004355f526006602052602060405f2054604051908152f35b34610510575f3660031901126105105760015465ffffffffffff61154f818360a01c1692611545612b62565b9060d01c9061295d565b82018092116109fc5761156360209261312c565b60405191168152f35b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610510575f36600319011261051057602060ff60035460a01c166040519015158152f35b34610510576020366003190112610510576004356115f28161063c565b60018060a01b03165f52600e602052602061076360405f206140d8565b34610510575f36600319011261051057611627613abb565b5f8051602061543483398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346105105760403660031901126105105760043560243561169681610b26565b61169e612e0e565b6003546116bb906001600160a01b03165b6001600160a01b031690565b3303611936576116c9612b62565b906116d381612b96565b9082151580611925575b801561191c575b61190a576105b3937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c792611716614064565b9461173161172382612970565b5f52600660205260405f2090565b54908281036118245750611745818761297e565b8381188185100281189687806117dd575b50505050505b836117a9575b6040805191825265ffffffffffff929092166020820152908101839052606090a161179960015f805160206154b483398151915255565b6040519081529081906020820190565b5f546117d89085906117c69060101c6001600160a01b03166116af565b6001546001600160a01b031690613f00565b611762565b61181993610ffe8361105b6118036117fc611723986118139888613afd565b8096612950565b9461180d4261312c565b92612950565b92612970565b555f80808087611756565b9150611838825f52600660205260405f2090565b5490611848816110be848a61297e565b908482188286100282189788611863575b505050505061175c565b6118d8938361188b936118988c6118936118816118c9998884613afd565b9788958584613afd565b948592612950565b612950565b938484106118e3575b610ffe9061105b6118b795969761180d4261312c565b6118c361172387612970565b55612950565b915f52600660205260405f2090565b555f80808080611859565b916118ff610ffe916118f9866118b79798612950565b9061297e565b8594509290506118a1565b604051635e18d2a560e01b8152600490fd5b508282116116e4565b5061192f83612942565b82106116dd565b60405163dabc4ad960e01b8152600490fd5b34610510575f3660031901126105105760015465ffffffffffff808260a01c1691611971612b62565b600181018091116109fc5761154f9160d01c9061295d565b34610510575f366003190112610510576020610763612b62565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b34610510576020366003190112610510576004356119f88161063c565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b34610510576020366003190112610510576020610763600435611a3d81610b26565b612b96565b3461051057604036600319011261051057600435611a5f8161063c565b6024356001600160401b038082116105105736602383011215610510578160040135908111610510573660248260051b84010111610510576105b3926024611799930190612bd1565b34610510576020610763611abb36611278565b9061327b565b3461051057602080600319360112610510576004803590611ae18261063c565b611ae9612e0e565b60025460a01c60ff16611c6b576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd2575f91611c3e575b5015611c2e5760405163fbfa77cf60e01b8152838516949082818581895afa928315610dd2575f93611bff575b505030911603611bf05750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610d3d60015f805160206154b483398151915255565b60405163b9f0f17160e01b8152fd5b611c1f929350803d10611c27575b611c178183610b85565b810190612d2a565b905f80611b83565b503d611c0d565b506040516324e5af8d60e21b8152fd5b611c5e9150823d8411611c64575b611c568183610b85565b810190612d0a565b5f611b56565b503d611c4c565b604051631380833b60e01b8152fd5b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610510575f36600319011261051057611cd6612b62565b611cde614064565b90805f52600660205260405f205482018092116109fc57600181018091116109fc575f52600660205260405f205481018091116109fc57602090604051908152f35b34610510575f366003190112610510575f80516020615434833981519152546040516001600160a01b039091168152602090f35b3461051057604036600319011261051057602060ff611da6602435611d788161063c565b6004355f525f80516020615494833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b34610510575f366003190112610510576040515f5f80516020615414833981519152805490611de0826128f6565b8085529160209160019182811690811561060f5750600114611e0c576105b3866105a781880382610b85565b5f90815293507f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa5b838510611e51575050505081016020016105a7826105b35f610597565b8054868601840152938201938101611e34565b346105105760408060031936011261051057600435611e828161063c565b602435906001600160401b038211610510575f8091611ea8611f0c943690600401610a29565b908187519283928337810184815203915af43d15611f1457611efe3d611ecd81610bd5565b90611eda86519283610b85565b81523d5f602083013e5b845194859315156020850152808401526060830190610514565b03601f198101835282610b85565b805190602001fd5b611efe6060611ee4565b34610510575f36600319011261051057602060ff5f5460081c166040519015158152f35b34610510575f3660031901126105105760206040515f8152f35b34610510575f3660031901126105105760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b3461051057604036600319011261051057600435611fb38161063c565b602435611fbf81610e5d565b611fc7612e0e565b611fcf6134b0565b6001600160a01b038216918215612077575f8381526005602052604090205460ff16151582151514610ef0576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a629161205e9161204c908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610d3d60015f805160206154b483398151915255565b604051630da30f6560e31b8152600490fd5b346105105760403660031901126105105760206120cd6024356120ab8161063c565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b3461051057604036600319011261051057602060ff611da66024356120fa8161063c565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b346105105760403660031901126105105761214660043561213c8161063c565b6024359033612fcd565b602060405160018152f35b34610510576020806003193601126105105760048035906121718261063c565b612179612e0e565b60035460a01c60ff166122f9576001600160a01b038281169390846121e7575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610d3d60015f805160206154b483398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd2575f916122dc575b50156122cb5760405163fbfa77cf60e01b815282818581895afa928315610dd2575f936122ac575b50503091160361229d5750600380546001600160a01b0319166001600160a01b039092169190911790555f808080612199565b604051633f3e089160e21b8152fd5b6122c3929350803d10611c2757611c178183610b85565b905f8061226a565b60405163dabc4ad960e01b81528390fd5b6122f39150833d8511611c6457611c568183610b85565b5f612242565b60405163703fe2e560e01b8152fd5b34610510576040366003190112610510576004356123258161063c565b60243590612331612e0e565b6001600160a01b03918183169081156123b7576123626105b39461235483613f4f565b9485915f5460101c16613f00565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f805160206154b4833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b34610510576020366003190112610510576004355f526007602052602060405f2054604051908152f35b34610510575f366003190112610510576003546040516001600160a01b039091168152602090f35b34610510575f366003190112610510576020610763614064565b3461051057602036600319011261051057600435612451612e0e565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff16156124f557508060045414610ef0576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f805160206154b483398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b34610510576020366003190112610510576004356125308161063c565b612538612b62565b61254182612acb565b9161254c8183612db0565b83018093116109fc57600182018092116109fc5761256991612db0565b81018091116109fc57602090604051908152f35b34610510575f366003190112610510576002546040516001600160a01b039091168152602090f35b3461051057604036600319011261051057610d3d6024356004356125c88261063c565b805f525f805160206154948339815191526020526125ec600160405f200154613507565b61383d565b34610510575f366003190112610510575f5460405160109190911c6001600160a01b03168152602090f35b34610510575f3660031901126105105760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b346105105760403660031901126105105760206120cd6004356126788161063c565b610692602435916126888361063c565b6119a3565b34610510575f366003190112610510576020600454604051908152f35b34610510576060366003190112610510576004356126c78161063c565b602435906126d482610b26565b6001600160401b0391604435838111610510576126f5903690600401610a29565b9092604093845161270581610b4a565b60608152606060208201526060868201529280612764575b6105b386612755878761274f612736898484519161298b565b928561274660208501518361327b565b9301519061319a565b9161414c565b90519081529081906020820190565b8101939250602081850312610510578035908682116105105701926060848203126105105784519561279587610b4a565b843581811161051057826127aa918701610c26565b8752602085013581811161051057826127c4918701610c26565b602088015285850135908111610510576105b3966127ed61274f93612736936127559801610c26565b8782015293945061271d565b3461051057602036600319011261051057610d3d6004356128198161063c565b612821613abb565b612d3f565b34610510576040366003190112610510576004356128438161063c565b60243561284e612e0e565b6001600160a01b038216156108795780156128ba5761287d61286e613feb565b612876614064565b9083614bfe565b335f908152600e60205260409020909290612897906140d8565b83116128a85761082a918391612e3d565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b346105105760403660031901126105105760206107636024356128ee8161063c565b600435612db0565b90600182811c92168015612924575b602083101461291057565b634e487b7160e01b5f52602260045260245ffd5b91607f1691612905565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116109fc57565b919082039182116109fc57565b818102929181159184041417156109fc57565b90600182018092116109fc57565b919082018092116109fc57565b6001600160a01b03165f908152600e60205260409020610549929190613330565b6040513d5f823e3d90fd5b916129f4926129c461458d565b6129cc61458d565b60015f805160206154b4833981519152556001600160a01b038116612ab1575b503691610bf0565b80516020908201818101828483031261051057828401516001600160401b039485821161051057019283926101a093849103126105105760405193612a3885610b4a565b612a44838383016138e9565b8552610180810151868111610510578383612a61928401016139b2565b9382860194855281015195861161051057612a89612aa89383610bd398612aa39401016139b2565b94604081019586525191611efe60405193849283016139f8565b6145d0565b5190519061498c565b612ac590612abd61458d565b61282161458d565b5f6129ec565b6001600160a01b03165f908152600e60205260409020612aea906140d8565b612af2614064565b612afa613feb565b90600181018091116109fc57600182018092116109fc5761054992613afd565b65ffffffffffff91821690821603919082116109fc57565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff809116918215612b5d57160490565b612b32565b612b6b4261312c565b612b92600154612b8865ffffffffffff93848360a01c1690612b1a565b9060d01c90612b46565b1690565b6001549065ffffffffffff91828160a01c16918284821610612bbf57612b9292612b8891612b1a565b60405163b7d0949760e01b8152600490fd5b90612bda612e0e565b5f926001600160a01b0383169283156123b7578115612c92575f5b828110612c7057505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d279286929091612c45918491612c409060101c6001600160a01b03166116af565b613f00565b612c56604051928392339684612ccd565b0390a390610bd360015f805160206154b483398151915255565b94612c8b6001916118f9612c85898789612cb8565b35613f4f565b9501612bf5565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612cc85760051b0190565b612ca4565b604080825281018390529392916001600160fb1b0381116105105760209160609160051b809183880137850101930152565b5190610bd382610e5d565b90816020910312610510575161054981610e5d565b5190610bd38261063c565b9081602091031261051057516105498161063c565b6001600160a01b03908116908115612d98575f8051602061543483398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612dd690825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116109fc57600182018092116109fc5761054992613afd565b5f805160206154b48339815191526002815414612e2b5760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e6020526040812093949390929190612e7c90612e5f4261312c565b335f908152600e602052604090206110c3908990611893906140d8565b5050612e96612e8a4261312c565b61107087611893613feb565b5050612eb0612ea44261312c565b61105b84611893614064565b505081612f4282610692612eca612ec5612b62565b612970565b612f21612edf825f52600660205260405f2090565b54612ef2835f52600760205260405f2090565b54612f09612f0183838b61414c565b9a8b9361297e565b612f1b855f52600660205260405f2090565b5561297e565b612f33825f52600760205260405f2090565b555f52600860205260405f2090565b612f4d84825461297e565b9055604080519182526020820187905281018390526001600160a01b03919091169033907febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f90606090a36040519384529233907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9080602081015b0390a3565b916001600160a01b03808416929083156131145781169384156130fc576001600160a01b0381165f908152600e6020526040902061300a906140d8565b908382106130ca57612fc89261306c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95936130596130b89460018060a01b03165f52600e60205260405f2090565b90856130644261312c565b910391613e42565b50506001600160a01b0381165f908152600e6020526040902090836130b16107f46130964261312c565b6001600160a01b039094165f908152600e6020526040902090565b0191613e42565b50506040519081529081906020820190565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b81525f6004820152602490fd5b604051634b637e8f60e11b81525f6004820152602490fd5b65ffffffffffff9081811161313f571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b610510913691610bf0565b90816020910312610510575163ffffffff811681036105105790565b90600163ffffffff809316019182116109fc57565b9080511561327157806020806131b593518301019101613169565b6131be816143bd565b906131cf825165ffffffffffff1690565b9065ffffffffffff80851692168281146132655782119182613205575b50506131fc57506105499061416d565b60209150015190565b909150613213600a54612942565b63ffffffff83161491821561322c575b50505f806131ec565b61325d91925061324661324161325292613185565b6143bd565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80613223565b50505060209150015190565b506105499061416d565b90805115613326578060208061329693518301019101613169565b61329f81614447565b906132b0825165ffffffffffff1690565b9065ffffffffffff808516921682811461326557821191826132dd575b50506131fc575061054990614234565b9091506132eb600c54612942565b63ffffffff831614918215613304575b50505f806132cd565b61331e91925061324661331961325292613185565b614447565b115f806132fb565b5061054990614234565b918051156133f2578060208061334b93518301019101613169565b9161335683826144c7565b92613367845165ffffffffffff1690565b9065ffffffffffff80851692168281146133e6578211918261339d575b50506133945761054992506142f4565b50506020015190565b9091506133aa8354612942565b63ffffffff8316149182156133c3575b50505f80613384565b6133de9192506132466133d861325292613185565b856144c7565b115f806133ba565b50505050506020015190565b50610549916142f4565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b5416156124f55750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff9061344f565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff9061344f565b5f8181525f8051602061549483398151915260209081526040808320338452909152902060ff9061344f565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206154948339815191529060ff166135de575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f805160206154948339815191529060ff905b54166136b3575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f805160206154948339815191529060ff9061364f565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f805160206154948339815191529060ff9061364f565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f805160206154948339815191529060ff9061364f565b5f8181525f80516020615494833981519152602081815260408084206001600160a01b038716855290915290912060ff9061364f565b5f8181525f80516020615494833981519152602081815260408084206001600160a01b03871685529091529091205460ff16156136b3575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b90816020910312610510575190565b5190610bd382610b26565b919082610160910312610510576138fe610ba6565b9161390881612d1f565b835261391660208201612d1f565b6020840152613927604082016138de565b604084015261393860608201612cff565b606084015261394960808201612cff565b608084015260a081015160a084015261396460c08201612d1f565b60c084015261397560e08201612d1f565b60e0840152610100613988818301612d1f565b9084015261012061399a818301612d1f565b908401526139ac610140809201612d1f565b90830152565b81601f82011215610510578051906139c982610bd5565b926139d76040519485610b85565b8284526020838301011161051057815f9260208093018386015e8301015290565b81516001600160a01b0316815261016081019291610bd391906020818101516001600160a01b03169083015260408181015165ffffffffffff169083015260608181015115159083015260808181015115159083015260a0818101519083015260c0808201516001600160a01b03169083015260e0818101516001600160a01b031690830152610100818101516001600160a01b031690830152610120818101516001600160a01b031690830152610140908101516001600160a01b0316910152565b5f80516020615434833981519152546001600160a01b03163303613adb57565b60405163118cdaa760e01b8152336004820152602490fd5b8115612b5d570490565b91818302915f1981850993838086109503948086039514613b7d5784831115613b705790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b8215600302601118614ab1565b5050906105499250613af3565b600b54811015612cc857600b5f525f8051602061547483398151915201905f90565b600d54811015612cc857600d5f525f8051602061545483398151915201905f90565b8054821015612cc8575f5260205f2001905f90565b600d54600160401b811015610b65576001810180600d55811015612cc857600d5f525f805160206154548339815191520155565b600b54600160401b811015610b65576001810180600b55811015612cc857600b5f525f805160206154748339815191520155565b90815491600160401b831015610b655782613c6e916001610bd395018155613bce565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613d31575b50613c9e614ac1565b50929091815492613cad614064565b9481613d1c575b5015613cf957505f1982018281116109fc5781541115612cc8575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613d0d926001600160d01b03169150614f2b565b5050613d1883613be3565b9190565b65ffffffffffff83811691161490505f613cb4565b600160401b811015610b655760018101808455811015612cc8575f908382525f8051602061545483398151915201555f613c95565b919091600b9081548015613e0d575b50613d7e614b16565b50929091815492613d8d613feb565b9481613df8575b5015613dd957505f1982018281116109fc5781541115612cc8575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b613ded926001600160d01b03169150614ffb565b5050613d1883613c17565b65ffffffffffff83811691161490505f613d94565b600160401b811015610b655760018101808455811015612cc8575f908382525f8051602061547483398151915201555f613d75565b90929192600182019081548015613ed0575b5084613e5f84614b6b565b50949092845493613e6f836140d8565b9681613ebb575b5015613e98575050505f1981019081116109fc57613c6e8591613d1893613bce565b613d18949293613eb4926001600160d01b03909116919061509a565b5050613c4b565b65ffffffffffff83811691161490505f613e76565b600160401b811015610b6557806001613eec9201845583613bce565b8154905f199060031b1b191690555f613e54565b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815260808101916001600160401b03831182841017610b6557610bd392604052614ba4565b90613f58612b62565b821015613fd9575f82815260096020908152604080832033845290915290205460ff16613fc757613f893383612db0565b918215613fb5575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600a548061402b57505f5b6001600160d01b0381161561402657600b54811015612cc857600b5f525f80516020615474833981519152015490565b505f90565b805f198101116109fc57600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c613ff6565b600c548061409f57505f5b6001600160d01b0381161561402657600d54811015612cc857600d5f525f80516020615454833981519152015490565b805f198101116109fc57600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c61406f565b80548061410757505f5b6001600160d01b038116156135de5760016140fd9201613bce565b90549060031b1c90565b5f199080828101116109fc57825f5260205f2001015460301c6140e2565b906001600160a01b03808316156106f7578116156106df57610692614149926119a3565b55565b9190600181018091116109fc57600182018092116109fc5761054992613afd565b600a54905f8291600584116141db575b614187935061527f565b806141aa57505f5b6001600160d01b03811615614026576140fd61054991613b8a565b6141cf6141b96141d692612942565b600a5f525f805160206153f48339815191520190565b5460301c90565b61418f565b91926141e681615154565b81039081116109fc5761418793600a5f5265ffffffffffff80835f805160206153f4833981519152015416908516105f1461422257509161417d565b92915061422e90612970565b9061417d565b600c54905f82916005841161429b575b61424e93506152e8565b8061427157505f5b6001600160d01b03811615614026576140fd61054991613bac565b6141cf61428061429692612942565b600c5f525f805160206153b48339815191520190565b614256565b91926142a681615154565b81039081116109fc5761424e93600c5f5265ffffffffffff80835f805160206153b4833981519152015416908516105f146142e2575091614244565b9291506142ee90612970565b90614244565b908154905f829160058411614357575b61430f935084615351565b8061433757505f905b6001600160d01b038216156135de576105499160016140fd9201613bce565b6141cf61434661435192612942565b835f5260205f200190565b90614318565b919261436281615154565b81039081116109fc5761430f93855f5265ffffffffffff808360205f20015416908516105f14614393575091614304565b92915061439f90612970565b90614304565b604051906143b282610b6a565b5f6020838281520152565b6143c56143a5565b506143ce6143a5565b50600a54811015612cc857600a5f526020604051916143ec83610b6a565b5f805160206153f483398151915201549165ffffffffffff83169283825260301c9182910152600b54811015612cc857600b5f525f8051602061547483398151915201546040519161443d83610b6a565b8252602082015290565b61444f6143a5565b506144586143a5565b50600c54811015612cc857600c5f5260206040519161447683610b6a565b5f805160206153b483398151915201549165ffffffffffff83169283825260301c9182910152600d54811015612cc857600d5f525f8051602061545483398151915201546040519161443d83610b6a565b90602060016144eb614517936144db6143a5565b506144e46143a5565b5085613bce565b5093604051946144fa86610b6a565b549465ffffffffffff86169586825260301c938491015201613bce565b9054906040519261452784610b6a565b835260031b1c602082015290565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b03841117610b6557610bd392604052614ba4565b60ff5f805160206154d48339815191525460401c16156145a957565b604051631afcd79f60e31b8152600490fd5b906101608282031261051057610549916138e9565b6145e390602080825183010191016145bb565b80516001600160a01b03919082161561497a57604080820165ffffffffffff614612825165ffffffffffff1690565b16156149695760c083018051909290614633906001600160a01b03166116af565b1561481a575b5091614766610140926147056146e06147c49661468761465f875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b039092169190911790556132466146b74261312c565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b6147256147156060850151151590565b60ff80195f541691151516175f55565b61474c6147356080850151151590565b61ff005f5491151560081b169061ff001916175f55565b61475960a0840151600455565b516001600160a01b031690565b84811661480a575b5060e08101516001600160a01b03168481166147fa575b506101008101516001600160a01b03168481166147ea575b506101208101516001600160a01b03168481166147da575b5001516001600160a01b031690565b9081166147ce5750565b6147d790613798565b50565b6147e390613729565b505f6147b5565b6147f3906136ba565b505f61479d565b614803906135e4565b505f614785565b61481390613533565b505f61476e565b60e0840151614831906001600160a01b03166116af565b15614906575b61012084015161484f906001600160a01b03166116af565b614639576080840151156148bc5760a0840151158061489d575b61488d575091614766610140926147056146e06147c4965b94965050509250614639565b5163183c854560e21b8152600490fd5b506101408401516148b6906001600160a01b03166116af565b15614869565b60a0840151158015906148e6575b61488d575091614766610140926147056146e06147c496614881565b506101408401516148ff906001600160a01b03166116af565b15156148ca565b60608401511561493c57610100840151614928906001600160a01b03166116af565b614837575163183c854560e21b8152600490fd5b610100840151614954906001600160a01b03166116af565b15614837575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b919061499661458d565b61499e61458d565b82516001600160401b038111610b65575f805160206153d4833981519152906149d0816149cb84546128f6565b614c37565b602080601f8311600114614a1757509080614a0592610bd396975f92614a0c575b50508160011b915f199060031b1c19161790565b9055614d29565b015190505f806149f1565b90601f19831696614a555f805160206153d48339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab090565b925f905b898210614a9957505090839291600194610bd3989910614a81575b505050811b019055614d29565b01515f1960f88460031b161c191690555f8080614a74565b80600185968294968601518155019501930190614a59565b634e487b715f526020526024601cfd5b600c5480614ad257505f905f905f90565b805f198101116109fc57600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460019165ffffffffffff82169160301c90565b600a5480614b2757505f905f905f90565b805f198101116109fc57600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460019165ffffffffffff82169160301c90565b805480614b7c5750505f905f905f90565b5f199181838101116109fc575f5260205f2001015460019165ffffffffffff82169160301c90565b905f602091828151910182855af1156129ac575f513d614bf557506001600160a01b0381163b155b614bd35750565b604051635274afe760e01b81526001600160a01b039091166004820152602490fd5b60011415614bcc565b9190600181018091116109fc57600182018092116109fc57614c21828285613afd565b928215612b5d5709151581018091116109fc5790565b601f8111614c43575050565b5f805160206153d48339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0906020601f840160051c83019310614ca6575b601f0160051c01905b818110614c9b575050565b5f8155600101614c90565b9091508190614c87565b601f8111614cbc575050565b5f805160206154148339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa906020601f840160051c83019310614d1f575b601f0160051c01905b818110614d14575050565b5f8155600101614d09565b9091508190614d00565b9081516001600160401b038111610b65575f8051602061541483398151915290614d5c81614d5784546128f6565b614cb0565b602080601f8311600114614d9157508190614d8d9394955f92614a0c5750508160011b915f199060031b1c19161790565b9055565b90601f19831695614dcf5f805160206154148339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa90565b925f905b888210614e0a57505083600195969710614df2575b505050811b019055565b01515f1960f88460031b161c191690555f8080614de8565b80600185968294968601518155019501930190614dd3565b600c5490600160401b821015610b65576001820180600c55821015612cc857600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206153b483398151915290910155565b600a5490600160401b821015610b65576001820180600a55821015612cc857600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206153f483398151915290910155565b8054600160401b811015610b6557614eed91600182018155613bce565b614f1857815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c549192918015614fd257614280614f4391612942565b9081549165ffffffffffff90818416918316808311614fc057869203614f8857614f8192509065ffffffffffff82549181199060301b169116179055565b60301c9190565b5050614fbb90614fa7614f99610bc6565b65ffffffffffff9092168252565b6001600160d01b0385166020820152614e22565b614f81565b604051632520601d60e01b8152600490fd5b50614ff690614fe2614f99610bc6565b6001600160d01b0384166020820152614e22565b5f9190565b600a549192918015615076576141b961501391612942565b9081549165ffffffffffff90818416918316808311614fc05786920361505157614f8192509065ffffffffffff82549181199060301b169116179055565b5050614fbb90615062614f99610bc6565b6001600160d01b0385166020820152614e79565b50614ff690615086614f99610bc6565b6001600160d01b0384166020820152614e79565b8054929392801561512f576150b16150bc91612942565b825f5260205f200190565b9182549265ffffffffffff91828516928116808411614fc0578793036150fb5750614f8192509065ffffffffffff82549181199060301b169116179055565b915050614fbb9161511b61510d610bc6565b65ffffffffffff9093168352565b6001600160d01b0386166020830152614ed0565b5090614ff69161514061510d610bc6565b6001600160d01b0385166020830152614ed0565b600181111561054957600181600160801b81101561526d575b61521561520b6152016151f76151ed6151e361522197600488600160401b61521c9a1015615260575b640100000000811015615253575b62010000811015615246575b61010081101561523a575b601081101561522e575b1015615226575b60030260011c6151dc818b613af3565b0160011c90565b6151dc818a613af3565b6151dc8189613af3565b6151dc8188613af3565b6151dc8187613af3565b6151dc8186613af3565b8093613af3565b821190565b900390565b60011b6151cc565b811c9160021b916151c5565b60081c91811b916151bb565b60101c9160081b916151b0565b60201c9160101b916151a4565b60401c9160201b91615196565b50600160401b9050608082901c61516d565b905b82811061528d57505090565b9091808216906001818418811c83018093116109fc57600a5f5265ffffffffffff80845f805160206153f4833981519152015416908616105f146152d5575050915b90615281565b9093925081018091116109fc57906152cf565b905b8281106152f657505090565b9091808216906001818418811c83018093116109fc57600c5f5265ffffffffffff80845f805160206153b4833981519152015416908616105f1461533e575050915b906152ea565b9093925081018091116109fc5790615338565b91905b8382106153615750505090565b909192808316906001818518811c83018093116109fc57855f5265ffffffffffff808460205f20015416908516105f146153a0575050925b9190615354565b9094935081018091116109fc579161539956fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c752c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a852c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220b9bc961cf9d9c9c89aa268126ef0b84208d178b706ef9625b4f4a0a71d8201c864736f6c63430008190033","sourceMap":"652:3172:108:-:0;;;;;;;;;;;;;-1:-1:-1;;652:3172:108;;;;;-1:-1:-1;;;;;652:3172:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;3173:36:107;;;3219:32;;8837:64:26;652:3172:108;;;;;;;;;7896:76:26;;652:3172:108;;;;7985:34:26;7981:146;;-1:-1:-1;927:17:82;;;;;652:3172:108;;;;;;;3173:36:107;652:3172:108;;;;;;;;;;3219:32:107;652:3172:108;;;;;;;;;;927:17:82;652:3172:108;;;;;;;;;;;7981:146:26;-1:-1:-1;;;;;;652:3172:108;;;;;;;;;;;;;8087:29:26;;652:3172:108;;8087:29:26;7981:146;;;;;7896:76;652:3172:108;;-1:-1:-1;;;7938:23:26;;;;;652:3172:108;-1:-1:-1;652:3172:108;;;;;;-1:-1:-1;652:3172:108;;;;;-1:-1:-1;652:3172:108;;;;-1:-1:-1;;;;;652:3172:108;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104ba57806306fdde03146104b5578063095ea7b3146104b05780631415519b146104ab57806318160ddd146103895780631b66c9e1146104a65780631e9a6950146104a157806323b872dd1461049c578063248a9ca31461049757806327810b6e14610492578063281f57521461048d5780632abe3048146104885780632d73c69c146104835780632dd310001461047e5780632f2ff15d14610479578063313ce5671461047457806336568abe1461046f578063392e53cd1461046a5780634105a7dd14610465578063463616711461046057806347e7ef241461045b57806348d3b775146104565780634ff0876a1461045157806350861adc1461044c57806350f22068146104475780635346e34f1461044257806354fd4d501461043d57806357ec83cc1461043857806359f769a9146104335780635cc070761461042e57806361a8c8c4146104295780636da3e06d146104245780636ec1e3f81461041f57806370a08231146103d4578063715018a61461041a5780637278e31c1461041557806373790ab314610410578063766718081461040b578063794b15b7146104065780637953b33b146104015780637c04c80a146103fc578063810da75d146103f757806383cd9cc3146103f257806387df0788146103ed5780638b0e9f3f146103e85780638da5cb5b146103e357806391d14854146103de57806395d89b41146103d95780639d66201b146103d45780639f86fd85146103cf578063a1b12202146103ca578063a217fddf146103c5578063a21a1df9146103c0578063a2861466146103bb578063a3b54172146103b6578063a5d03223146103b1578063a9059cbb146103ac578063aabc2496146103a7578063aad3ec96146103a2578063afba70ad1461039d578063b134427114610398578063bd49c35f14610393578063bdc8144b1461038e578063bfefcd7b14610389578063c31e8dd714610384578063ce9b79301461037f578063d547741f1461037a578063d8dfeb4514610375578063db38871514610370578063dd62ed3e1461036b578063ecf7085814610366578063efb559d614610361578063f2fde38b1461035c578063f3fef3a3146103575763f5e7ee0f14610352575f80fd5b6128cc565b612826565b6127f9565b6126aa565b61268d565b612656565b61261c565b6125f1565b6125a5565b61257d565b612513565b610749565b612435565b61241b565b6123f3565b6123c9565b612308565b612151565b61211c565b6120d6565b612089565b611f96565b611f5c565b611f42565b611f1e565b611e64565b6115d5565b611db2565b611d54565b611d20565b611cbe565b611c7a565b611ac1565b611aa8565b611a42565b611a1b565b6119db565b611989565b611948565b611676565b61160f565b6115b0565b61156c565b611519565b6114ef565b6114c8565b611390565b61135e565b6112c9565b6112b0565b611253565b611233565b611212565b610f2a565b610f02565b610e67565b610e22565b610dd7565b610d3f565b610cf1565b610cad565b610c41565b610a56565b610988565b610960565b610927565b61088a565b6107a5565b61076b565b61070f565b61064d565b61054c565b346105105760203660031901126105105760043563ffffffff60e01b811680910361051057602090637965db0b60e01b81149081156104ff575b506040519015158152f35b6301ffc9a760e01b1490505f6104f4565b5f80fd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b906020610549928181520190610514565b90565b34610510575f366003190112610510576040515f5f805160206153d483398151915280549061057a826128f6565b8085529160209160019182811690811561060f57506001146105b7575b6105b3866105a781880382610b85565b60405191829182610538565b0390f35b5f90815293507f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab05b8385106105fc575050505081016020016105a7826105b35f610597565b80548686018401529382019381016105df565b90508695506105b3969350602092506105a794915060ff191682840152151560051b82010192935f610597565b6001600160a01b0381160361051057565b346105105760403660031901126105105760043561066a8161063c565b60243533156106f7576001600160a01b0382169182156106df576106a78291610692336119a3565b9060018060a01b03165f5260205260405f2090565b556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b604051634a1406b160e11b81525f6004820152602490fd5b60405163e602df0560e01b81525f6004820152602490fd5b34610510575f3660031901126105105760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b34610510575f366003190112610510576020610763613feb565b604051908152f35b34610510575f3660031901126105105760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b34610510576040366003190112610510576004356107c28161063c565b602435906107ce612e0e565b6001600160a01b0381161561087957335f908152600e602052604090206107f9906140d8565b6140d8565b82116108675761081961080a614064565b610812613feb565b908461414c565b918215610852578261082a92612e3d565b9061084160015f805160206154b483398151915255565b604080519182526020820192909252f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b34610510576060366003190112610510576004356108a78161063c565b6024356108b38161063c565b604435906108c433610692856119a3565b5492600184016108e5575b6108d99350612fcd565b60405160018152602090f35b828410610901576108fc836108d995033383614125565b6108cf565b604051637dc7a0d960e11b81523360048201526024810185905260448101849052606490fd5b34610510576020366003190112610510576004355f525f805160206154948339815191526020526020600160405f200154604051908152f35b34610510575f366003190112610510576001546040516001600160a01b039091168152602090f35b34610510575f366003190112610510576109a0612b62565b8015610a015760015465ffffffffffff8160a01c16915f1981019081116109fc576109ce9160d01c9061295d565b81018091116109fc576109e36105b39161312c565b60405165ffffffffffff90911681529081906020820190565b61292e565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b038216820361051057565b9181601f84011215610510578235916001600160401b038311610510576020838186019501011161051057565b3461051057604036600319011261051057610a6f610a13565b6001600160401b0360243581811161051057610a8f903690600401610a29565b929091610a9a612e0e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610b14575f805160206154d4833981519152549060ff8260401c16928315610b04575b5050501561315e575b60405163f92ee8a960e01b8152600490fd5b81169116101590505f8080610ae9565b604051631966391b60e11b8152600490fd5b65ffffffffffff81160361051057565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b03821117610b6557604052565b610b36565b604081019081106001600160401b03821117610b6557604052565b90601f801991011681019081106001600160401b03821117610b6557604052565b6040519061016082018281106001600160401b03821117610b6557604052565b60405190610bd382610b6a565b565b6001600160401b038111610b6557601f01601f191660200190565b929192610bfc82610bd5565b91610c0a6040519384610b85565b829481845281830111610510578281602093845f960137010152565b9080601f830112156105105781602061054993359101610bf0565b3461051057606036600319011261051057600435610c5e8161063c565b60243590610c6b82610b26565b604435906001600160401b03821161051057602092610c91610763933690600401610c26565b6001600160a01b039092165f908152600e855260409020613330565b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461051057604036600319011261051057610d3d602435600435610d148261063c565b805f525f80516020615494833981519152602052610d38600160405f200154613507565b613807565b005b34610510575f366003190112610510575f5460405163313ce56760e01b8152906020908290600490829060101c6001600160a01b03165afa8015610dd2575f90610d94575b60405160ff919091168152602090f35b506020813d602011610dca575b81610dae60209383610b85565b81010312610510575160ff81168103610510576105b390610d84565b3d9150610da1565b6129ac565b3461051057604036600319011261051057602435610df48161063c565b336001600160a01b03821603610e1057610d3d9060043561383d565b60405163334bd91960e11b8152600490fd5b34610510575f3660031901126105105760ff60025460a01c1680610e4e575b6020906040519015158152f35b5060035460a01c60ff16610e41565b8015150361051057565b3461051057602036600319011261051057600435610e8481610e5d565b610e8c612e0e565b610e946133fc565b5f54901515908160ff8216151514610ef05760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f805160206154b483398151915255005b60405163a741a04560e01b8152600490fd5b34610510575f36600319011261051057602065ffffffffffff60015460a01c16604051908152f35b3461051057604080600319360112610510576004803591610f4a8361063c565b610f52612e0e565b6001600160a01b0391838316908115611204575f5460ff8116806111eb575b6111dc5783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610dd2575f936111b9575b50610fc6906024359030903390614535565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610dd257611005935f9261118c575b5050612950565b93841561117d5760081c60ff1680611168575b61115a5750906105b3916110c961102d614064565b95611076611039613feb565b6110616110478a838b61414c565b9961105b8a6110554261312c565b9261297e565b90613c86565b5050611070896110554261312c565b90613d66565b50506001600160a01b0381165f908152600e60205260409020906110c3886110be6107f46110a34261312c565b6001600160a01b039095165f908152600e6020526040902090565b61297e565b91613e42565b5050815184815260208101869052819033907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a361111760015f805160206154b483398151915255565b81518581525f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090a35191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50611175846110be614064565b815410611018565b50825163070f6eed60e11b8152fd5b6111ab9250803d106111b2575b6111a38183610b85565b8101906138cf565b5f80610ffe565b503d611199565b610fc69193506111d590853d87116111b2576111a38183610b85565b9290610fb4565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610f71565b8251630d534ce360e11b8152fd5b34610510575f36600319011261051057602060ff5f54166040519015158152f35b34610510575f36600319011261051057602060015460d01c604051908152f35b34610510575f36600319011261051057602060ff60025460a01c166040519015158152f35b9060406003198301126105105760043561129181610b26565b91602435906001600160401b0382116105105761054991600401610c26565b346105105760206107636112c336611278565b9061319a565b34610510576020366003190112610510576004356112e681610e5d565b6112ee612e0e565b6112f6613459565b5f54901515908160ff8260081c16151514610ef05761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610d3d60015f805160206154b483398151915255565b34610510575f3660031901126105105760206001600160401b035f805160206154d48339815191525416604051908152f35b34610510576060366003190112610510576113a9610a13565b6024356113b58161063c565b6001600160401b0391604435838111610510576113d6903690600401610a29565b5f805160206154d48339815191529491855494838616806114b75760ff8760401c169081156114aa575b50610af2577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966114a59661146d958716906001600160401b0319161790556114685f805160206154d4833981519152600160401b68ff000000000000000019825416179055565b6129b7565b5f805160206154d4833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f611400565b60405162dc149f60e41b8152600490fd5b346105105760203660031901126105105760206107636004356114ea8161063c565b612acb565b34610510576020366003190112610510576004355f526006602052602060405f2054604051908152f35b34610510575f3660031901126105105760015465ffffffffffff61154f818360a01c1692611545612b62565b9060d01c9061295d565b82018092116109fc5761156360209261312c565b60405191168152f35b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610510575f36600319011261051057602060ff60035460a01c166040519015158152f35b34610510576020366003190112610510576004356115f28161063c565b60018060a01b03165f52600e602052602061076360405f206140d8565b34610510575f36600319011261051057611627613abb565b5f8051602061543483398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346105105760403660031901126105105760043560243561169681610b26565b61169e612e0e565b6003546116bb906001600160a01b03165b6001600160a01b031690565b3303611936576116c9612b62565b906116d381612b96565b9082151580611925575b801561191c575b61190a576105b3937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c792611716614064565b9461173161172382612970565b5f52600660205260405f2090565b54908281036118245750611745818761297e565b8381188185100281189687806117dd575b50505050505b836117a9575b6040805191825265ffffffffffff929092166020820152908101839052606090a161179960015f805160206154b483398151915255565b6040519081529081906020820190565b5f546117d89085906117c69060101c6001600160a01b03166116af565b6001546001600160a01b031690613f00565b611762565b61181993610ffe8361105b6118036117fc611723986118139888613afd565b8096612950565b9461180d4261312c565b92612950565b92612970565b555f80808087611756565b9150611838825f52600660205260405f2090565b5490611848816110be848a61297e565b908482188286100282189788611863575b505050505061175c565b6118d8938361188b936118988c6118936118816118c9998884613afd565b9788958584613afd565b948592612950565b612950565b938484106118e3575b610ffe9061105b6118b795969761180d4261312c565b6118c361172387612970565b55612950565b915f52600660205260405f2090565b555f80808080611859565b916118ff610ffe916118f9866118b79798612950565b9061297e565b8594509290506118a1565b604051635e18d2a560e01b8152600490fd5b508282116116e4565b5061192f83612942565b82106116dd565b60405163dabc4ad960e01b8152600490fd5b34610510575f3660031901126105105760015465ffffffffffff808260a01c1691611971612b62565b600181018091116109fc5761154f9160d01c9061295d565b34610510575f366003190112610510576020610763612b62565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b34610510576020366003190112610510576004356119f88161063c565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b34610510576020366003190112610510576020610763600435611a3d81610b26565b612b96565b3461051057604036600319011261051057600435611a5f8161063c565b6024356001600160401b038082116105105736602383011215610510578160040135908111610510573660248260051b84010111610510576105b3926024611799930190612bd1565b34610510576020610763611abb36611278565b9061327b565b3461051057602080600319360112610510576004803590611ae18261063c565b611ae9612e0e565b60025460a01c60ff16611c6b576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd2575f91611c3e575b5015611c2e5760405163fbfa77cf60e01b8152838516949082818581895afa928315610dd2575f93611bff575b505030911603611bf05750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610d3d60015f805160206154b483398151915255565b60405163b9f0f17160e01b8152fd5b611c1f929350803d10611c27575b611c178183610b85565b810190612d2a565b905f80611b83565b503d611c0d565b506040516324e5af8d60e21b8152fd5b611c5e9150823d8411611c64575b611c568183610b85565b810190612d0a565b5f611b56565b503d611c4c565b604051631380833b60e01b8152fd5b34610510575f366003190112610510576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610510575f36600319011261051057611cd6612b62565b611cde614064565b90805f52600660205260405f205482018092116109fc57600181018091116109fc575f52600660205260405f205481018091116109fc57602090604051908152f35b34610510575f366003190112610510575f80516020615434833981519152546040516001600160a01b039091168152602090f35b3461051057604036600319011261051057602060ff611da6602435611d788161063c565b6004355f525f80516020615494833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b34610510575f366003190112610510576040515f5f80516020615414833981519152805490611de0826128f6565b8085529160209160019182811690811561060f5750600114611e0c576105b3866105a781880382610b85565b5f90815293507f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa5b838510611e51575050505081016020016105a7826105b35f610597565b8054868601840152938201938101611e34565b346105105760408060031936011261051057600435611e828161063c565b602435906001600160401b038211610510575f8091611ea8611f0c943690600401610a29565b908187519283928337810184815203915af43d15611f1457611efe3d611ecd81610bd5565b90611eda86519283610b85565b81523d5f602083013e5b845194859315156020850152808401526060830190610514565b03601f198101835282610b85565b805190602001fd5b611efe6060611ee4565b34610510575f36600319011261051057602060ff5f5460081c166040519015158152f35b34610510575f3660031901126105105760206040515f8152f35b34610510575f3660031901126105105760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b3461051057604036600319011261051057600435611fb38161063c565b602435611fbf81610e5d565b611fc7612e0e565b611fcf6134b0565b6001600160a01b038216918215612077575f8381526005602052604090205460ff16151582151514610ef0576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a629161205e9161204c908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610d3d60015f805160206154b483398151915255565b604051630da30f6560e31b8152600490fd5b346105105760403660031901126105105760206120cd6024356120ab8161063c565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b3461051057604036600319011261051057602060ff611da66024356120fa8161063c565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b346105105760403660031901126105105761214660043561213c8161063c565b6024359033612fcd565b602060405160018152f35b34610510576020806003193601126105105760048035906121718261063c565b612179612e0e565b60035460a01c60ff166122f9576001600160a01b038281169390846121e7575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610d3d60015f805160206154b483398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd2575f916122dc575b50156122cb5760405163fbfa77cf60e01b815282818581895afa928315610dd2575f936122ac575b50503091160361229d5750600380546001600160a01b0319166001600160a01b039092169190911790555f808080612199565b604051633f3e089160e21b8152fd5b6122c3929350803d10611c2757611c178183610b85565b905f8061226a565b60405163dabc4ad960e01b81528390fd5b6122f39150833d8511611c6457611c568183610b85565b5f612242565b60405163703fe2e560e01b8152fd5b34610510576040366003190112610510576004356123258161063c565b60243590612331612e0e565b6001600160a01b03918183169081156123b7576123626105b39461235483613f4f565b9485915f5460101c16613f00565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f805160206154b4833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b34610510576020366003190112610510576004355f526007602052602060405f2054604051908152f35b34610510575f366003190112610510576003546040516001600160a01b039091168152602090f35b34610510575f366003190112610510576020610763614064565b3461051057602036600319011261051057600435612451612e0e565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff16156124f557508060045414610ef0576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f805160206154b483398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b34610510576020366003190112610510576004356125308161063c565b612538612b62565b61254182612acb565b9161254c8183612db0565b83018093116109fc57600182018092116109fc5761256991612db0565b81018091116109fc57602090604051908152f35b34610510575f366003190112610510576002546040516001600160a01b039091168152602090f35b3461051057604036600319011261051057610d3d6024356004356125c88261063c565b805f525f805160206154948339815191526020526125ec600160405f200154613507565b61383d565b34610510575f366003190112610510575f5460405160109190911c6001600160a01b03168152602090f35b34610510575f3660031901126105105760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b346105105760403660031901126105105760206120cd6004356126788161063c565b610692602435916126888361063c565b6119a3565b34610510575f366003190112610510576020600454604051908152f35b34610510576060366003190112610510576004356126c78161063c565b602435906126d482610b26565b6001600160401b0391604435838111610510576126f5903690600401610a29565b9092604093845161270581610b4a565b60608152606060208201526060868201529280612764575b6105b386612755878761274f612736898484519161298b565b928561274660208501518361327b565b9301519061319a565b9161414c565b90519081529081906020820190565b8101939250602081850312610510578035908682116105105701926060848203126105105784519561279587610b4a565b843581811161051057826127aa918701610c26565b8752602085013581811161051057826127c4918701610c26565b602088015285850135908111610510576105b3966127ed61274f93612736936127559801610c26565b8782015293945061271d565b3461051057602036600319011261051057610d3d6004356128198161063c565b612821613abb565b612d3f565b34610510576040366003190112610510576004356128438161063c565b60243561284e612e0e565b6001600160a01b038216156108795780156128ba5761287d61286e613feb565b612876614064565b9083614bfe565b335f908152600e60205260409020909290612897906140d8565b83116128a85761082a918391612e3d565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b346105105760403660031901126105105760206107636024356128ee8161063c565b600435612db0565b90600182811c92168015612924575b602083101461291057565b634e487b7160e01b5f52602260045260245ffd5b91607f1691612905565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116109fc57565b919082039182116109fc57565b818102929181159184041417156109fc57565b90600182018092116109fc57565b919082018092116109fc57565b6001600160a01b03165f908152600e60205260409020610549929190613330565b6040513d5f823e3d90fd5b916129f4926129c461458d565b6129cc61458d565b60015f805160206154b4833981519152556001600160a01b038116612ab1575b503691610bf0565b80516020908201818101828483031261051057828401516001600160401b039485821161051057019283926101a093849103126105105760405193612a3885610b4a565b612a44838383016138e9565b8552610180810151868111610510578383612a61928401016139b2565b9382860194855281015195861161051057612a89612aa89383610bd398612aa39401016139b2565b94604081019586525191611efe60405193849283016139f8565b6145d0565b5190519061498c565b612ac590612abd61458d565b61282161458d565b5f6129ec565b6001600160a01b03165f908152600e60205260409020612aea906140d8565b612af2614064565b612afa613feb565b90600181018091116109fc57600182018092116109fc5761054992613afd565b65ffffffffffff91821690821603919082116109fc57565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff809116918215612b5d57160490565b612b32565b612b6b4261312c565b612b92600154612b8865ffffffffffff93848360a01c1690612b1a565b9060d01c90612b46565b1690565b6001549065ffffffffffff91828160a01c16918284821610612bbf57612b9292612b8891612b1a565b60405163b7d0949760e01b8152600490fd5b90612bda612e0e565b5f926001600160a01b0383169283156123b7578115612c92575f5b828110612c7057505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d279286929091612c45918491612c409060101c6001600160a01b03166116af565b613f00565b612c56604051928392339684612ccd565b0390a390610bd360015f805160206154b483398151915255565b94612c8b6001916118f9612c85898789612cb8565b35613f4f565b9501612bf5565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612cc85760051b0190565b612ca4565b604080825281018390529392916001600160fb1b0381116105105760209160609160051b809183880137850101930152565b5190610bd382610e5d565b90816020910312610510575161054981610e5d565b5190610bd38261063c565b9081602091031261051057516105498161063c565b6001600160a01b03908116908115612d98575f8051602061543483398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612dd690825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116109fc57600182018092116109fc5761054992613afd565b5f805160206154b48339815191526002815414612e2b5760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e6020526040812093949390929190612e7c90612e5f4261312c565b335f908152600e602052604090206110c3908990611893906140d8565b5050612e96612e8a4261312c565b61107087611893613feb565b5050612eb0612ea44261312c565b61105b84611893614064565b505081612f4282610692612eca612ec5612b62565b612970565b612f21612edf825f52600660205260405f2090565b54612ef2835f52600760205260405f2090565b54612f09612f0183838b61414c565b9a8b9361297e565b612f1b855f52600660205260405f2090565b5561297e565b612f33825f52600760205260405f2090565b555f52600860205260405f2090565b612f4d84825461297e565b9055604080519182526020820187905281018390526001600160a01b03919091169033907febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f90606090a36040519384529233907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9080602081015b0390a3565b916001600160a01b03808416929083156131145781169384156130fc576001600160a01b0381165f908152600e6020526040902061300a906140d8565b908382106130ca57612fc89261306c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95936130596130b89460018060a01b03165f52600e60205260405f2090565b90856130644261312c565b910391613e42565b50506001600160a01b0381165f908152600e6020526040902090836130b16107f46130964261312c565b6001600160a01b039094165f908152600e6020526040902090565b0191613e42565b50506040519081529081906020820190565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b81525f6004820152602490fd5b604051634b637e8f60e11b81525f6004820152602490fd5b65ffffffffffff9081811161313f571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b610510913691610bf0565b90816020910312610510575163ffffffff811681036105105790565b90600163ffffffff809316019182116109fc57565b9080511561327157806020806131b593518301019101613169565b6131be816143bd565b906131cf825165ffffffffffff1690565b9065ffffffffffff80851692168281146132655782119182613205575b50506131fc57506105499061416d565b60209150015190565b909150613213600a54612942565b63ffffffff83161491821561322c575b50505f806131ec565b61325d91925061324661324161325292613185565b6143bd565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80613223565b50505060209150015190565b506105499061416d565b90805115613326578060208061329693518301019101613169565b61329f81614447565b906132b0825165ffffffffffff1690565b9065ffffffffffff808516921682811461326557821191826132dd575b50506131fc575061054990614234565b9091506132eb600c54612942565b63ffffffff831614918215613304575b50505f806132cd565b61331e91925061324661331961325292613185565b614447565b115f806132fb565b5061054990614234565b918051156133f2578060208061334b93518301019101613169565b9161335683826144c7565b92613367845165ffffffffffff1690565b9065ffffffffffff80851692168281146133e6578211918261339d575b50506133945761054992506142f4565b50506020015190565b9091506133aa8354612942565b63ffffffff8316149182156133c3575b50505f80613384565b6133de9192506132466133d861325292613185565b856144c7565b115f806133ba565b50505050506020015190565b50610549916142f4565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b5416156124f55750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff9061344f565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff9061344f565b5f8181525f8051602061549483398151915260209081526040808320338452909152902060ff9061344f565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f805160206154948339815191529060ff166135de575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f805160206154948339815191529060ff905b54166136b3575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f805160206154948339815191529060ff9061364f565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f805160206154948339815191529060ff9061364f565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f805160206154948339815191529060ff9061364f565b5f8181525f80516020615494833981519152602081815260408084206001600160a01b038716855290915290912060ff9061364f565b5f8181525f80516020615494833981519152602081815260408084206001600160a01b03871685529091529091205460ff16156136b3575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b90816020910312610510575190565b5190610bd382610b26565b919082610160910312610510576138fe610ba6565b9161390881612d1f565b835261391660208201612d1f565b6020840152613927604082016138de565b604084015261393860608201612cff565b606084015261394960808201612cff565b608084015260a081015160a084015261396460c08201612d1f565b60c084015261397560e08201612d1f565b60e0840152610100613988818301612d1f565b9084015261012061399a818301612d1f565b908401526139ac610140809201612d1f565b90830152565b81601f82011215610510578051906139c982610bd5565b926139d76040519485610b85565b8284526020838301011161051057815f9260208093018386015e8301015290565b81516001600160a01b0316815261016081019291610bd391906020818101516001600160a01b03169083015260408181015165ffffffffffff169083015260608181015115159083015260808181015115159083015260a0818101519083015260c0808201516001600160a01b03169083015260e0818101516001600160a01b031690830152610100818101516001600160a01b031690830152610120818101516001600160a01b031690830152610140908101516001600160a01b0316910152565b5f80516020615434833981519152546001600160a01b03163303613adb57565b60405163118cdaa760e01b8152336004820152602490fd5b8115612b5d570490565b91818302915f1981850993838086109503948086039514613b7d5784831115613b705790829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b8215600302601118614ab1565b5050906105499250613af3565b600b54811015612cc857600b5f525f8051602061547483398151915201905f90565b600d54811015612cc857600d5f525f8051602061545483398151915201905f90565b8054821015612cc8575f5260205f2001905f90565b600d54600160401b811015610b65576001810180600d55811015612cc857600d5f525f805160206154548339815191520155565b600b54600160401b811015610b65576001810180600b55811015612cc857600b5f525f805160206154748339815191520155565b90815491600160401b831015610b655782613c6e916001610bd395018155613bce565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613d31575b50613c9e614ac1565b50929091815492613cad614064565b9481613d1c575b5015613cf957505f1982018281116109fc5781541115612cc8575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613d0d926001600160d01b03169150614f2b565b5050613d1883613be3565b9190565b65ffffffffffff83811691161490505f613cb4565b600160401b811015610b655760018101808455811015612cc8575f908382525f8051602061545483398151915201555f613c95565b919091600b9081548015613e0d575b50613d7e614b16565b50929091815492613d8d613feb565b9481613df8575b5015613dd957505f1982018281116109fc5781541115612cc8575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b613ded926001600160d01b03169150614ffb565b5050613d1883613c17565b65ffffffffffff83811691161490505f613d94565b600160401b811015610b655760018101808455811015612cc8575f908382525f8051602061547483398151915201555f613d75565b90929192600182019081548015613ed0575b5084613e5f84614b6b565b50949092845493613e6f836140d8565b9681613ebb575b5015613e98575050505f1981019081116109fc57613c6e8591613d1893613bce565b613d18949293613eb4926001600160d01b03909116919061509a565b5050613c4b565b65ffffffffffff83811691161490505f613e76565b600160401b811015610b6557806001613eec9201845583613bce565b8154905f199060031b1b191690555f613e54565b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815260808101916001600160401b03831182841017610b6557610bd392604052614ba4565b90613f58612b62565b821015613fd9575f82815260096020908152604080832033845290915290205460ff16613fc757613f893383612db0565b918215613fb5575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600a548061402b57505f5b6001600160d01b0381161561402657600b54811015612cc857600b5f525f80516020615474833981519152015490565b505f90565b805f198101116109fc57600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c613ff6565b600c548061409f57505f5b6001600160d01b0381161561402657600d54811015612cc857600d5f525f80516020615454833981519152015490565b805f198101116109fc57600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c61406f565b80548061410757505f5b6001600160d01b038116156135de5760016140fd9201613bce565b90549060031b1c90565b5f199080828101116109fc57825f5260205f2001015460301c6140e2565b906001600160a01b03808316156106f7578116156106df57610692614149926119a3565b55565b9190600181018091116109fc57600182018092116109fc5761054992613afd565b600a54905f8291600584116141db575b614187935061527f565b806141aa57505f5b6001600160d01b03811615614026576140fd61054991613b8a565b6141cf6141b96141d692612942565b600a5f525f805160206153f48339815191520190565b5460301c90565b61418f565b91926141e681615154565b81039081116109fc5761418793600a5f5265ffffffffffff80835f805160206153f4833981519152015416908516105f1461422257509161417d565b92915061422e90612970565b9061417d565b600c54905f82916005841161429b575b61424e93506152e8565b8061427157505f5b6001600160d01b03811615614026576140fd61054991613bac565b6141cf61428061429692612942565b600c5f525f805160206153b48339815191520190565b614256565b91926142a681615154565b81039081116109fc5761424e93600c5f5265ffffffffffff80835f805160206153b4833981519152015416908516105f146142e2575091614244565b9291506142ee90612970565b90614244565b908154905f829160058411614357575b61430f935084615351565b8061433757505f905b6001600160d01b038216156135de576105499160016140fd9201613bce565b6141cf61434661435192612942565b835f5260205f200190565b90614318565b919261436281615154565b81039081116109fc5761430f93855f5265ffffffffffff808360205f20015416908516105f14614393575091614304565b92915061439f90612970565b90614304565b604051906143b282610b6a565b5f6020838281520152565b6143c56143a5565b506143ce6143a5565b50600a54811015612cc857600a5f526020604051916143ec83610b6a565b5f805160206153f483398151915201549165ffffffffffff83169283825260301c9182910152600b54811015612cc857600b5f525f8051602061547483398151915201546040519161443d83610b6a565b8252602082015290565b61444f6143a5565b506144586143a5565b50600c54811015612cc857600c5f5260206040519161447683610b6a565b5f805160206153b483398151915201549165ffffffffffff83169283825260301c9182910152600d54811015612cc857600d5f525f8051602061545483398151915201546040519161443d83610b6a565b90602060016144eb614517936144db6143a5565b506144e46143a5565b5085613bce565b5093604051946144fa86610b6a565b549465ffffffffffff86169586825260301c938491015201613bce565b9054906040519261452784610b6a565b835260031b1c602082015290565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b03841117610b6557610bd392604052614ba4565b60ff5f805160206154d48339815191525460401c16156145a957565b604051631afcd79f60e31b8152600490fd5b906101608282031261051057610549916138e9565b6145e390602080825183010191016145bb565b80516001600160a01b03919082161561497a57604080820165ffffffffffff614612825165ffffffffffff1690565b16156149695760c083018051909290614633906001600160a01b03166116af565b1561481a575b5091614766610140926147056146e06147c49661468761465f875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b039092169190911790556132466146b74261312c565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b6147256147156060850151151590565b60ff80195f541691151516175f55565b61474c6147356080850151151590565b61ff005f5491151560081b169061ff001916175f55565b61475960a0840151600455565b516001600160a01b031690565b84811661480a575b5060e08101516001600160a01b03168481166147fa575b506101008101516001600160a01b03168481166147ea575b506101208101516001600160a01b03168481166147da575b5001516001600160a01b031690565b9081166147ce5750565b6147d790613798565b50565b6147e390613729565b505f6147b5565b6147f3906136ba565b505f61479d565b614803906135e4565b505f614785565b61481390613533565b505f61476e565b60e0840151614831906001600160a01b03166116af565b15614906575b61012084015161484f906001600160a01b03166116af565b614639576080840151156148bc5760a0840151158061489d575b61488d575091614766610140926147056146e06147c4965b94965050509250614639565b5163183c854560e21b8152600490fd5b506101408401516148b6906001600160a01b03166116af565b15614869565b60a0840151158015906148e6575b61488d575091614766610140926147056146e06147c496614881565b506101408401516148ff906001600160a01b03166116af565b15156148ca565b60608401511561493c57610100840151614928906001600160a01b03166116af565b614837575163183c854560e21b8152600490fd5b610100840151614954906001600160a01b03166116af565b15614837575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b919061499661458d565b61499e61458d565b82516001600160401b038111610b65575f805160206153d4833981519152906149d0816149cb84546128f6565b614c37565b602080601f8311600114614a1757509080614a0592610bd396975f92614a0c575b50508160011b915f199060031b1c19161790565b9055614d29565b015190505f806149f1565b90601f19831696614a555f805160206153d48339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab090565b925f905b898210614a9957505090839291600194610bd3989910614a81575b505050811b019055614d29565b01515f1960f88460031b161c191690555f8080614a74565b80600185968294968601518155019501930190614a59565b634e487b715f526020526024601cfd5b600c5480614ad257505f905f905f90565b805f198101116109fc57600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460019165ffffffffffff82169160301c90565b600a5480614b2757505f905f905f90565b805f198101116109fc57600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460019165ffffffffffff82169160301c90565b805480614b7c5750505f905f905f90565b5f199181838101116109fc575f5260205f2001015460019165ffffffffffff82169160301c90565b905f602091828151910182855af1156129ac575f513d614bf557506001600160a01b0381163b155b614bd35750565b604051635274afe760e01b81526001600160a01b039091166004820152602490fd5b60011415614bcc565b9190600181018091116109fc57600182018092116109fc57614c21828285613afd565b928215612b5d5709151581018091116109fc5790565b601f8111614c43575050565b5f805160206153d48339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0906020601f840160051c83019310614ca6575b601f0160051c01905b818110614c9b575050565b5f8155600101614c90565b9091508190614c87565b601f8111614cbc575050565b5f805160206154148339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa906020601f840160051c83019310614d1f575b601f0160051c01905b818110614d14575050565b5f8155600101614d09565b9091508190614d00565b9081516001600160401b038111610b65575f8051602061541483398151915290614d5c81614d5784546128f6565b614cb0565b602080601f8311600114614d9157508190614d8d9394955f92614a0c5750508160011b915f199060031b1c19161790565b9055565b90601f19831695614dcf5f805160206154148339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa90565b925f905b888210614e0a57505083600195969710614df2575b505050811b019055565b01515f1960f88460031b161c191690555f8080614de8565b80600185968294968601518155019501930190614dd3565b600c5490600160401b821015610b65576001820180600c55821015612cc857600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206153b483398151915290910155565b600a5490600160401b821015610b65576001820180600a55821015612cc857600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206153f483398151915290910155565b8054600160401b811015610b6557614eed91600182018155613bce565b614f1857815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c549192918015614fd257614280614f4391612942565b9081549165ffffffffffff90818416918316808311614fc057869203614f8857614f8192509065ffffffffffff82549181199060301b169116179055565b60301c9190565b5050614fbb90614fa7614f99610bc6565b65ffffffffffff9092168252565b6001600160d01b0385166020820152614e22565b614f81565b604051632520601d60e01b8152600490fd5b50614ff690614fe2614f99610bc6565b6001600160d01b0384166020820152614e22565b5f9190565b600a549192918015615076576141b961501391612942565b9081549165ffffffffffff90818416918316808311614fc05786920361505157614f8192509065ffffffffffff82549181199060301b169116179055565b5050614fbb90615062614f99610bc6565b6001600160d01b0385166020820152614e79565b50614ff690615086614f99610bc6565b6001600160d01b0384166020820152614e79565b8054929392801561512f576150b16150bc91612942565b825f5260205f200190565b9182549265ffffffffffff91828516928116808411614fc0578793036150fb5750614f8192509065ffffffffffff82549181199060301b169116179055565b915050614fbb9161511b61510d610bc6565b65ffffffffffff9093168352565b6001600160d01b0386166020830152614ed0565b5090614ff69161514061510d610bc6565b6001600160d01b0385166020830152614ed0565b600181111561054957600181600160801b81101561526d575b61521561520b6152016151f76151ed6151e361522197600488600160401b61521c9a1015615260575b640100000000811015615253575b62010000811015615246575b61010081101561523a575b601081101561522e575b1015615226575b60030260011c6151dc818b613af3565b0160011c90565b6151dc818a613af3565b6151dc8189613af3565b6151dc8188613af3565b6151dc8187613af3565b6151dc8186613af3565b8093613af3565b821190565b900390565b60011b6151cc565b811c9160021b916151c5565b60081c91811b916151bb565b60101c9160081b916151b0565b60201c9160101b916151a4565b60401c9160201b91615196565b50600160401b9050608082901c61516d565b905b82811061528d57505090565b9091808216906001818418811c83018093116109fc57600a5f5265ffffffffffff80845f805160206153f4833981519152015416908616105f146152d5575050915b90615281565b9093925081018091116109fc57906152cf565b905b8281106152f657505090565b9091808216906001818418811c83018093116109fc57600c5f5265ffffffffffff80845f805160206153b4833981519152015416908616105f1461533e575050915b906152ea565b9093925081018091116109fc5790615338565b91905b8382106153615750505090565b909192808316906001818518811c83018093116109fc57855f5265ffffffffffff808460205f20015416908516105f146153a0575050925b9190615354565b9094935081018091116109fc579161539956fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c752c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a852c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220b9bc961cf9d9c9c89aa268126ef0b84208d178b706ef9625b4f4a0a71d8201c864736f6c63430008190033","sourceMap":"652:3172:108:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;652:3172:108;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;652:3172:108;;;;;;;;;;3551:87:23;-1:-1:-1;;;1134:40:32;;-1:-1:-1;3551:87:23;;;652:3172:108;-1:-1:-1;652:3172:108;;;;;;;;;;;;;;;;;;;-1:-1:-1;652:3172:108;;;;;;;;-1:-1:-1;;652:3172:108;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;-1:-1:-1;;652:3172:108;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:108;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;652:3172:108;;;;;;;-1:-1:-1;;;;652:3172:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:108;;;;;:::o;:::-;;;;;;-1:-1:-1;;652:3172:108;;;;;;;;;:::i;:::-;;;966:10:28;11141:19:27;11137:89;;-1:-1:-1;;;;;652:3172:108;;;11239:21:27;;11235:90;;11334:29;966:10:28;;11334:20:27;966:10:28;11334:20:27;:::i;:::-;652:3172:108;;;;;;;;;;;;;;;;11334:29:27;652:3172:108;;;;;;11415:31:27;652:3172:108;966:10:28;11415:31:27;;652:3172:108;;;10117:4:27;652:3172:108;;;11235:90:27;652:3172:108;;-1:-1:-1;;;11283:31:27;;-1:-1:-1;652:3172:108;11283:31:27;;652:3172:108;;;11283:31:27;11137:89;652:3172:108;;-1:-1:-1;;;11183:32:27;;11158:1;652:3172:108;11183:32:27;;652:3172:108;;;11183:32:27;652:3172:108;;;;;;-1:-1:-1;;652:3172:108;;;;;;;966:38:107;652:3172:108;;;;;;;;;-1:-1:-1;;652:3172:108;;;;;4803:22:107;;:::i;:::-;652:3172:108;;;;;;;;;;;;-1:-1:-1;;652:3172:108;;;;;;;821:37:107;652:3172:108;;;;;;;;;-1:-1:-1;;652:3172:108;;;;;;;;;:::i;:::-;;;3361:103:30;;;:::i;:::-;-1:-1:-1;;;;;652:3172:108;;5525:21:106;5521:75;;5634:10;652:3172:108;;;;5606:15:107;652:3172:108;;;;;5606:33:107;;;:::i;:24::-;:33;:::i;:::-;5610:35:106;;5606:88;;1057:70:98;5173:21:107;;:::i;:::-;4803:22;;:::i;:::-;1057:70:98;;;:::i;:::-;5801:20:106;;;5797:82;;5904:43;;;;:::i;:::-;3426:1:30;;1949;-1:-1:-1;;;;;;;;;;;652:3172:108;3860:283:30;3426:1;652:3172:108;;;;;;;;;;;;;;5797:82:106;652:3172:108;;-1:-1:-1;;;;;;5844:24:106;;652:3172:108;;5844:24:106;5606:88;652:3172:108;;-1:-1:-1;;;5668:15:106;;652:3172:108;;5668:15:106;5521:75;652:3172:108;;-1:-1:-1;;;5569:16:106;;652:3172:108;;5569:16:106;652:3172:108;;;;;;-1:-1:-1;;652:3172:108;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;966:10:28;4867:29:27;966:10:28;4867:20:27;;;:::i;:29::-;652:3172:108;;11910:37:27;;;11906:310;;652:3172:108;6198:5:27;;;;:::i;:::-;652:3172:108;;4867:13:27;652:3172:108;;;;;11906:310:27;11967:24;;;11963:130;;12185:5;652:3172:108;6198:5:27;652:3172:108;;966:10:28;12185:5:27;;:::i;:::-;11906:310;;11963:130;652:3172:108;;-1:-1:-1;;;12018:60:27;;966:10:28;652:3172:108;12018:60:27;;652:3172:108;;;;;;;;;;;;;;;12018:60:27;652:3172:108;;;;;;-1:-1:-1;;652:3172:108;;;;;;-1:-1:-1;652:3172:108;-1:-1:-1;;;;;;;;;;;652:3172:108;;;4919:24:23;652:3172:108;-1:-1:-1;652:3172:108;4919:24:23;652:3172:108;;;;;;;;;;;;;-1:-1:-1;;652:3172:108;;;;;;;;-1:-1:-1;;;;;652:3172:108;;;;;;;;;;;;;;-1:-1:-1;;652:3172:108;;;;4084:14:107;;:::i;:::-;4112:10;;4108:65;;4190:17;652:3172:108;;;;;;11930:17:27;;;652:3172:108;;;;;;;4210:27:107;652:3172:108;;;4210:27:107;;:::i;:::-;652:3172:108;;;;;;;4189:60:107;652:3172:108;4189:60:107;;:::i;:::-;652:3172:108;;;;;;;;;;;;;;;;;;:::i;4108:65:107:-;652:3172:108;;-1:-1:-1;;;4145:17:107;;652:3172:108;;4145:17:107;652:3172:108;;;;-1:-1:-1;;;;;652:3172:108;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:108;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;652:3172:108;;;;;;:::i;:::-;-1:-1:-1;;;;;652:3172:108;;;;;;;;;;;;;;:::i;:::-;3361:103:30;;;;;:::i;:::-;1673:7:82;-1:-1:-1;;;;;652:3172:108;1659:10:82;:21;1655:71;;-1:-1:-1;;;;;;;;;;;652:3172:108;;;;;;;6431:44:26;;;;;652:3172:108;6427:105:26;;;;1809:204:82;6427:105:26;;652:3172:108;;-1:-1:-1;;;6498:23:26;;652:3172:108;;6498:23:26;6431:44;652:3172:108;;;;6450:25:26;;;-1:-1:-1;6431:44:26;;;;;1655:71:82;652:3172:108;;-1:-1:-1;;;1703:12:82;;652:3172:108;;1703:12:82;652:3172:108;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:108;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;652:3172:108;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:108;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;652:3172:108;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;652:3172:108;;;;;;-1:-1:-1;;652:3172:108;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;652:3172:108;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;652:3172:108;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;652:3172:108;;;;;;;5383:59:107;652:3172:108;;;;;;:::i;:::-;-1:-1:-1;;;;;652:3172:108;;;-1:-1:-1;652:3172:108;;;5383:15:107;652:3172:108;;;;;5383:59:107;:::i;652:3172:108:-;;;;;;-1:-1:-1;;652:3172:108;;;;;;655:32:82;-1:-1:-1;;;;;652:3172:108;;;;;;;;;;;;-1:-1:-1;;652:3172:108;;;;5350:25:23;652:3172:108;;;;;;;:::i;:::-;;-1:-1:-1;652:3172:108;-1:-1:-1;;;;;;;;;;;652:3172:108;;3202:4:23;4919:24;652:3172:108;-1:-1:-1;652:3172:108;4919:24:23;652:3172:108;3202:4:23;:::i;:::-;5350:25;:::i;:::-;652:3172:108;;;;;;;-1:-1:-1;;652:3172:108;;;;;;;;-1:-1:-1;;;1109:37:108;;652:3172;1109:37;;652:3172;;;;;;;;-1:-1:-1;;;;;652:3172:108;1109:37;;;;;;652:3172;1109:37;;;652:3172;;;;;;;;;;;;;1109:37;;;;;;;;;;;;;;;;:::i;:::-;;;652:3172;;;;;;;;;;;;;1109:37;;;;;;-1:-1:-1;1109:37:108;;;;:::i;652:3172::-;;;;;;-1:-1:-1;;652:3172:108;;;;;;;;;:::i;:::-;966:10:28;-1:-1:-1;;;;;652:3172:108;;6441:34:23;6437:102;;6549:37;652:3172:108;;;6549:37:23;:::i;6437:102::-;652:3172:108;;-1:-1:-1;;;6498:30:23;;652:3172:108;;6498:30:23;652:3172:108;;;;;;-1:-1:-1;;652:3172:108;;;;;1524:22:106;652:3172:108;;;;1524:46:106;;;652:3172:108;;;;;;;;;;;1524:46:106;-1:-1:-1;1550:20:106;652:3172:108;;;;;1524:46:106;;652:3172:108;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;652:3172:108;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;652:3172:108;;;;;;;;;;;9542:26:106;9538:76;;-1:-1:-1;;652:3172:108;;;;;-1:-1:-1;652:3172:108;;;;;;9665:27:106;;652:3172:108;;9665:27:106;1949:1:30;-1:-1:-1;;;;;;;;;;;652:3172:108;;9538:76:106;652:3172:108;;-1:-1:-1;;;9591:12:106;;652:3172:108;;9591:12:106;652:3172:108;;;;;;-1:-1:-1;;652:3172:108;;;;;;1718:31:107;652:3172:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;-1:-1:-1;;;;;652:3172:108;;;;;3474:24:106;;3470:81;;-1:-1:-1;652:3172:108;;;;3565:55:106;;;652:3172:108;3561:118:106;;652:3172:108;;-1:-1:-1;;;3713:43:106;;;3750:4;3713:43;;;652:3172:108;;;;;;;;;;;;;;;;;;;;;;;;;3713:43:106;;;;;;;;;;-1:-1:-1;3713:43:106;;;652:3172:108;;3829:6:106;652:3172:108;;;3750:4:106;;3802:10;;3829:6;;:::i;:::-;-1:-1:-1;652:3172:108;;;3864:43:106;;;3750:4;3864:43;;;652:3172:108;;;;;;;;;;3864:43:106;652:3172:108;;;;;;3864:43:106;652:3172:108;;;;;3864:43:106;;;;;;;:59;:43;-1:-1:-1;3864:43:106;;;652:3172:108;3864:59:106;;;:::i;:::-;3938:20;;;3934:79;;652:3172:108;;;;;4027:64:106;;652:3172:108;4023:123:106;;5173:21:107;;652:3172:108;5173:21:107;4502:93:106;5173:21:107;;:::i;:::-;4803:22;4426:66:106;4803:22:107;;:::i;:::-;4349:67:106;390:70:98;;;;;:::i;:::-;837:15:73;4385:30:106;837:15:73;819:34;837:15;819:34;:::i;:::-;4385:30:106;;:::i;:::-;4349:67;;:::i;:::-;837:15:73;;4463:28:106;837:15:73;819:34;837:15;819:34;:::i;4463:28:106:-;4426:66;;:::i;:::-;-1:-1:-1;;;;;;;652:3172:108;;;;;;5606:15:107;652:3172:108;;;;;837:15:73;4553:41:106;837:15:73;5606:33:107;:24;819:34:73;837:15;819:34;:::i;:::-;-1:-1:-1;;;;;652:3172:108;;;;;;;5606:15:107;652:3172:108;;;;;;;5606:33:107;4553:41:106;:::i;:::-;4502:93;;:::i;:::-;-1:-1:-1;;652:3172:108;;;;;;;;;;;;;3802:10:106;;4611:62;;652:3172:108;;4611:62:106;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;652:3172:108;3860:283:30;3426:1;652:3172:108;;;;;-1:-1:-1;;1808:46:108;;652:3172;;1808:46;652:3172;;;;;;;;;;;;;;;;;;;4023:123:106;652:3172:108;;-1:-1:-1;;;4114:21:106;;;4027:64;5173:21:107;4045:31:106;5173:21:107;;;:::i;4045:31:106:-;652:3172:108;;-1:-1:-1;4027:64:106;;3934:79;-1:-1:-1;652:3172:108;;-1:-1:-1;;;3981:21:106;;;3864:43;;;;;;-1:-1:-1;3864:43:106;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;3713;3829:6;3713:43;;;;;;;;;;;;;;;:::i;:::-;;;;;3561:118;-1:-1:-1;652:3172:108;;-1:-1:-1;;;3643:25:106;;;3565:55;-1:-1:-1;3609:10:106;652:3172:108;;;;3586:22:106;652:3172:108;;;;;;;;3585:35:106;3565:55;;3470:81;652:3172:108;;-1:-1:-1;;;3521:19:106;;;652:3172:108;;;;;;-1:-1:-1;;652:3172:108;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:108;;;;;1805:27:107;652:3172:108;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:108;;;;;;1968:34:107;652:3172:108;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:108;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;652:3172:108;;;;;;;;;:::i;:::-;;;;;4622:48:107;652:3172:108;;;:::i;:::-;4622:48:107;;:::i;652:3172:108:-;;;;;;-1:-1:-1;;652:3172:108;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;652:3172:108;;;;;;;;;;;;;10370:24:106;10366:74;;-1:-1:-1;;652:3172:108;;;;;;;;-1:-1:-1;652:3172:108;;;;;;10489:25:106;;652:3172:108;;10489:25:106;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;652:3172:108;3860:283:30;652:3172:108;;;;;;-1:-1:-1;;652:3172:108;;;;;-1:-1:-1;;;;;;;;;;;;;;;;652:3172:108;;;;;;;;;;;;;;-1:-1:-1;;652:3172:108;;;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;;;;;652:3172:108;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;8837:64:26;;652:3172:108;;;;;;734:29:82;730:87;;652:3172:108;;;;;6431:44:26;;;;;652:3172:108;6427:105:26;;;6656:20;652:3172:108;6656:20:26;652:3172:108;1167:340:82;652:3172:108;;;;-1:-1:-1;;;;;652:3172:108;;;;;6575:22:26;-1:-1:-1;;;;;;;;;;;;;;652:3172:108;;;;;;;;;6575:22:26;1167:340:82;:::i;:::-;-1:-1:-1;;;;;;;;;;;652:3172:108;;-1:-1:-1;;652:3172:108;;;;;-1:-1:-1;;;;;652:3172:108;;;;;;;;;;;;;6656:20:26;;;;652:3172:108;6431:44:26;652:3172:108;;;;;-1:-1:-1;6450:25:26;6431:44;;;730:87:82;652:3172:108;;-1:-1:-1;;;786:20:82;;652:3172:108;;786:20:82;652:3172:108;;;;;;-1:-1:-1;;652:3172:108;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;652:3172:108;;;;;;-1:-1:-1;652:3172:108;2431:59:107;652:3172:108;;;;-1:-1:-1;652:3172:108;;;;;;;;;;;;;;-1:-1:-1;;652:3172:108;;;;3875:17:107;652:3172:108;;3895:30:107;652:3172:108;;;;;3895:14:107;;;:::i;:::-;652:3172:108;;;3895:30:107;;:::i;:::-;652:3172:108;;;;;;;3874:63:107;652:3172:108;3874:63:107;;:::i;:::-;652:3172:108;;;;;;;;;;;;;-1:-1:-1;;652:3172:108;;;;;;1200:42:107;-1:-1:-1;;;;;652:3172:108;;;;;;;;;;;;-1:-1:-1;;652:3172:108;;;;;;2136:32:107;652:3172:108;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:108;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;652:3172:108;5606:15:107;652:3172:108;;;5606:33:107;652:3172:108;-1:-1:-1;652:3172:108;5606:33:107;:::i;652:3172:108:-;;;;;;-1:-1:-1;;652:3172:108;;;;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;652:3172:108;;-1:-1:-1;;;;;;652:3172:108;;;;;;;-1:-1:-1;;;;;652:3172:108;3975:40:24;652:3172:108;;3975:40:24;652:3172:108;;;;;;;-1:-1:-1;;652:3172:108;;;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;7131:7:106;652:3172:108;7117:21:106;;-1:-1:-1;;;;;652:3172:108;;-1:-1:-1;;;;;652:3172:108;;;7117:21:106;:10;:21;7113:71;;7218:14;;:::i;:::-;7265:25;;;;:::i;:::-;7305:17;;;;:53;;;652:3172:108;7304:87:106;;;;652:3172:108;7300:146:106;;652:3172:108;5173:21:107;9310:48:106;5173:21:107;;;:::i;:::-;7540:17:106;7528:30;7540:17;;;:::i;:::-;652:3172:108;;7528:11:106;652:3172:108;;;;;;;7528:30:106;652:3172:108;;7572:29:106;;;;;7642:30;;;;;:::i;:::-;3066:5:68;;;3463;;;652:3172:108;3060:42:68;;7752:17:106;;;7748:384;;7568:1615;;;;;;;9197:17;9193:102;;7568:1615;652:3172:108;;;;;;;;;;;;;;;;;;;;;;;9310:48:106;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;652:3172:108;3860:283:30;3426:1;652:3172:108;;;;;;;;;;;;;9193:102:106;-1:-1:-1;652:3172:108;9270:13:106;;652:3172:108;;9230:18:106;;652:3172:108;;-1:-1:-1;;;;;652:3172:108;;;9230:18:106;7556:1;652:3172:108;-1:-1:-1;;;;;652:3172:108;9270:13:106;;:::i;:::-;9193:102;;7748:384;8045:29;7813:50;7962:65;7813:50;7998:28;7914:29;7813:50;8057:16;7813:50;8077:40;7813:50;;;:::i;:::-;7914:29;;;:::i;:::-;837:15:73;819:34;837:15;819:34;:::i;:::-;7998:28:106;;:::i;8077:40::-;8057:16;;:::i;8045:29::-;652:3172:108;7748:384:106;;;;;;;7568:1615;8185:26;;;;652:3172:108;;7528:11:106;652:3172:108;;;;;;;8185:26:106;652:3172:108;8250:27:106;:45;:27;;;;;:::i;:45::-;3463:5:68;3066;;;3463;;;652:3172:108;3060:42:68;;8375:17:106;;8371:802;;7568:1615;;;;;;;;8371:802;9096:26;8436:50;;8537:53;8436:50;8637:54;8436:50;8637:29;8436:50;9125:33;8436:50;;;;:::i;:::-;8537:53;;;;;;:::i;:::-;8637:29;;;;:::i;:::-;:54;:::i;:::-;8714:33;;;;8710:194;;8371:802;8922:65;837:15:73;8958:28:106;9038:40;837:15:73;;;819:34;837:15;819:34;:::i;9038:40:106:-;9005:30;9017:17;;;:::i;9005:30::-;652:3172:108;9125:33:106;:::i;:::-;9096:26;652:3172:108;;7528:11:106;652:3172:108;;;;;;;9096:26:106;652:3172:108;8371:802:106;;;;;;;8710:194;8797:33;8771:59;8922:65;8797:33;;;9038:40;8797:33;;;:::i;:::-;8771:59;;:::i;:::-;8852:33;;-1:-1:-1;8852:33:106;;-1:-1:-1;8710:194:106;;7300:146;652:3172:108;;-1:-1:-1;;;7414:21:106;;652:3172:108;;7414:21:106;7304:87;7363:28;;;;7304:87;;7305:53;7341:17;;;;:::i;:::-;7326:32;;7305:53;;7113:71;652:3172:108;;-1:-1:-1;;;7161:12:106;;652:3172:108;;7161:12:106;652:3172:108;;;;;;-1:-1:-1;;652:3172:108;;;;4384:17:107;652:3172:108;;;;;;;4405:14:107;;;:::i;:::-;4384:17;652:3172:108;;;;;;;4404:36:107;652:3172:108;;;4404:36:107;;:::i;652:3172:108:-;;;;;;-1:-1:-1;;652:3172:108;;;;;;;:::i;:::-;-1:-1:-1;;;;;652:3172:108;;;;;4867:13:27;652:3172:108;;;;;;:::o;:::-;;;;;;-1:-1:-1;;652:3172:108;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;652:3172:108;2307:68:107;652:3172:108;;;;;-1:-1:-1;652:3172:108;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:108;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;652:3172:108;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;652:3172:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6491:14:106;652:3172:108;;6491:14:106;;:::i;652:3172:108:-;;;;;4994:47:107;652:3172:108;;;:::i;:::-;4994:47:107;;:::i;652:3172:108:-;;;;;;;;;;;;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;10932:22:106;652:3172:108;;;;;10928:89:106;;652:3172:108;;-1:-1:-1;;;11032:49:106;;-1:-1:-1;;;;;652:3172:108;;;11032:49:106;;;652:3172:108;;;;;;;;;;;;;;;11032:49:106;11042:17;;;652:3172:108;11032:49:106;;;;;;;-1:-1:-1;11032:49:106;;;652:3172:108;11031:50:106;;11027:102;;652:3172:108;;-1:-1:-1;;;11143:34:106;;652:3172:108;;;;;11143:34:106;652:3172:108;11143:34:106;652:3172:108;;11143:34:106;;;;;;;-1:-1:-1;11143:34:106;;;652:3172:108;11189:4:106;;;652:3172:108;;11143:51:106;11139:107;;-1:-1:-1;10932:22:106;652:3172:108;;-1:-1:-1;;;;;652:3172:108;;;;-1:-1:-1;;;;;;652:3172:108;;;;;;;-1:-1:-1;;;652:3172:108;;;11334:24:106;-1:-1:-1;;11334:24:106;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;652:3172:108;3860:283:30;11139:107:106;652:3172:108;;-1:-1:-1;;;11217:18:106;;;11143:34;;;;;;;-1:-1:-1;11143:34:106;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;11027:102;-1:-1:-1;652:3172:108;;-1:-1:-1;;;11104:14:106;;;11032:49;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;10928:89;652:3172:108;;-1:-1:-1;;;10977:29:106;;;652:3172:108;;;;;;-1:-1:-1;;652:3172:108;;;;;;1298:40:107;-1:-1:-1;;;;;652:3172:108;;;;;;;;;;;;-1:-1:-1;;652:3172:108;;;;1703:14:106;;:::i;:::-;5173:21:107;;:::i;:::-;652:3172:108;;;;1750:11:106;652:3172:108;;;;;;;;;;;;;1791:1:106;652:3172:108;;;;;;;;;1750:11:106;652:3172:108;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:108;;;;-1:-1:-1;;;;;;;;;;;652:3172:108;;;-1:-1:-1;;;;;652:3172:108;;;;;;;;;;;;;;-1:-1:-1;;652:3172:108;;;;;;3901:31:23;652:3172:108;;;;;:::i;:::-;;;-1:-1:-1;652:3172:108;-1:-1:-1;;;;;;;;;;;652:3172:108;;;-1:-1:-1;652:3172:108;;;;;;;;;;;;;;;;;3901:31:23;652:3172:108;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:108;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:108;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;652:3172:108;;;;;;;-1:-1:-1;;;;652:3172:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;652:3172:108;;;;-1:-1:-1;652:3172:108;;;477:31:86;652:3172:108;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:86;;;;652:3172:108;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;652:3172:108;;;;;;;;;;;;;477:31:86;;652:3172:108;;;;;;;;;;:::i;:::-;477:31:86;652:3172:108;;477:31:86;;;;;;:::i;:::-;518:79;;;652:3172:108;518:79:86;;652:3172:108;;;;;;;;;;;-1:-1:-1;;652:3172:108;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:108;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:108;;;;;;;1109:35:107;652:3172:108;;;;;;;;;-1:-1:-1;;652:3172:108;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;;;;;652:3172:108;;;9907:21:106;;9903:75;;-1:-1:-1;652:3172:108;;;9992:22:106;652:3172:108;;;;;;;;;;;;;9992:41:106;9988:91;;-1:-1:-1;;;;;652:3172:108;;;;;3586:22:106;652:3172:108;;;;;10145:44:106;;;;10089:40;;:31;652:3172:108;;;;;;;;;;;;;;10089:40:106;652:3172:108;;;;;;;;;;;;;;;10145:44:106;;;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;652:3172:108;3860:283:30;9903:75:106;652:3172:108;;-1:-1:-1;;;9951:16:106;;652:3172:108;;9951:16:106;652:3172:108;;;;;;-1:-1:-1;;652:3172:108;;;;;2666:94:107;652:3172:108;;;;;:::i;:::-;;;-1:-1:-1;652:3172:108;2666:94:107;652:3172:108;;;-1:-1:-1;652:3172:108;;;;;;;;;;;;;;;;;2666:94:107;652:3172:108;;;;;;;;;;;;;-1:-1:-1;;652:3172:108;;;;;;2816:92:107;652:3172:108;;;;;:::i;:::-;;;-1:-1:-1;652:3172:108;2816:92:107;652:3172:108;;;-1:-1:-1;652:3172:108;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:108;;;;4616:5:27;652:3172:108;;;;;:::i;:::-;;;966:10:28;;4616:5:27;:::i;:::-;652:3172:108;;;4639:4:27;652:3172:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3361:103:30;;:::i;:::-;11459:20:106;652:3172:108;;;;;11455:85:106;;-1:-1:-1;;;;;652:3172:108;;;;;;11550:312:106;;652:3172:108;11459:20:106;652:3172:108;;-1:-1:-1;;;;652:3172:108;-1:-1:-1;;;652:3172:108;;;11872:27:106;11915:20;-1:-1:-1;11915:20:106;;3426:1:30;1949;-1:-1:-1;;;;;;;;;;;652:3172:108;3860:283:30;11550:312:106;652:3172:108;;-1:-1:-1;;;11597:45:106;;-1:-1:-1;;;;;652:3172:108;;11597:45:106;;;652:3172:108;;;11597:45:106;;652:3172:108;;;;;;11597:45:106;11607:15;;;652:3172:108;11597:45:106;;;;;;;-1:-1:-1;11597:45:106;;;11550:312;11596:46;;11592:104;;652:3172:108;;-1:-1:-1;;;11714:30:106;;;652:3172:108;11714:30:106;652:3172:108;11714:30:106;;;;;;;;-1:-1:-1;11714:30:106;;;11550:312;11756:4;;;652:3172:108;;11714:47:106;11710:109;;-1:-1:-1;11459:20:106;652:3172:108;;-1:-1:-1;;;;;;652:3172:108;-1:-1:-1;;;;;652:3172:108;;;;;;;;;11550:312:106;;;;;;11710:109;652:3172:108;;-1:-1:-1;;;11788:16:106;;;11714:30;;;;;;;-1:-1:-1;11714:30:106;;;;;;:::i;:::-;;;;;;11592:104;652:3172:108;;-1:-1:-1;;;11669:12:106;;652:3172:108;;11669:12:106;11597:45;;;;;;;;;;;;;;:::i;:::-;;;;11455:85;652:3172:108;;-1:-1:-1;;;11502:27:106;;;652:3172:108;;;;;;-1:-1:-1;;652:3172:108;;;;;;;;;:::i;:::-;;;3361:103:30;;;:::i;:::-;-1:-1:-1;;;;;652:3172:108;;;;;6112:23:106;;6108:79;;6273:6;652:3172:108;6206:13:106;;;;:::i;:::-;652:3172:108;;;-1:-1:-1;652:3172:108;;;;6273:6:106;:::i;:::-;652:3172:108;;;;;;;;;;;;6302:10:106;;6296:43;;652:3172:108;6296:43:106;1949:1:30;-1:-1:-1;;;;;;;;;;;652:3172:108;;;;;;;;;;;;;;6108:79:106;652:3172:108;;-1:-1:-1;;;6158:18:106;;652:3172:108;;6158:18:106;652:3172:108;;;;;;-1:-1:-1;;652:3172:108;;;;;;-1:-1:-1;652:3172:108;2546:64:107;652:3172:108;;;;-1:-1:-1;652:3172:108;;;;;;;;;;;;;;-1:-1:-1;;652:3172:108;;;;2058:22:107;652:3172:108;;;-1:-1:-1;;;;;652:3172:108;;;;;;;;;;;;;;-1:-1:-1;;652:3172:108;;;;;5173:21:107;;:::i;652:3172:108:-;;;;;;-1:-1:-1;;652:3172:108;;;;;;3361:103:30;;:::i;:::-;966:10:28;-1:-1:-1;652:3172:108;;;;;;;;;;1109:35:107;;652:3172:108;;4468:23:23;4464:108;;652:3172:108;;;;10692:21:106;10688:71;;652:3172:108;;10805:22:106;652:3172:108;;;;;;;;10805:22:106;1949:1:30;-1:-1:-1;;;;;;;;;;;652:3172:108;;4464:108:23;652:3172:108;;;;4514:47:23;;;;;;966:10:28;652:3172:108;4514:47:23;;652:3172:108;;;;;4514:47:23;652:3172:108;;;;;;-1:-1:-1;;652:3172:108;;;;;;;;;:::i;:::-;3123:14:106;;:::i;:::-;3154:24;;;:::i;:::-;3181:29;;;;;:::i;:::-;652:3172:108;;;;;;;3235:1:106;652:3172:108;;;;;;;3213:33:106;;;:::i;:::-;652:3172:108;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:108;;;;1888:24:107;652:3172:108;;;-1:-1:-1;;;;;652:3172:108;;;;;;;;;;;;;;-1:-1:-1;;652:3172:108;;;;5767:26:23;652:3172:108;;;;;;;:::i;:::-;;-1:-1:-1;652:3172:108;-1:-1:-1;;;;;;;;;;;652:3172:108;;3202:4:23;4919:24;652:3172:108;-1:-1:-1;652:3172:108;4919:24:23;652:3172:108;3202:4:23;:::i;:::-;5767:26;:::i;652:3172:108:-;;;;;;-1:-1:-1;;652:3172:108;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:108;;;;;;;;;;;;-1:-1:-1;;652:3172:108;;;;;;;675:39:107;652:3172:108;;;;;;;;;-1:-1:-1;;652:3172:108;;;;;4867:29:27;652:3172:108;;;;;:::i;:::-;4867:20:27;652:3172:108;;;;;;:::i;:::-;4867:20:27;:::i;652:3172:108:-;;;;;;-1:-1:-1;;652:3172:108;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:108;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;652:3172:108;;;;;;;;;;;;;;;:::i;:::-;1972:48:106;;652:3172:108;;;;;;;:::i;:::-;;;;;;;;;;;;;;2034:16:106;;2030:111;;652:3172:108;;2233:39:106;1057:70:98;2233:39:106;;4622:48:107;2196:77:106;2233:39;;;;2196:77;;:::i;:::-;2312:36;;4994:47:107;652:3172:108;2312:36:106;;;4994:47:107;;:::i;:::-;2389:37:106;;;4622:48:107;;:::i;:::-;1057:70:98;;:::i;:::-;652:3172:108;;;;;;;;;;;;;2030:111:106;2089:41;;;;-1:-1:-1;652:3172:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;4622:48:107;652:3172:108;2196:77:106;652:3172:108;1057:70:98;652:3172:108;;;:::i;:::-;;;;;2030:111:106;;;;;652:3172:108;;;;;;-1:-1:-1;;652:3172:108;;;;2357:1:24;652:3172:108;;;;;:::i;:::-;2303:62:24;;:::i;:::-;2357:1;:::i;652:3172:108:-;;;;;;-1:-1:-1;;652:3172:108;;;;;;;;;:::i;:::-;;;3361:103:30;;:::i;:::-;-1:-1:-1;;;;;652:3172:108;;4890:21:106;4886:75;;4975:11;;4971:73;;845:69:98;4803:22:107;;:::i;:::-;5173:21;;:::i;:::-;845:69:98;;;:::i;:::-;5180:10:106;652:3172:108;;;;5606:15:107;652:3172:108;;;;;5180:10:106;;;5606:33:107;;;:::i;:::-;5150:41:106;;5146:96;;5267:40;;;;;:::i;5146:96::-;652:3172:108;;-1:-1:-1;;;5214:17:106;;652:3172:108;;5214:17:106;4971:73;652:3172:108;;-1:-1:-1;;;5009:24:106;;652:3172:108;;5009:24:106;652:3172:108;;;;;;-1:-1:-1;;652:3172:108;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:3172:108;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;7556:1:106;652:3172:108;;;;;;;:::o;:::-;;;;;;;;;;:::o;5256:193:107:-;-1:-1:-1;;;;;652:3172:108;-1:-1:-1;652:3172:108;;;5383:15:107;652:3172:108;;;;;5383:59:107;;5256:193;;5383:59;:::i;652:3172:108:-;;;;;;;;;;1167:340:82;;652:3172:108;1167:340:82;6893:76:26;;:::i;:::-;;;:::i;:::-;1949:1:30;-1:-1:-1;;;;;;;;;;;652:3172:108;-1:-1:-1;;;;;652:3172:108;;1376:73:82;;1167:340;652:3172:108;;;;:::i;:::-;;;3642:39;;;;;;;652:3172;;;;;;;3642:39;;;652:3172;-1:-1:-1;;;;;652:3172:108;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;3734:29;652:3172;;2282:147:27;652:3172:108;3734:29;652:3172;;;;:::i;:::-;;;;;;;;3745:17;652:3172;3734:29;652:3172;;3734:29;;;;;;:::i;:::-;;:::i;:::-;3788:11;3801:13;;2282:147:27;;:::i;1376:73:82:-;6961:1:26;6893:76;;;:::i;:::-;;;:::i;6961:1::-;1376:73:82;;;2492:191:106;-1:-1:-1;;;;;652:3172:108;-1:-1:-1;652:3172:108;;;5606:15:107;652:3172:108;;;;;5606:33:107;;;:::i;:::-;5173:21;;:::i;:::-;4803:22;;:::i;:::-;652:3172:108;1884:1:98;652:3172:108;;;;;;;1884:1:98;652:3172:108;;;;;;;9478:25:68;;;:::i;652:3172:108:-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;3612:132:107:-;819:34:73;837:15;819:34;:::i;:::-;3683:54:107;3703:17;652:3172:108;3684:36:107;652:3172:108;;;;;;;3684:36:107;;:::i;:::-;652:3172:108;;;3683:54:107;;:::i;:::-;652:3172:108;3612:132:107;:::o;3313:244::-;3418:17;652:3172:108;;;;;;;;;;;;;;3406:29:107;3402:85;;3503:47;3504:29;;;;:::i;3402:85::-;652:3172:108;;-1:-1:-1;;;3458:18:107;;;;;3361:103:30;;;;:::i;:::-;652:3172:108;;-1:-1:-1;;;;;652:3172:108;;;6521:23:106;;6517:79;;6650:11;;6646:70;;652:3172:108;6742:10:106;;;;;;-1:-1:-1;652:3172:108;;6887:49:106;;652:3172:108;;;;6864:6:106;;652:3172:108;;6821:18:106;;652:3172:108;;-1:-1:-1;;;;;652:3172:108;;;6821:18:106;6864:6;:::i;:::-;6887:49;652:3172:108;;6898:10:106;;;;6887:49;;;:::i;:::-;;;;3426:1:30;;1949;-1:-1:-1;;;;;;;;;;;652:3172:108;3860:283:30;6754:3:106;6790:9;6773:27;652:3172:108;6790:9:106;6783:17;6790:9;;;;;:::i;:::-;652:3172:108;6783:17:106;:::i;6773:27::-;6754:3;652:3172:108;6731:9:106;;6646:70;652:3172:108;;-1:-1:-1;;;6684:21:106;;;;;652:3172:108;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:108;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;3405:215:24:-;-1:-1:-1;;;;;652:3172:108;;;;3489:22:24;;3485:91;;-1:-1:-1;;;;;;;;;;;652:3172:108;;-1:-1:-1;;;;;;652:3172:108;;;;;;;;3975:40:24;-1:-1:-1;;3975:40:24;3405:215::o;3485:91::-;652:3172:108;;-1:-1:-1;;;3534:31:24;;3509:1;3534:31;;;652:3172:108;;;3534:31:24;2731:227:106;;2871:34;2731:227;652:3172:108;-1:-1:-1;652:3172:108;2871:18:106;652:3172:108;;;-1:-1:-1;652:3172:108;;;;;;;;;;;;;;;;;2871:34:106;652:3172:108;;-1:-1:-1;652:3172:108;2907:11:106;652:3172:108;;;-1:-1:-1;652:3172:108;;2927:16:106;652:3172:108;;;-1:-1:-1;652:3172:108;;;1884:1:98;652:3172:108;;;;;;;1884:1:98;652:3172:108;;;;;;;9478:25:68;;;:::i;3470:384:30:-;-1:-1:-1;;;;;;;;;;;1991:1:30;652:3172:108;;3670:20:30;3666:88;;1991:1;652:3172:108;;3470:384:30:o;3666:88::-;652:3172:108;;-1:-1:-1;;;3713:30:30;;;;;1867:311:108;12135:10:106;-1:-1:-1;652:3172:108;;;5606:15:107;652:3172:108;;;;;1867:311;;;-1:-1:-1;;1867:311:108;;12119:93:106;;819:34:73;837:15;819:34;:::i;:::-;12135:10:106;652:3172:108;;;;5606:15:107;652:3172:108;;;;;12170:41:106;;12135:10;;5606:33:107;;;:::i;12119:93:106:-;837:15:73;;12222:67:106;819:34:73;837:15;819:34;:::i;:::-;12259:29:106;4803:22:107;;;:::i;12222:67:106:-;837:15:73;;12299:68:106;819:34:73;837:15;819:34;:::i;:::-;12335:31:106;5173:21:107;;;:::i;12299:68:106:-;12394:14;;;12769:34;12394:14;12769:25;12394:18;:14;;:::i;:::-;:18;:::i;:::-;12726:33;12445:18;;652:3172:108;;7528:11:106;652:3172:108;;;;;;;12445:18:106;652:3172:108;12502:23:106;;652:3172:108;;12502:16:106;652:3172:108;;;;;;;12502:23:106;652:3172:108;12660:30:106;390:70:98;;;;;:::i;:::-;12660:30:106;;;;:::i;:::-;12639:18;;652:3172:108;;7528:11:106;652:3172:108;;;;;;;12639:18:106;652:3172:108;12726:33:106;:::i;:::-;12700:23;;652:3172:108;;12502:16:106;652:3172:108;;;;;;;12700:23:106;652:3172:108;;;12769:18:106;652:3172:108;;;;;;;12769:34:106;:50;652:3172:108;;;12769:50:106;:::i;:::-;652:3172:108;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:108;;;;;12135:10:106;;12835:74;;652:3172:108;;12835:74:106;652:3172:108;;;;;;12135:10:106;;2125:46:108;;652:3172;;;;2125:46;;;;1867:311::o;6605:300:27:-;;-1:-1:-1;;;;;652:3172:108;;;;;6688:18:27;;6684:86;;652:3172:108;;6783:16:27;;;6779:86;;-1:-1:-1;;;;;652:3172:108;;;;;;5606:15:107;652:3172:108;;;;;5606:33:107;;;:::i;:::-;2607:19:108;;;;2603:115;;3459:25;2838:21;:65;3459:25;2838:21;;;3354:65;2838:21;652:3172;;;;;;;;5606:15:107;652:3172:108;;;;;;;2838:21;837:15:73;;819:34;837:15;819:34;:::i;:::-;652:3172:108;;2838:65;;:::i;:::-;-1:-1:-1;;;;;;;652:3172:108;;;;;;5606:15:107;652:3172:108;;;;;837:15:73;;5606:33:107;:24;819:34:73;837:15;819:34;:::i;:::-;-1:-1:-1;;;;;652:3172:108;;;;;;;5606:15:107;652:3172:108;;;;;;;5606:33:107;652:3172:108;3354:65;;:::i;:::-;-1:-1:-1;;652:3172:108;;;;;;;;;;;;;2603:115;652:3172;;-1:-1:-1;;;2653:50:108;;-1:-1:-1;;;;;652:3172:108;;;;2653:50;;;652:3172;;;;;;;;;;;;;;;;12018:60:27;6779:86;652:3172:108;;-1:-1:-1;;;6822:32:27;;6704:1;6822:32;;;652:3172:108;;;6822:32:27;6684:86;652:3172:108;;-1:-1:-1;;;6729:30:27;;6704:1;6729:30;;;652:3172:108;;;6729:30:27;14296:213:69;652:3172:108;14374:24:69;;;;14370:103;;652:3172:108;14296:213:69;:::o;14370:103::-;652:3172:108;;;;14421:41:69;;;;;;14452:2;14421:41;;;652:3172:108;;;;;14421:41:69;1809:204:82;652:3172:108;1809:204:82;652:3172:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:97:-;;652:3172:108;;7686:17:97;7682:83;;652:3172:108;7789:27:97;652:3172:108;7789:27:97;652:3172:108;;7789:27:97;;;;;;:::i;:::-;7860:14;;;:::i;:::-;652:3172:108;;;;;;;;;;;;;;;;7888:22:97;;;7884:77;;7975:21;-1:-1:-1;7975:84:97;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;7789:27;8082:17;;;652:3172:108;8075:24:97;:::o;7975:84::-;652:3172:108;;;8009:16:97;4622:13:107;652:3172:108;8009:16:97;:::i;:::-;652:3172:108;;;8001:24:97;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:::-;652:3172:108;;;;;8029:23:97;652:3172:108;;;;8029:29:97;;8001:57;;;;7884:77;7933:17;;;7789:27;7933:17;;;652:3172:108;7926:24:97;:::o;7682:83::-;7726:28;;;;:::i;7558:604::-;;652:3172:108;;7686:17:97;7682:83;;652:3172:108;7789:27:97;652:3172:108;7789:27:97;652:3172:108;;7789:27:97;;;;;;:::i;:::-;7860:14;;;:::i;:::-;652:3172:108;;;;;;;;;;;;;;;;7888:22:97;;;7884:77;;7975:21;-1:-1:-1;7975:84:97;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7975:84::-;652:3172:108;;;8009:16:97;4994:12:107;652:3172:108;8009:16:97;:::i;:::-;652:3172:108;;;8001:24:97;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:29::-;;8001:57;;;;7682:83;7726:28;;;;:::i;7558:604::-;;652:3172:108;;7686:17:97;7682:83;;652:3172:108;7789:27:97;652:3172:108;7789:27:97;652:3172:108;;7789:27:97;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;652:3172:108;;;;;;;;;;;;;;;;7888:22:97;;;7884:77;;7975:21;-1:-1:-1;7975:84:97;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;652:3172:108;8075:24:97;:::o;7975:84::-;652:3172:108;;;8009:16:97;652:3172:108;;8009:16:97;:::i;:::-;652:3172:108;;;8001:24:97;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:29::-;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;652:3172:108;7926:24:97;:::o;7682:83::-;7726:28;;;;:::i;4148:103:23:-;966:10:28;-1:-1:-1;652:3172:108;;;;;;;;;675:39:107;;652:3172:108;;3901:31:23;652:3172:108;;4468:23:23;4464:108;;4148:103;:::o;:::-;966:10:28;-1:-1:-1;652:3172:108;;;;;;;;;966:38:107;;652:3172:108;;3901:31:23;652:3172:108;4148:103:23;966:10:28;-1:-1:-1;652:3172:108;;;;;;;;;821:37:107;;652:3172:108;;3901:31:23;652:3172:108;4148:103:23;-1:-1:-1;652:3172:108;;;-1:-1:-1;;;;;;;;;;;652:3172:108;;;;;;;;966:10:28;652:3172:108;;;;;;;;;3901:31:23;652:3172:108;7270:387:23;-1:-1:-1;;;;;652:3172:108;;13555:17:106;652:3172:108;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;652:3172:108;;;;13555:17:106;652:3172:108;;;;;;;;;;;-1:-1:-1;;;;;652:3172:108;;;;;;;;;;-1:-1:-1;;652:3172:108;7509:4:23;652:3172:108;;;966:10:28;;-1:-1:-1;;;;;652:3172:108;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;13555:17:106;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;652:3172:108;;-1:-1:-1;652:3172:108;;;;;;;;;675:39:107;;-1:-1:-1;;;;;;;;;;;2887:71:23;652:3172:108;;3901:31:23;652:3172:108;;;;-1:-1:-1;652:3172:108;;;;;;;;;;;-1:-1:-1;;;;;652:3172:108;;;;;;;;;;-1:-1:-1;;652:3172:108;7509:4:23;652:3172:108;;;966:10:28;;-1:-1:-1;;;;;652:3172:108;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;652:3172:108;;-1:-1:-1;652:3172:108;;;;;;;;;821:37:107;;-1:-1:-1;;;;;;;;;;;2887:71:23;652:3172:108;;3901:31:23;652:3172:108;7270:387:23;-1:-1:-1;;;;;652:3172:108;;-1:-1:-1;652:3172:108;;;;;;;;;966:38:107;;-1:-1:-1;;;;;;;;;;;2887:71:23;652:3172:108;;3901:31:23;652:3172:108;7270:387:23;-1:-1:-1;;;;;652:3172:108;;-1:-1:-1;652:3172:108;;;;;;;;;1109:35:107;;-1:-1:-1;;;;;;;;;;;2887:71:23;652:3172:108;;3901:31:23;652:3172:108;7270:387:23;-1:-1:-1;652:3172:108;;;-1:-1:-1;;;;;;;;;;;652:3172:108;;;;;;;;-1:-1:-1;;;;;652:3172:108;;;;;;;;;;;;3901:31:23;652:3172:108;7892:388:23;-1:-1:-1;652:3172:108;;;-1:-1:-1;;;;;;;;;;;652:3172:108;;;;;;;;-1:-1:-1;;;;;652:3172:108;;;;;;;;;;;;;;;;-1:-1:-1;652:3172:108;;;;;;;;;;;-1:-1:-1;;;;;652:3172:108;;;;;;;;;;-1:-1:-1;;652:3172:108;;;966:10:28;;-1:-1:-1;;;;;652:3172:108;;8155:40:23;-1:-1:-1;;8155:40:23;652:3172:108;8209:11:23;:::o;652:3172:108:-;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;652:3172:108;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;652:3172:108;;;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;652:3172:108;;;;;;;;;;-1:-1:-1;;;;;652:3172:108;;;;;;;;;;-1:-1:-1;;;;;652:3172:108;;;;;;;;;;-1:-1:-1;;;;;652:3172:108;;;;;;;;;;-1:-1:-1;;;;;652:3172:108;;;;;2658:162:24;-1:-1:-1;;;;;;;;;;;652:3172:108;-1:-1:-1;;;;;652:3172:108;966:10:28;2717:23:24;2713:101;;2658:162::o;2713:101::-;652:3172:108;;-1:-1:-1;;;2763:40:24;;966:10:28;2763:40:24;;;652:3172:108;;;2763:40:24;652:3172:108;;;;;;;:::o;4996:4226:68:-;;652:3172:108;;;;-1:-1:-1;;652:3172:108;4996:4226:68;5584:131;;;;;;;;;;;;5796:10;;5792:368;;6270:20;;;;6266:143;;6695:300;;;;652:3172:108;-1:-1:-1;652:3172:108;7214:31:68;;7259:375;;;8094:1;652:3172:108;;8075:1:68;652:3172:108;8074:21:68;652:3172:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7259:375:68;;;;-1:-1:-1;7259:375:68;;;6695:300;;;;;;652:3172:108;6695:300:68;;7259:375;7700:21;652:3172:108;4996:4226:68;:::o;6266:143::-;6330:16;;3066:5;652:3172:108;940:4:59;3060:42:68;6322:71;:::i;5792:368::-;6126:19;;;;;;;:::i;652:3172:108:-;7178:12:97;652:3172:108;;;;;;7178:12:97;-1:-1:-1;652:3172:108;-1:-1:-1;;;;;;;;;;;652:3172:108;;-1:-1:-1;652:3172:108;:::o;:::-;7178:12:97;652:3172:108;;;;;;7178:12:97;-1:-1:-1;652:3172:108;-1:-1:-1;;;;;;;;;;;652:3172:108;;-1:-1:-1;652:3172:108;:::o;:::-;;;;;;;;-1:-1:-1;652:3172:108;;-1:-1:-1;652:3172:108;;;-1:-1:-1;652:3172:108;:::o;:::-;6360:12:97;652:3172:108;-1:-1:-1;;;652:3172:108;;;;;;;;;6360:12:97;652:3172:108;;;;;;6360:12:97;-1:-1:-1;652:3172:108;-1:-1:-1;;;;;;;;;;;652:3172:108;;:::o;:::-;6360:12:97;652:3172:108;-1:-1:-1;;;652:3172:108;;;;;;;;;6360:12:97;652:3172:108;;;;;;6360:12:97;-1:-1:-1;652:3172:108;-1:-1:-1;;;;;;;;;;;652:3172:108;;:::o;:::-;;;;;-1:-1:-1;;;652:3172:108;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;11930:17:27;;;652:3172:108;;;;;;;;6246:584:97;;;;6360:12;652:3172:108;;;6360:24:97;;6356:75;;6246:584;6474:30;;;:::i;:::-;652:3172:108;;;;;;6578:12:97;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:97;;;-1:-1:-1;;;652:3172:108;;;;;;;;;-1:-1:-1;652:3172:108;;;-1:-1:-1;652:3172:108;;;;;;6798:25:97;652:3172:108;6246:584:97:o;6600:188::-;8310:38:71;;-1:-1:-1;;;;;652:3172:108;;-1:-1:-1;8310:38:71;:::i;:::-;6753:24:97;;;;;:::i;:::-;6798:25;6246:584;:::o;6604:24::-;652:3172:108;;;;;;6614:14:97;;-1:-1:-1;6604:24:97;;;6356:75;-1:-1:-1;;;652:3172:108;;;;;;;;;;;;;;;;-1:-1:-1;652:3172:108;;;;-1:-1:-1;;;;;;;;;;;652:3172:108;;6356:75:97;;;6246:584;;;;6360:12;652:3172:108;;;6360:24:97;;6356:75;;6246:584;6474:30;;;:::i;:::-;652:3172:108;;;;;;6578:12:97;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:97;;;-1:-1:-1;;;652:3172:108;;;;;;;;;-1:-1:-1;652:3172:108;;;-1:-1:-1;652:3172:108;;;;;;6798:25:97;652:3172:108;6246:584:97:o;6600:188::-;8310:38:71;;-1:-1:-1;;;;;652:3172:108;;-1:-1:-1;8310:38:71;:::i;:::-;6753:24:97;;;;;:::i;6604:::-;652:3172:108;;;;;;6614:14:97;;-1:-1:-1;6604:24:97;;;6356:75;-1:-1:-1;;;652:3172:108;;;;;;;;;;;;;;;;-1:-1:-1;652:3172:108;;;;-1:-1:-1;;;;;;;;;;;652:3172:108;;6356:75:97;;;6246:584;;;;;6360:12;;;652:3172:108;;;6360:24:97;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;652:3172:108;;;;;;6578:12:97;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:97;;;-1:-1:-1;;;;;652:3172:108;;;;;;;6644:21:97;;;:29;:21;;:::i;6600:188::-;6753:24;;652:3172:108;;8310:38:71;;-1:-1:-1;;;;;652:3172:108;;;;;8310:38:71;:::i;:::-;6753:24:97;;;:::i;6604:::-;652:3172:108;;;;;;6614:14:97;;-1:-1:-1;6604:24:97;;;6356:75;-1:-1:-1;;;652:3172:108;;;;;;6360:12:97;652:3172:108;;;;;;;:::i;:::-;;;11930:17:27;;;652:3172:108;;;;;;;;6356:75:97;;;1271:160:55;652:3172:108;;-1:-1:-1;;;1380:43:55;;;;-1:-1:-1;;;;;652:3172:108;;;1380:43:55;;;652:3172:108;;;;;;;;;1380:43:55;;;652:3172:108;;;;-1:-1:-1;;;;;652:3172:108;;;;;;;;1380:43:55;652:3172:108;;;1380:43:55;:::i;12922:460:106:-;;13024:14;;:::i;:::-;13015:23;;;13011:75;;-1:-1:-1;652:3172:108;;;13100:20:106;652:3172:108;;;;;;;;13128:10:106;652:3172:108;;;;;;;;;;13096:93:106;;13208:32;13128:10;13208:32;;:::i;:::-;13255:11;;;13251:68;;-1:-1:-1;652:3172:108;;;13100:20:106;652:3172:108;;;;;;;;13128:10:106;652:3172:108;;;;;;;;;-1:-1:-1;;652:3172:108;13371:4:106;652:3172:108;;;12922:460:106:o;13251:68::-;652:3172:108;;-1:-1:-1;;;13289:19:106;;;;;13096:93;652:3172:108;;-1:-1:-1;;;13162:16:106;;;;;13011:75;652:3172:108;;-1:-1:-1;;;13061:14:106;;;;;10580:184:97;4803:13:107;652:3172:108;10446:8:71;;;:63;-1:-1:-1;10446:63:71;-1:-1:-1;;;;;652:3172:108;;10726:7:97;652:3172:108;;10736:12:97;652:3172:108;;;;;;10736:12:97;-1:-1:-1;652:3172:108;-1:-1:-1;;;;;;;;;;;652:3172:108;;10580:184:97;:::o;10726:31::-;;-1:-1:-1;10580:184:97;:::o;10446:63:71:-;11930:17:27;;;652:3172:108;;;;;4803:13:107;-1:-1:-1;14439:109:71;;;652:3172:108;;;10446:63:71;;10580:184:97;5173:12:107;652:3172:108;10446:8:71;;;:63;-1:-1:-1;10446:63:71;-1:-1:-1;;;;;652:3172:108;;10726:7:97;652:3172:108;;10736:12:97;652:3172:108;;;;;;10736:12:97;-1:-1:-1;652:3172:108;-1:-1:-1;;;;;;;;;;;652:3172:108;;10580:184:97;:::o;10446:63:71:-;11930:17:27;;;652:3172:108;;;;;5173:12:107;-1:-1:-1;14439:109:71;;;652:3172:108;;;10446:63:71;;10580:184:97;652:3172:108;;10446:8:71;;;:63;-1:-1:-1;10446:63:71;-1:-1:-1;;;;;652:3172:108;;10726:7:97;652:3172:108;;10736:12:97;:17;:12;;:17;:::i;:::-;652:3172:108;;;;;;10580:184:97;:::o;10446:63:71:-;11930:17:27;;652:3172:108;;;;;;;;14439:109:71;-1:-1:-1;14439:109:71;;-1:-1:-1;14439:109:71;;;652:3172:108;;;10446:63:71;;10976:487:27;;-1:-1:-1;;;;;652:3172:108;;;11141:19:27;11137:89;;652:3172:108;;11239:21:27;11235:90;;11334:20;:29;:20;;:::i;:29::-;652:3172:108;10976:487:27:o;1662:280:98:-;;;1884:1;652:3172:108;;;;;;;1884:1:98;652:3172:108;;;;;;;9478:25:68;;;:::i;6999:207:97:-;4622:13:107;652:3172:108;9737:15:71;-1:-1:-1;9762:18:71;9795:7;9801:1;9795:7;;9791:234;;6999:207:97;10049:53:71;;;;:::i;:::-;10120:8;;;:63;-1:-1:-1;10120:63:71;-1:-1:-1;;;;;652:3172:108;;7168:7:97;652:3172:108;;7178:17:97;652:3172:108;7178:17:97;;:::i;10120:63:71:-;10135:41;10168:7;10135:48;10168:7;;:::i;:::-;4622:13:107;14439:109:71;;-1:-1:-1;;;;;;;;;;;14439:109:71;14289:265;;10135:41;652:3172:108;;;;;10135:48:71;10120:63;;9791:234;9838:14;;;;;:::i;:::-;652:3172:108;;;;;;;10049:53:71;14439:109;4622:13:107;-1:-1:-1;14439:109:71;652:3172:108;14439:109:71;;-1:-1:-1;;;;;;;;;;;14439:109:71;652:3172:108;;;;;9870:48:71;9866:149;652:3172:108;;;9938:10:71;9866:149;9791:234;;9866:149;9993:7;;;;;;:::i;:::-;9866:149;9791:234;;6999:207:97;4994:12:107;652:3172:108;9737:15:71;-1:-1:-1;9762:18:71;9795:7;9801:1;9795:7;;9791:234;;6999:207:97;10049:53:71;;;;:::i;:::-;10120:8;;;:63;-1:-1:-1;10120:63:71;-1:-1:-1;;;;;652:3172:108;;7168:7:97;652:3172:108;;7178:17:97;652:3172:108;7178:17:97;;:::i;10120:63:71:-;10135:41;10168:7;10135:48;10168:7;;:::i;:::-;4994:12:107;14439:109:71;;-1:-1:-1;;;;;;;;;;;14439:109:71;14289:265;;10135:48;10120:63;;9791:234;9838:14;;;;;:::i;:::-;652:3172:108;;;;;;;10049:53:71;14439:109;4994:12:107;-1:-1:-1;14439:109:71;652:3172:108;14439:109:71;;-1:-1:-1;;;;;;;;;;;14439:109:71;652:3172:108;;;;;9870:48:71;9866:149;652:3172:108;;;9938:10:71;9866:149;9791:234;;9866:149;9993:7;;;;;;:::i;:::-;9866:149;9791:234;;6999:207:97;;652:3172:108;;9737:15:71;-1:-1:-1;9762:18:71;9795:7;9801:1;9795:7;;9791:234;;6999:207:97;10049:53:71;;;;;:::i;:::-;10120:8;;;:63;-1:-1:-1;10120:63:71;;-1:-1:-1;;;;;652:3172:108;;7168:7:97;652:3172:108;;;7178:12:97;;:17;:12;;:17;:::i;10120:63:71:-;10135:41;10168:7;10135:48;10168:7;;:::i;:::-;10135:41;14439:109;;;;;;14289:265;;10135:48;10120:63;;;9791:234;9838:14;;;;;:::i;:::-;652:3172:108;;;;;;;10049:53:71;14439:109;;-1:-1:-1;14439:109:71;652:3172:108;14439:109:71;;;-1:-1:-1;14439:109:71;;652:3172:108;;;;;9870:48:71;9866:149;652:3172:108;;;9938:10:71;9866:149;9791:234;;9866:149;9993:7;;;;;;:::i;:::-;9866:149;9791:234;;652:3172:108;;;;;;;:::i;:::-;-1:-1:-1;652:3172:108;;;;;;;:::o;11486:272:97:-;652:3172:108;;:::i;:::-;;;;:::i;:::-;;4622:13:107;652:3172:108;;;;;;4622:13:107;-1:-1:-1;652:3172:108;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;652:3172:108;;;;;;;;;;;;;;;;;11718:12:97;652:3172:108;;;;;;11718:12:97;-1:-1:-1;652:3172:108;-1:-1:-1;;;;;;;;;;;652:3172:108;;;;;;;;:::i;:::-;;;;11672:79:97;;652:3172:108;11486:272:97;:::o;:::-;652:3172:108;;:::i;:::-;;;;:::i;:::-;;4994:12:107;652:3172:108;;;;;;4994:12:107;-1:-1:-1;652:3172:108;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;652:3172:108;;;;;;;;;;;;;;;;;11718:12:97;652:3172:108;;;;;;11718:12:97;-1:-1:-1;652:3172:108;-1:-1:-1;;;;;;;;;;;652:3172:108;;;;;;;;:::i;11486:272:97:-;;652:3172:108;11718:12:97;11452:22:71;11718:31:97;11486:272;652:3172:108;;:::i;:::-;;;;:::i;:::-;;11452:22:71;;:::i;:::-;652:3172:108;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;11718:12:97;:31;:::i;:::-;652:3172:108;;;;;;;;;:::i;:::-;;;;;;;11672:79:97;;652:3172:108;11486:272:97;:::o;1670:188:55:-;652:3172:108;;-1:-1:-1;;;1797:53:55;;;;-1:-1:-1;;;;;652:3172:108;;;1797:53:55;;;652:3172:108;;;;;;;;;;;;;;;;;1797:53:55;;;652:3172:108;;;;;;;-1:-1:-1;;;;;652:3172:108;;;;;1797:53:55;652:3172:108;;;1797:53:55;:::i;7084:141:26:-;652:3172:108;-1:-1:-1;;;;;;;;;;;652:3172:108;;;;7150:18:26;7146:73;;7084:141::o;7146:73::-;652:3172:108;;-1:-1:-1;;;7191:17:26;;;;;652:3172:108;;;;;;;;;;;;:::i;13388:2406:106:-;13510:30;13388:2406;13510:30;652:3172:108;;;13510:30:106;;;;;;:::i;:::-;652:3172:108;;-1:-1:-1;;;;;652:3172:108;;;;13555:31:106;13551:88;;13653:20;;;;652:3172:108;;;;;;;;;;13653:25:106;13649:85;;13748:29;;;652:3172:108;;13748:29:106;;652:3172:108;13748:43:106;;-1:-1:-1;;;;;652:3172:108;;;13748:43:106;;13744:943;;13388:2406;652:3172:108;;;15647:32:106;652:3172:108;14817:36:106;652:3172:108;;;14697:30:106;652:3172:108;;;;;;;;;;;;13555:17:106;652:3172:108;;-1:-1:-1;;;;;;652:3172:108;;;;;;-1:-1:-1;;;;;652:3172:108;;;;;;;;14697:30:106;13510;14747:13;;652:3172:108;;;;-1:-1:-1;;;;;;652:3172:108;-1:-1:-1;;;;;652:3172:108;;;;;;;;;14771:36:106;819:34:73;837:15;819:34;:::i;:::-;14738:22:106;652:3172:108;;-1:-1:-1;;;;652:3172:108;;;;;;-1:-1:-1;;;652:3172:108;;;;;;;;;14738:22:106;652:3172:108;;-1:-1:-1;;;;;652:3172:108;;;;;;-1:-1:-1;;;;;;652:3172:108;;;;;;;;14817:36:106;14864:42;652:3172:108;14883:23:106;;;652:3172:108;;;;;;;;;13555:17:106;652:3172:108;;;;;;;13555:17:106;652:3172:108;;14864:42:106;14917:38;652:3172:108;14934:21:106;;;652:3172:108;;;;;;;13555:17:106;652:3172:108;;;;;;;;;;;;13555:17:106;652:3172:108;;14917:38:106;14965:34;14980:19;;;652:3172:108;14965:34:106;652:3172:108;;14965:34:106;652:3172:108;-1:-1:-1;;;;;652:3172:108;;;;;;;15010:135:106;;13388:2406;-1:-1:-1;15158:36:106;;;652:3172:108;-1:-1:-1;;;;;652:3172:108;;;;15154:157:106;;13388:2406;-1:-1:-1;15324:35:106;;;652:3172:108;-1:-1:-1;;;;;652:3172:108;;;;15320:153:106;;13388:2406;-1:-1:-1;15486:34:106;;;652:3172:108;-1:-1:-1;;;;;652:3172:108;;;;15482:152:106;;13388:2406;-1:-1:-1;15647:32:106;652:3172:108;-1:-1:-1;;;;;652:3172:108;;;;;;;15643:145:106;;13388:2406;:::o;15643:145::-;15709:68;;;:::i;:::-;;13388:2406::o;15482:152::-;15550:73;;;:::i;:::-;;15482:152;;;15320:153;15389:73;;;:::i;:::-;;15320:153;;;15154:157;15224:76;;;:::i;:::-;;15154:157;;;15010:135;15073:61;;;:::i;:::-;;15010:135;;;13744:943;13811:36;;;652:3172:108;13811:50:106;;-1:-1:-1;;;;;652:3172:108;;;13811:50:106;;13807:405;;13744:943;14230:34;;;652:3172:108;14230:48:106;;-1:-1:-1;;;;;652:3172:108;;;14230:48:106;13744:943;14226:451;14302:21;;;652:3172:108;;14302:21:106;;14351:19;;;652:3172:108;14351:24:106;:74;;;14298:365;14347:150;;14298:365;;652:3172:108;15647:32:106;14298:365;14817:36;652:3172:108;;14298:365:106;;14226:451;;;;;;;13744:943;;14347:150;652:3172:108;-1:-1:-1;;;14460:14:106;;;;;14351:74;-1:-1:-1;14379:32:106;;;652:3172:108;14379:46:106;;-1:-1:-1;;;;;652:3172:108;;;14379:46:106;;14351:74;;14298:365;14525:19;;;652:3172:108;14525:24:106;;;:74;;;14298:365;14521:142;;14298:365;;652:3172:108;15647:32:106;14298:365;14817:36;652:3172:108;;14298:365:106;;;14525:74;-1:-1:-1;14553:32:106;;;652:3172:108;14553:46:106;;-1:-1:-1;;;;;652:3172:108;;;14553:46:106;;;14525:74;;13807:405;13885:23;;;652:3172:108;;13885:23:106;;13936:35;;;652:3172:108;13936:49:106;;-1:-1:-1;;;;;652:3172:108;;;13936:49:106;13807:405;13932:125;652:3172:108;-1:-1:-1;;;14020:14:106;;;;;13881:317;14085:35;;;652:3172:108;14085:49:106;;-1:-1:-1;;;;;652:3172:108;;;14085:49:106;14081:117;13807:405;14081:117;652:3172:108;-1:-1:-1;;;14165:14:106;;;;;13649:85;652:3172:108;;-1:-1:-1;;;13701:22:106;;;;;13551:88;652:3172:108;;-1:-1:-1;;;13609:19:106;;;;;6893:76:26;;;;;:::i;:::-;;;:::i;:::-;652:3172:108;;-1:-1:-1;;;;;652:3172:108;;;;-1:-1:-1;;;;;;;;;;;652:3172:108;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;11930:17:27;;;652:3172:108;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;652:3172:108;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;11930:17:27;;652:3172:108;;2600:7:27;652:3172:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1776:194:59;1829:135;;;;;;;;10695:389:71;5173:12:107;652:3172:108;10871:8:71;;;10895:20;10833:17;10895:20;10833:17;10895:20;10833:17;10895:20;:::o;10867:211::-;11930:17:27;;;652:3172:108;;;;;5173:12:107;10833:17:71;14439:109;;;652:3172:108;11014:1:71;;652:3172:108;;;;;;;11030:37:71:o;10695:389::-;4803:13:107;652:3172:108;10871:8:71;;;10895:20;10833:17;10895:20;10833:17;10895:20;10833:17;10895:20;:::o;10867:211::-;11930:17:27;;;652:3172:108;;;;;4803:13:107;10833:17:71;14439:109;;;652:3172:108;11014:1:71;;652:3172:108;;;;;;;11030:37:71:o;10695:389::-;652:3172:108;;10871:8:71;;;10895:20;;10833:17;10895:20;10833:17;10895:20;10833:17;10895:20;:::o;10867:211::-;11930:17:27;;652:3172:108;;;;;;;;10833:17:71;14439:109;;10833:17;14439:109;;;652:3172:108;11014:1:71;652:3172:108;;;;;;;11030:37:71;:::o;7738:720:55:-;;-1:-1:-1;7875:421:55;7738:720;7875:421;;;;;;;;;;;;-1:-1:-1;7875:421:55;;8310:15;;-1:-1:-1;;;;;;652:3172:108;;8328:26:55;:31;8310:68;8306:146;;7738:720;:::o;8306:146::-;652:3172:108;;-1:-1:-1;;;8401:40:55;;-1:-1:-1;;;;;652:3172:108;;;8401:40:55;;;652:3172:108;;;8401:40:55;8310:68;8377:1;8362:16;;8310:68;;1258:280:98;;;652:3172:108;;;;;;;;;;;;;;;;9478:25:68;;;;;:::i;:::-;9552;;;;;;:29;;652:3172:108;;;;;;;1258:280:98;:::o;652:3172:108:-;;;;;;;;:::o;:::-;-1:-1:-1;;;;;;;;;;;;652:3172:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;652:3172:108;;;;;;;;;-1:-1:-1;652:3172:108;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;;;;;;;;652:3172:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;652:3172:108;;;;;;;;;-1:-1:-1;652:3172:108;;;;;;;;-1:-1:-1;;;;;652:3172:108;;;;-1:-1:-1;;;;;;;;;;;652:3172:108;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;11930:17:27;;;652:3172:108;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;11930:17:27;;652:3172:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5173:12:107;652:3172:108;;-1:-1:-1;;;652:3172:108;;;;;;;;;5173:12:107;652:3172:108;;;;;;5173:12:107;-1:-1:-1;652:3172:108;;;;;;;;;;-1:-1:-1;;652:3172:108;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:108;;;;:::o;:::-;4803:13:107;652:3172:108;;-1:-1:-1;;;652:3172:108;;;;;;;;;4803:13:107;652:3172:108;;;;;;4803:13:107;-1:-1:-1;652:3172:108;;;;;;;;;;-1:-1:-1;;652:3172:108;;;;;;;-1:-1:-1;;;;;;;;;;;652:3172:108;;;;:::o;:::-;;;-1:-1:-1;;;652:3172:108;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;652:3172:108;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11657:922:71;5173:12:107;652:3172:108;11657:922:71;;;11864:7;;;;11936;11916:28;11936:7;;:::i;11916:28::-;652:3172:108;;;;;;;;;;;;12103:13:71;;;12099:89;;12251:14;;;;;12285:19;;;652:3172:108;;;;;;;;;;;;;;;;;12285:19:71;652:3172:108;;12423:25:71;;:::o;12247:163::-;652:3172:108;;12343:52:71;652:3172:108;12353:41:71;652:3172:108;;:::i;:::-;;;;;;;;12353:41:71;-1:-1:-1;;;;;652:3172:108;;12353:41:71;;;652:3172:108;12343:52:71;:::i;:::-;12247:163;;12099:89;652:3172:108;;-1:-1:-1;;;12143:30:71;;;;;11860:713;652:3172:108;12479:52:71;652:3172:108;12489:41:71;652:3172:108;;:::i;12489:41:71:-;-1:-1:-1;;;;;652:3172:108;;12489:41:71;;;652:3172:108;12343:52:71;:::i;12479:::-;11870:1;12545:17;;:::o;11657:922::-;4803:13:107;652:3172:108;11657:922:71;;;11864:7;;;;11936;11916:28;11936:7;;:::i;11916:28::-;652:3172:108;;;;;;;;;;;;12103:13:71;;;12099:89;;12251:14;;;;;12285:19;;;652:3172:108;;;;;;;;;;;;;;;;;12247:163:71;652:3172:108;;12343:52:71;652:3172:108;12353:41:71;652:3172:108;;:::i;12353:41:71:-;-1:-1:-1;;;;;652:3172:108;;12353:41:71;;;652:3172:108;12343:52:71;:::i;11860:713::-;652:3172:108;12479:52:71;652:3172:108;12489:41:71;652:3172:108;;:::i;12489:41:71:-;-1:-1:-1;;;;;652:3172:108;;12489:41:71;;;652:3172:108;12343:52:71;:::i;11657:922::-;652:3172:108;;11657:922:71;;;11864:7;;;;11936;11916:28;11936:7;;:::i;:::-;11916:28;14439:109;;;;;;14289:265;;11916:28;652:3172:108;;;;;;;;;;;;12103:13:71;;;12099:89;;12251:14;;;;;12285:19;;;;652:3172:108;;;;;;;;;;;;;;;;;12247:163:71;652:3172:108;;;12343:52:71;652:3172:108;12353:41:71;652:3172:108;;:::i;:::-;;;;;;;;12353:41:71;-1:-1:-1;;;;;652:3172:108;;12353:41:71;;;652:3172:108;12343:52:71;:::i;11860:713::-;652:3172:108;;12479:52:71;652:3172:108;12489:41:71;652:3172:108;;:::i;12489:41:71:-;-1:-1:-1;;;;;652:3172:108;;12489:41:71;;;652:3172:108;12343:52:71;:::i;18080:5181:68:-;18246:1;18241:6;;;18237:53;;18246:1;19217:14;-1:-1:-1;;;19278:16:68;;;19274:92;;18080:5181;22827:18;22717;22607;22498;22387;22278;23216:28;19383:15;19898:6;19383:15;-1:-1:-1;;;23237:6:68;19383:15;;;19379:90;;18080:5181;19493:7;19486:15;;;19482:90;;18080:5181;19596:7;19589:15;;;19585:89;;18080:5181;19698:6;19691:14;;;19687:87;;18080:5181;19798:6;19791:14;;;19787:87;;18080:5181;19891:14;;19887:61;;18080:5181;20374:1;652:3172:108;18246:1:68;652:3172:108;22284:6:68;;;;:::i;:::-;652:3172:108;;;;;22278:18:68;22393:6;;;;:::i;22387:18::-;22504:6;;;;:::i;22498:18::-;22613:6;;;;:::i;22607:18::-;22723:6;;;;:::i;22717:18::-;22833:6;;;;:::i;22827:18::-;23237:6;;;:::i;:::-;23232:11;;;652:3172:108;23216:28:68;652:3172:108;;18080:5181:68;:::o;19887:61::-;18246:1;652:3172:108;19887:61:68;;19787:87;652:3172:108;;;;;19787:87:68;;;19687;652:3172:108;;;;;19687:87:68;;;19585:89;652:3172:108;;;;;19585:89:68;;;19482:90;652:3172:108;;;;;19482:90:68;;;19379;652:3172:108;;;;;19379:90:68;;;19274:92;-1:-1:-1;;;;652:3172:108;-1:-1:-1;652:3172:108;;;;19274:92:68;;12929:433:71;;13112:10;;;;;;13344:11;;12929:433;:::o;13105:230::-;3721:5:68;;;;;652:3172:108;;3731:5:68;;;652:3172:108;;;;;;;;;4622:13:107;-1:-1:-1;14439:109:71;652:3172:108;14439:109:71;;-1:-1:-1;;;;;;;;;;;14439:109:71;652:3172:108;;;;;-1:-1:-1;13189:136:71;652:3172:108;;;13248:10:71;;13189:136;;13105:230;;;13189:136;652:3172:108;;;;;;;;;;;13189:136:71;;;12929:433;;13112:10;;;;;;13344:11;;12929:433;:::o;13105:230::-;3721:5:68;;;;;652:3172:108;;3731:5:68;;;652:3172:108;;;;;;;;;4994:12:107;-1:-1:-1;14439:109:71;652:3172:108;14439:109:71;;-1:-1:-1;;;;;;;;;;;14439:109:71;652:3172:108;;;;;-1:-1:-1;13189:136:71;652:3172:108;;;13248:10:71;;13189:136;;13105:230;;;13189:136;652:3172:108;;;;;;;;;;;13189:136:71;;;12929:433;;;13112:10;;;;;;13344:11;;;12929:433;:::o;13105:230::-;3721:5:68;;;;;;652:3172:108;;3731:5:68;;;652:3172:108;;;;;;;;;14439:109:71;-1:-1:-1;14439:109:71;652:3172:108;14439:109:71;;;-1:-1:-1;14439:109:71;;652:3172:108;;;;;-1:-1:-1;13189:136:71;652:3172:108;;;13248:10:71;;13189:136;;13105:230;;;;13189:136;652:3172:108;;;;;;;;;;;13189:136:71;;","linkReferences":{},"immutableReferences":{"60067":[{"start":2716,"length":32},{"start":3266,"length":32}],"70707":[{"start":5505,"length":32},{"start":6950,"length":32}],"70710":[{"start":7311,"length":32},{"start":8722,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","DELEGATOR_FACTORY()":"6da3e06d","DEPOSITOR_WHITELIST_ROLE()":"1b66c9e1","DEPOSIT_LIMIT_SET_ROLE()":"a21a1df9","DEPOSIT_WHITELIST_SET_ROLE()":"db388715","FACTORY()":"2dd31000","IS_DEPOSIT_LIMIT_SET_ROLE()":"1415519b","SLASHER_FACTORY()":"87df0788","activeBalanceOf(address)":"59f769a9","activeBalanceOfAt(address,uint48,bytes)":"efb559d6","activeShares()":"bfefcd7b","activeSharesAt(uint48,bytes)":"50f22068","activeSharesOf(address)":"9d66201b","activeSharesOfAt(address,uint48,bytes)":"2d73c69c","activeStake()":"bd49c35f","activeStakeAt(uint48,bytes)":"810da75d","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burner()":"27810b6e","claim(address,uint256)":"aad3ec96","claimBatch(address,uint256[])":"7c04c80a","collateral()":"d8dfeb45","currentEpoch()":"76671808","currentEpochStart()":"61a8c8c4","decimals()":"313ce567","delegator()":"ce9b7930","deposit(address,uint256)":"47e7ef24","depositLimit()":"ecf70858","depositWhitelist()":"48d3b775","epochAt(uint48)":"7953b33b","epochDuration()":"4ff0876a","epochDurationInit()":"46361671","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(uint64,address,bytes)":"57ec83cc","isDelegatorInitialized()":"50861adc","isDepositLimit()":"a1b12202","isDepositorWhitelisted(address)":"794b15b7","isInitialized()":"392e53cd","isSlasherInitialized()":"6ec1e3f8","isWithdrawalsClaimed(uint256,address)":"a5d03223","migrate(uint64,bytes)":"2abe3048","name()":"06fdde03","nextEpochStart()":"73790ab3","onSlash(uint256,uint48)":"7278e31c","owner()":"8da5cb5b","previousEpochStart()":"281f5752","redeem(address,uint256)":"1e9a6950","renounceOwnership()":"715018a6","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setDelegator(address)":"83cd9cc3","setDepositLimit(uint256)":"bdc8144b","setDepositWhitelist(bool)":"4105a7dd","setDepositorWhitelistStatus(address,bool)":"a2861466","setIsDepositLimit(bool)":"5346e34f","setSlasher(address)":"aabc2496","slashableBalanceOf(address)":"c31e8dd7","slasher()":"b1344271","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","totalStake()":"8b0e9f3f","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b","version()":"54fd4d50","withdraw(address,uint256)":"f3fef3a3","withdrawalShares(uint256)":"afba70ad","withdrawalSharesOf(uint256,address)":"a3b54172","withdrawals(uint256)":"5cc07076","withdrawalsOf(uint256,address)":"f5e7ee0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slasherFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyClaimed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DepositLimitReached\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientDeposit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientRedemption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientWithdrawal\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidClaimer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLengthEpochs\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOnBehalfOf\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRecipient\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoles\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoPreviousEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotFactory\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhitelistedDepositor\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchRedeem\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchWithdraw\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Claim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ClaimBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"name\":\"OnSlash\",\"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\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"SetDelegator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"SetDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositWhitelist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositorWhitelistStatus\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetIsDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"}],\"name\":\"SetSlasher\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DELEGATOR_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSITOR_WHITELIST_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_WHITELIST_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"activeBalanceOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"burner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"}],\"name\":\"claimBatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"depositedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositWhitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"epochAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDurationInit\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"initialVersion\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDelegatorInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDepositLimit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isDepositorWhitelisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSlasherInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isWithdrawalsClaimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"onSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"previousEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"withdrawnAssets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator_\",\"type\":\"address\"}],\"name\":\"setDelegator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"setDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositorWhitelistStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setIsDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher_\",\"type\":\"address\"}],\"name\":\"setSlasher\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"slashableBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawalShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Claim(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epoch\":\"epoch the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"ClaimBatch(address,address,uint256[],uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epochs\":\"epochs the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"Deposit(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral deposited\",\"depositor\":\"account that made the deposit\",\"onBehalfOf\":\"account the deposit was made on behalf of\",\"shares\":\"amount of the active shares minted\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(uint256,uint48,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to slash\",\"captureTimestamp\":\"time point when the stake was captured\",\"slashedAmount\":\"real amount of the collateral slashed\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetDelegator(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"delegator\":\"vault's delegator to delegate the stake to networks and operators\"}},\"SetDepositLimit(uint256)\":{\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"SetDepositWhitelist(bool)\":{\"params\":{\"status\":\"if enabled deposit whitelist\"}},\"SetDepositorWhitelistStatus(address,bool)\":{\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisted the account\"}},\"SetIsDepositLimit(bool)\":{\"params\":{\"status\":\"if enabled deposit limit\"}},\"SetSlasher(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"slasher\":\"vault's slasher to provide a slashing mechanism to networks\"}},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral withdrawn\",\"burnedShares\":\"amount of the active shares burned\",\"claimer\":\"account that needs to claim the withdrawal\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawer\":\"account that made the withdrawal\"}}},\"kind\":\"dev\",\"methods\":{\"activeBalanceOf(address)\":{\"params\":{\"account\":\"account to get the active balance for\"},\"returns\":{\"_0\":\"active balance for the account\"}},\"activeBalanceOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the active balance for\",\"hints\":\"hints for checkpoints' indexes\",\"timestamp\":\"time point to get the active balance for the account at\"},\"returns\":{\"_0\":\"active balance for the account at the timestamp\"}},\"activeShares()\":{\"returns\":{\"_0\":\"total number of active shares\"}},\"activeSharesAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total number of active shares at\"},\"returns\":{\"_0\":\"total number of active shares at the timestamp\"}},\"activeSharesOf(address)\":{\"params\":{\"account\":\"account to get the number of active shares for\"},\"returns\":{\"_0\":\"number of active shares for the account\"}},\"activeSharesOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the number of active shares for\",\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the number of active shares for the account at\"},\"returns\":{\"_0\":\"number of active shares for the account at the timestamp\"}},\"activeStake()\":{\"returns\":{\"_0\":\"total amount of active stake\"}},\"activeStakeAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total active stake at\"},\"returns\":{\"_0\":\"total amount of active stake at the timestamp\"}},\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"claim(address,uint256)\":{\"params\":{\"epoch\":\"epoch to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"claimBatch(address,uint256[])\":{\"params\":{\"epochs\":\"epochs to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"currentEpoch()\":{\"returns\":{\"_0\":\"current epoch\"}},\"currentEpochStart()\":{\"returns\":{\"_0\":\"start of the current epoch\"}},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"deposit(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to deposit\",\"onBehalfOf\":\"account the deposit is made on behalf of\"},\"returns\":{\"depositedAmount\":\"real amount of the collateral deposited\",\"mintedShares\":\"amount of the active shares minted\"}},\"epochAt(uint48)\":{\"details\":\"Reverts if the timestamp is less than the start of the epoch 0.\",\"params\":{\"timestamp\":\"time point to get the epoch at\"},\"returns\":{\"_0\":\"epoch at the timestamp\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(uint64,address,bytes)\":{\"params\":{\"data\":\"some data to use\",\"initialVersion\":\"initial version of the entity\",\"owner\":\"initial owner of the entity\"}},\"isInitialized()\":{\"returns\":{\"_0\":\"if the vault is fully initialized\"}},\"migrate(uint64,bytes)\":{\"params\":{\"data\":\"some data to use\",\"newVersion\":\"new version of the entity\"}},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nextEpochStart()\":{\"returns\":{\"_0\":\"start of the next epoch\"}},\"onSlash(uint256,uint48)\":{\"details\":\"Only the slasher can call this function.\",\"params\":{\"amount\":\"amount to slash\",\"captureTimestamp\":\"time point when the stake was captured\"},\"returns\":{\"slashedAmount\":\"real amount of the collateral slashed\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"previousEpochStart()\":{\"details\":\"Reverts if the current epoch is 0.\",\"returns\":{\"_0\":\"start of the previous epoch\"}},\"redeem(address,uint256)\":{\"params\":{\"claimer\":\"account that needs to claim the withdrawal\",\"shares\":\"amount of the active shares to redeem\"},\"returns\":{\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawnAssets\":\"amount of the collateral withdrawn\"}},\"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.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setDepositLimit(uint256)\":{\"details\":\"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"setDepositWhitelist(bool)\":{\"details\":\"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit whitelist\"}},\"setDepositorWhitelistStatus(address,bool)\":{\"details\":\"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.\",\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisting the account\"}},\"setIsDepositLimit(bool)\":{\"details\":\"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit limit\"}},\"slashableBalanceOf(address)\":{\"params\":{\"account\":\"account to get the slashable collateral for\"},\"returns\":{\"_0\":\"total amount of the account's slashable collateral\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalStake()\":{\"returns\":{\"_0\":\"total amount of the slashable collateral\"}},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"version()\":{\"details\":\"Starts from 1.\",\"returns\":{\"_0\":\"version of the entity\"}},\"withdraw(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to withdraw\",\"claimer\":\"account that needs to claim the withdrawal\"},\"returns\":{\"burnedShares\":\"amount of the active shares burned\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\"}},\"withdrawalsOf(uint256,address)\":{\"params\":{\"account\":\"account to get the withdrawals for\",\"epoch\":\"epoch to get the withdrawals for the account at\"},\"returns\":{\"_0\":\"withdrawals for the account at the epoch\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Claim(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a claim is made.\"},\"ClaimBatch(address,address,uint256[],uint256)\":{\"notice\":\"Emitted when a batch claim is made.\"},\"Deposit(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a deposit is made.\"},\"OnSlash(uint256,uint48,uint256)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetDelegator(address)\":{\"notice\":\"Emitted when a delegator is set.\"},\"SetDepositLimit(uint256)\":{\"notice\":\"Emitted when a deposit limit is set.\"},\"SetDepositWhitelist(bool)\":{\"notice\":\"Emitted when a deposit whitelist status is enabled/disabled.\"},\"SetDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Emitted when a depositor whitelist status is set.\"},\"SetIsDepositLimit(bool)\":{\"notice\":\"Emitted when a deposit limit status is enabled/disabled.\"},\"SetSlasher(address)\":{\"notice\":\"Emitted when a slasher is set.\"},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"notice\":\"Emitted when a withdrawal is made.\"}},\"kind\":\"user\",\"methods\":{\"DELEGATOR_FACTORY()\":{\"notice\":\"Get the delegator factory's address.\"},\"DEPOSITOR_WHITELIST_ROLE()\":{\"notice\":\"Get a depositor whitelist status setter's role.\"},\"DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit setter's role.\"},\"DEPOSIT_WHITELIST_SET_ROLE()\":{\"notice\":\"Get a deposit whitelist enabler/disabler's role.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"IS_DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit enabler/disabler's role.\"},\"SLASHER_FACTORY()\":{\"notice\":\"Get the slasher factory's address.\"},\"activeBalanceOf(address)\":{\"notice\":\"Get an active balance for a particular account.\"},\"activeBalanceOfAt(address,uint48,bytes)\":{\"notice\":\"Get an active balance for a particular account at a given timestamp using hints.\"},\"activeShares()\":{\"notice\":\"Get a total number of active shares in the vault.\"},\"activeSharesAt(uint48,bytes)\":{\"notice\":\"Get a total number of active shares in the vault at a given timestamp using a hint.\"},\"activeSharesOf(address)\":{\"notice\":\"Get a number of active shares for a particular account.\"},\"activeSharesOfAt(address,uint48,bytes)\":{\"notice\":\"Get a total number of active shares for a particular account at a given timestamp using a hint.\"},\"activeStake()\":{\"notice\":\"Get a total amount of active stake in the vault.\"},\"activeStakeAt(uint48,bytes)\":{\"notice\":\"Get a total amount of active stake in the vault at a given timestamp using a hint.\"},\"burner()\":{\"notice\":\"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract).\"},\"claim(address,uint256)\":{\"notice\":\"Claim collateral from the vault.\"},\"claimBatch(address,uint256[])\":{\"notice\":\"Claim collateral from the vault for multiple epochs.\"},\"collateral()\":{\"notice\":\"Get a vault collateral.\"},\"currentEpoch()\":{\"notice\":\"Get a current vault epoch.\"},\"currentEpochStart()\":{\"notice\":\"Get a start of the current vault epoch.\"},\"delegator()\":{\"notice\":\"Get a delegator (it delegates the vault's stake to networks and operators).\"},\"deposit(address,uint256)\":{\"notice\":\"Deposit collateral into the vault.\"},\"depositLimit()\":{\"notice\":\"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously).\"},\"depositWhitelist()\":{\"notice\":\"Get if the deposit whitelist is enabled.\"},\"epochAt(uint48)\":{\"notice\":\"Get an epoch at a given timestamp.\"},\"epochDuration()\":{\"notice\":\"Get a duration of the vault epoch.\"},\"epochDurationInit()\":{\"notice\":\"Get a time point of the epoch duration set.\"},\"initialize(uint64,address,bytes)\":{\"notice\":\"Initialize this entity contract by using a given data and setting a particular version and owner.\"},\"isDelegatorInitialized()\":{\"notice\":\"Get if the delegator is initialized.\"},\"isDepositLimit()\":{\"notice\":\"Get if the deposit limit is set.\"},\"isDepositorWhitelisted(address)\":{\"notice\":\"Get if a given account is whitelisted as a depositor.\"},\"isInitialized()\":{\"notice\":\"Check if the vault is fully initialized (a delegator and a slasher are set).\"},\"isSlasherInitialized()\":{\"notice\":\"Get if the slasher is initialized.\"},\"isWithdrawalsClaimed(uint256,address)\":{\"notice\":\"Get if the withdrawals are claimed for a particular account at a given epoch.\"},\"migrate(uint64,bytes)\":{\"notice\":\"Migrate this entity to a particular newer version using a given data.\"},\"nextEpochStart()\":{\"notice\":\"Get a start of the next vault epoch.\"},\"onSlash(uint256,uint48)\":{\"notice\":\"Slash callback for burning collateral.\"},\"previousEpochStart()\":{\"notice\":\"Get a start of the previous vault epoch.\"},\"redeem(address,uint256)\":{\"notice\":\"Redeem collateral from the vault (it will be claimable after the next epoch).\"},\"setDepositLimit(uint256)\":{\"notice\":\"Set a deposit limit.\"},\"setDepositWhitelist(bool)\":{\"notice\":\"Enable/disable deposit whitelist.\"},\"setDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Set a depositor whitelist status.\"},\"setIsDepositLimit(bool)\":{\"notice\":\"Enable/disable deposit limit.\"},\"slashableBalanceOf(address)\":{\"notice\":\"Get a total amount of the collateral that can be slashed for a given account.\"},\"slasher()\":{\"notice\":\"Get a slasher (it provides networks a slashing mechanism).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"totalStake()\":{\"notice\":\"Get a total amount of the collateral that can be slashed.\"},\"version()\":{\"notice\":\"Get the entity's version.\"},\"withdraw(address,uint256)\":{\"notice\":\"Withdraw collateral from the vault (it will be claimable after the next epoch).\"},\"withdrawalShares(uint256)\":{\"notice\":\"Get a total number of withdrawal shares at a given epoch.\"},\"withdrawalSharesOf(uint256,address)\":{\"notice\":\"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed).\"},\"withdrawals(uint256)\":{\"notice\":\"Get a total amount of the withdrawals at a given epoch.\"},\"withdrawalsOf(uint256,address)\":{\"notice\":\"Get withdrawals for a particular account at a given epoch (zero if claimed).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/vault/VaultTokenized.sol\":\"VaultTokenized\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol\":{\"keccak256\":\"0xbb96dc9c468170c3224126e953de917e06332ec5909a3d85e6e5bb0df10c5139\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d14e6486e127e7e31c2ffccfc212c7ebaaecf8fb05677575128b449ee113def2\",\"dweb:/ipfs/QmabvyfStwBcum8mGfkmxcTV45rjyHmzHGCxfxyhmu48Yx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf\",\"dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44\",\"dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x303ad40a3de8fa808cc30a6fbd5998633f6a89b982e6db1fa981e0566ab445e7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fa8fb92995ead02798e013190b87b84b44cc68668262f045c9b0b4783940e2bf\",\"dweb:/ipfs/QmV1uKGVLKwWisc714R8fCt71gXUQJpaKvdc6LQ8WtvMpL\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x7ee6dbf060c45d6eba95315f4ac0b3b467dd9c4999b84c31d6f66d4d8b53a116\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://301948b8ea522db292aa2722ba42def3911dae95f0b376f7023c3fef470f8676\",\"dweb:/ipfs/QmSDbP2HdzhDAzstr8Zz5isEAcSkma8ABc5UwPsoazaumZ\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/contracts/vault/VaultTokenized.sol\":{\"keccak256\":\"0xa9475a46a3e32b35e48bc37fdaf08e1a586fb7c9667ac5e014b716a08873c46d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://0a292a4f35bc43ce7174b36e2d016bc44d6737e94b41e48cb5dd1bb1e4821e48\",\"dweb:/ipfs/QmduHZe2REPnygiWvQRV82yD4tYHdwX33FkYRFm1UZoXBA\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]},\"src/interfaces/vault/IVaultTokenized.sol\":{\"keccak256\":\"0xb723560b49c30b38130634388a0550c9e07596f92a58edbfa2415e690024e0c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc9dde973a0bbf0adbc305462a796fa3b2e5be9daa1984e4f3e4f48e3c254f39\",\"dweb:/ipfs/QmQydZsr7ESw7ZSe9mqaxZ3dycvru8ZFVwrL9pmVnpyd7c\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"address","name":"slasherFactory","type":"address"},{"internalType":"address","name":"vaultFactory","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadyClaimed"},{"inputs":[],"type":"error","name":"AlreadyInitialized"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DelegatorAlreadyInitialized"},{"inputs":[],"type":"error","name":"DepositLimitReached"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[],"type":"error","name":"InsufficientClaim"},{"inputs":[],"type":"error","name":"InsufficientDeposit"},{"inputs":[],"type":"error","name":"InsufficientRedemption"},{"inputs":[],"type":"error","name":"InsufficientWithdrawal"},{"inputs":[],"type":"error","name":"InvalidAccount"},{"inputs":[],"type":"error","name":"InvalidCaptureEpoch"},{"inputs":[],"type":"error","name":"InvalidClaimer"},{"inputs":[],"type":"error","name":"InvalidCollateral"},{"inputs":[],"type":"error","name":"InvalidDelegator"},{"inputs":[],"type":"error","name":"InvalidEpoch"},{"inputs":[],"type":"error","name":"InvalidEpochDuration"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidLengthEpochs"},{"inputs":[],"type":"error","name":"InvalidOnBehalfOf"},{"inputs":[],"type":"error","name":"InvalidRecipient"},{"inputs":[],"type":"error","name":"InvalidSlasher"},{"inputs":[],"type":"error","name":"InvalidTimestamp"},{"inputs":[],"type":"error","name":"MissingRoles"},{"inputs":[],"type":"error","name":"NoPreviousEpoch"},{"inputs":[],"type":"error","name":"NotDelegator"},{"inputs":[],"type":"error","name":"NotFactory"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotWhitelistedDepositor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"SlasherAlreadyInitialized"},{"inputs":[],"type":"error","name":"TooMuchRedeem"},{"inputs":[],"type":"error","name":"TooMuchWithdraw"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"epoch","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Claim","anonymous":false},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256[]","name":"epochs","type":"uint256[]","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"ClaimBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"depositor","type":"address","indexed":true},{"internalType":"address","name":"onBehalfOf","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false}],"type":"event","name":"OnSlash","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":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true}],"type":"event","name":"SetDelegator","anonymous":false},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256","indexed":false}],"type":"event","name":"SetDepositLimit","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositWhitelist","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositorWhitelistStatus","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetIsDepositLimit","anonymous":false},{"inputs":[{"internalType":"address","name":"slasher","type":"address","indexed":true}],"type":"event","name":"SetSlasher","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"withdrawer","type":"address","indexed":true},{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"burnedShares","type":"uint256","indexed":false},{"internalType":"uint256","name":"mintedShares","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DELEGATOR_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSITOR_WHITELIST_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeBalanceOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeSharesOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeStakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"burner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256[]","name":"epochs","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"claimBatch","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"delegator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"onBehalfOf","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"depositedAmount","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"epochAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDurationInit","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"initialVersion","type":"uint64"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isDelegatorInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isDepositLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isDepositorWhitelisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isSlasherInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isWithdrawalsClaimed","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"newVersion","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"migrate"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nextEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"onSlash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"previousEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"withdrawnAssets","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"delegator_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegator"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDepositLimit"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositWhitelist"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositorWhitelistStatus"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setIsDepositLimit"},{"inputs":[{"internalType":"address","name":"slasher_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSlasher"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"slashableBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"slasher","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"burnedShares","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawalShares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalSharesOf","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawals","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"activeBalanceOf(address)":{"params":{"account":"account to get the active balance for"},"returns":{"_0":"active balance for the account"}},"activeBalanceOfAt(address,uint48,bytes)":{"params":{"account":"account to get the active balance for","hints":"hints for checkpoints' indexes","timestamp":"time point to get the active balance for the account at"},"returns":{"_0":"active balance for the account at the timestamp"}},"activeShares()":{"returns":{"_0":"total number of active shares"}},"activeSharesAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total number of active shares at"},"returns":{"_0":"total number of active shares at the timestamp"}},"activeSharesOf(address)":{"params":{"account":"account to get the number of active shares for"},"returns":{"_0":"number of active shares for the account"}},"activeSharesOfAt(address,uint48,bytes)":{"params":{"account":"account to get the number of active shares for","hint":"hint for the checkpoint index","timestamp":"time point to get the number of active shares for the account at"},"returns":{"_0":"number of active shares for the account at the timestamp"}},"activeStake()":{"returns":{"_0":"total amount of active stake"}},"activeStakeAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total active stake at"},"returns":{"_0":"total amount of active stake at the timestamp"}},"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"claim(address,uint256)":{"params":{"epoch":"epoch to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"claimBatch(address,uint256[])":{"params":{"epochs":"epochs to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"currentEpoch()":{"returns":{"_0":"current epoch"}},"currentEpochStart()":{"returns":{"_0":"start of the current epoch"}},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"deposit(address,uint256)":{"params":{"amount":"amount of the collateral to deposit","onBehalfOf":"account the deposit is made on behalf of"},"returns":{"depositedAmount":"real amount of the collateral deposited","mintedShares":"amount of the active shares minted"}},"epochAt(uint48)":{"details":"Reverts if the timestamp is less than the start of the epoch 0.","params":{"timestamp":"time point to get the epoch at"},"returns":{"_0":"epoch at the timestamp"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(uint64,address,bytes)":{"params":{"data":"some data to use","initialVersion":"initial version of the entity","owner":"initial owner of the entity"}},"isInitialized()":{"returns":{"_0":"if the vault is fully initialized"}},"migrate(uint64,bytes)":{"params":{"data":"some data to use","newVersion":"new version of the entity"}},"name()":{"details":"Returns the name of the token."},"nextEpochStart()":{"returns":{"_0":"start of the next epoch"}},"onSlash(uint256,uint48)":{"details":"Only the slasher can call this function.","params":{"amount":"amount to slash","captureTimestamp":"time point when the stake was captured"},"returns":{"slashedAmount":"real amount of the collateral slashed"}},"owner()":{"details":"Returns the address of the current owner."},"previousEpochStart()":{"details":"Reverts if the current epoch is 0.","returns":{"_0":"start of the previous epoch"}},"redeem(address,uint256)":{"params":{"claimer":"account that needs to claim the withdrawal","shares":"amount of the active shares to redeem"},"returns":{"mintedShares":"amount of the epoch withdrawal shares minted","withdrawnAssets":"amount of the collateral withdrawn"}},"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."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setDepositLimit(uint256)":{"details":"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"limit":"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)"}},"setDepositWhitelist(bool)":{"details":"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit whitelist"}},"setDepositorWhitelistStatus(address,bool)":{"details":"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.","params":{"account":"account for which the whitelist status is set","status":"if whitelisting the account"}},"setIsDepositLimit(bool)":{"details":"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit limit"}},"slashableBalanceOf(address)":{"params":{"account":"account to get the slashable collateral for"},"returns":{"_0":"total amount of the account's slashable collateral"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalStake()":{"returns":{"_0":"total amount of the slashable collateral"}},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"version()":{"details":"Starts from 1.","returns":{"_0":"version of the entity"}},"withdraw(address,uint256)":{"params":{"amount":"amount of the collateral to withdraw","claimer":"account that needs to claim the withdrawal"},"returns":{"burnedShares":"amount of the active shares burned","mintedShares":"amount of the epoch withdrawal shares minted"}},"withdrawalsOf(uint256,address)":{"params":{"account":"account to get the withdrawals for","epoch":"epoch to get the withdrawals for the account at"},"returns":{"_0":"withdrawals for the account at the epoch"}}},"version":1},"userdoc":{"kind":"user","methods":{"DELEGATOR_FACTORY()":{"notice":"Get the delegator factory's address."},"DEPOSITOR_WHITELIST_ROLE()":{"notice":"Get a depositor whitelist status setter's role."},"DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit setter's role."},"DEPOSIT_WHITELIST_SET_ROLE()":{"notice":"Get a deposit whitelist enabler/disabler's role."},"FACTORY()":{"notice":"Get the factory's address."},"IS_DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit enabler/disabler's role."},"SLASHER_FACTORY()":{"notice":"Get the slasher factory's address."},"activeBalanceOf(address)":{"notice":"Get an active balance for a particular account."},"activeBalanceOfAt(address,uint48,bytes)":{"notice":"Get an active balance for a particular account at a given timestamp using hints."},"activeShares()":{"notice":"Get a total number of active shares in the vault."},"activeSharesAt(uint48,bytes)":{"notice":"Get a total number of active shares in the vault at a given timestamp using a hint."},"activeSharesOf(address)":{"notice":"Get a number of active shares for a particular account."},"activeSharesOfAt(address,uint48,bytes)":{"notice":"Get a total number of active shares for a particular account at a given timestamp using a hint."},"activeStake()":{"notice":"Get a total amount of active stake in the vault."},"activeStakeAt(uint48,bytes)":{"notice":"Get a total amount of active stake in the vault at a given timestamp using a hint."},"burner()":{"notice":"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract)."},"claim(address,uint256)":{"notice":"Claim collateral from the vault."},"claimBatch(address,uint256[])":{"notice":"Claim collateral from the vault for multiple epochs."},"collateral()":{"notice":"Get a vault collateral."},"currentEpoch()":{"notice":"Get a current vault epoch."},"currentEpochStart()":{"notice":"Get a start of the current vault epoch."},"delegator()":{"notice":"Get a delegator (it delegates the vault's stake to networks and operators)."},"deposit(address,uint256)":{"notice":"Deposit collateral into the vault."},"depositLimit()":{"notice":"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously)."},"depositWhitelist()":{"notice":"Get if the deposit whitelist is enabled."},"epochAt(uint48)":{"notice":"Get an epoch at a given timestamp."},"epochDuration()":{"notice":"Get a duration of the vault epoch."},"epochDurationInit()":{"notice":"Get a time point of the epoch duration set."},"initialize(uint64,address,bytes)":{"notice":"Initialize this entity contract by using a given data and setting a particular version and owner."},"isDelegatorInitialized()":{"notice":"Get if the delegator is initialized."},"isDepositLimit()":{"notice":"Get if the deposit limit is set."},"isDepositorWhitelisted(address)":{"notice":"Get if a given account is whitelisted as a depositor."},"isInitialized()":{"notice":"Check if the vault is fully initialized (a delegator and a slasher are set)."},"isSlasherInitialized()":{"notice":"Get if the slasher is initialized."},"isWithdrawalsClaimed(uint256,address)":{"notice":"Get if the withdrawals are claimed for a particular account at a given epoch."},"migrate(uint64,bytes)":{"notice":"Migrate this entity to a particular newer version using a given data."},"nextEpochStart()":{"notice":"Get a start of the next vault epoch."},"onSlash(uint256,uint48)":{"notice":"Slash callback for burning collateral."},"previousEpochStart()":{"notice":"Get a start of the previous vault epoch."},"redeem(address,uint256)":{"notice":"Redeem collateral from the vault (it will be claimable after the next epoch)."},"setDepositLimit(uint256)":{"notice":"Set a deposit limit."},"setDepositWhitelist(bool)":{"notice":"Enable/disable deposit whitelist."},"setDepositorWhitelistStatus(address,bool)":{"notice":"Set a depositor whitelist status."},"setIsDepositLimit(bool)":{"notice":"Enable/disable deposit limit."},"slashableBalanceOf(address)":{"notice":"Get a total amount of the collateral that can be slashed for a given account."},"slasher()":{"notice":"Get a slasher (it provides networks a slashing mechanism)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"totalStake()":{"notice":"Get a total amount of the collateral that can be slashed."},"version()":{"notice":"Get the entity's version."},"withdraw(address,uint256)":{"notice":"Withdraw collateral from the vault (it will be claimable after the next epoch)."},"withdrawalShares(uint256)":{"notice":"Get a total number of withdrawal shares at a given epoch."},"withdrawalSharesOf(uint256,address)":{"notice":"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed)."},"withdrawals(uint256)":{"notice":"Get a total amount of the withdrawals at a given epoch."},"withdrawalsOf(uint256,address)":{"notice":"Get withdrawals for a particular account at a given epoch (zero if claimed)."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/vault/VaultTokenized.sol":"VaultTokenized"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol":{"keccak256":"0xbb96dc9c468170c3224126e953de917e06332ec5909a3d85e6e5bb0df10c5139","urls":["bzz-raw://d14e6486e127e7e31c2ffccfc212c7ebaaecf8fb05677575128b449ee113def2","dweb:/ipfs/QmabvyfStwBcum8mGfkmxcTV45rjyHmzHGCxfxyhmu48Yx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866","urls":["bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf","dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab","urls":["bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89","dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606","urls":["bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1","dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0x66364cd3247ea71cdb58f080f5d5ed6732433a8001413139661841535494692f","urls":["bzz-raw://0f87914c6645b58eaf75f00a156037a7da91129f3a56aec44aebfc715b19ea44","dweb:/ipfs/QmNX7NLSMXyWuogvf8wfCwjUGwLhLBZrGktWPSdoHtERGp"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x303ad40a3de8fa808cc30a6fbd5998633f6a89b982e6db1fa981e0566ab445e7","urls":["bzz-raw://fa8fb92995ead02798e013190b87b84b44cc68668262f045c9b0b4783940e2bf","dweb:/ipfs/QmV1uKGVLKwWisc714R8fCt71gXUQJpaKvdc6LQ8WtvMpL"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/vault/Vault.sol":{"keccak256":"0x7ee6dbf060c45d6eba95315f4ac0b3b467dd9c4999b84c31d6f66d4d8b53a116","urls":["bzz-raw://301948b8ea522db292aa2722ba42def3911dae95f0b376f7023c3fef470f8676","dweb:/ipfs/QmSDbP2HdzhDAzstr8Zz5isEAcSkma8ABc5UwPsoazaumZ"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/contracts/vault/VaultTokenized.sol":{"keccak256":"0xa9475a46a3e32b35e48bc37fdaf08e1a586fb7c9667ac5e014b716a08873c46d","urls":["bzz-raw://0a292a4f35bc43ce7174b36e2d016bc44d6737e94b41e48cb5dd1bb1e4821e48","dweb:/ipfs/QmduHZe2REPnygiWvQRV82yD4tYHdwX33FkYRFm1UZoXBA"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"},"src/interfaces/vault/IVaultTokenized.sol":{"keccak256":"0xb723560b49c30b38130634388a0550c9e07596f92a58edbfa2415e690024e0c4","urls":["bzz-raw://dc9dde973a0bbf0adbc305462a796fa3b2e5be9daa1984e4f3e4f48e3c254f39","dweb:/ipfs/QmQydZsr7ESw7ZSe9mqaxZ3dycvru8ZFVwrL9pmVnpyd7c"],"license":"MIT"}},"version":1},"id":108} \ No newline at end of file diff --git a/src/contracts/common/MigratableEntity.sol b/src/contracts/common/MigratableEntity.sol index c2cb23ac..092fabe0 100644 --- a/src/contracts/common/MigratableEntity.sol +++ b/src/contracts/common/MigratableEntity.sol @@ -79,7 +79,7 @@ abstract contract MigratableEntity is function _initialize(uint64, /* initialVersion */ address, /* owner */ bytes memory /* data */ ) internal virtual {} - function _migrate(uint64, /* oldVersion */ uint64, /* newVersion */ bytes calldata /* data */ ) internal virtual {} + function _migrate(uint64, /* oldVersion */ uint64, /* newVersion */ bytes memory /* data */ ) internal virtual {} uint256[10] private __gap; } diff --git a/src/contracts/vault/Vault.sol b/src/contracts/vault/Vault.sol index c3c9de1b..8698af52 100644 --- a/src/contracts/vault/Vault.sol +++ b/src/contracts/vault/Vault.sol @@ -479,7 +479,7 @@ contract Vault is VaultStorage, MigratableEntity, AccessControlUpgradeable, IVau } } - function _migrate(uint64, /* oldVersion */ uint64, /* newVersion */ bytes calldata /* data */ ) internal override { + function _migrate(uint64, /* oldVersion */ uint64, /* newVersion */ bytes memory /* data */ ) internal override { revert(); } } diff --git a/src/contracts/vault/v1.1/Vault.sol b/src/contracts/vault/v1.1/Vault.sol index 99fcf85c..8288076a 100644 --- a/src/contracts/vault/v1.1/Vault.sol +++ b/src/contracts/vault/v1.1/Vault.sol @@ -41,6 +41,33 @@ contract Vault is VaultStorage, MigratableEntity, AccessControlUpgradeable, Prox return IMPLEMENTATION; } + function _processMigrateParams( + IVault.MigrateParams memory params + ) internal { + if (params.epochDurationSetEpochsDelay < 3) { + revert IVault.InvalidEpochDurationSetEpochsDelay(); + } + + if (params.flashFeeReceiver == address(0) && params.flashFeeRate != 0) { + revert IVault.InvalidFlashParams(); + } + + epochDurationSetEpochsDelay = params.epochDurationSetEpochsDelay; + + flashFeeRate = params.flashFeeRate; + flashFeeReceiver = params.flashFeeReceiver; + + if (params.epochDurationSetRoleHolder != address(0)) { + _grantRole(EPOCH_DURATION_SET_ROLE, params.epochDurationSetRoleHolder); + } + if (params.flashFeeRateSetRoleHolder != address(0)) { + _grantRole(FLASH_FEE_RATE_SET_ROLE, params.flashFeeRateSetRoleHolder); + } + if (params.flashFeeReceiverSetRoleHolder != address(0)) { + _grantRole(FLASH_FEE_RECEIVER_SET_ROLE, params.flashFeeReceiverSetRoleHolder); + } + } + function _initialize(uint64, address, bytes memory data) internal virtual override { (IVault.InitParams memory params) = abi.decode(data, (IVault.InitParams)); @@ -90,13 +117,6 @@ contract Vault is VaultStorage, MigratableEntity, AccessControlUpgradeable, Prox isDepositorWhitelisted[params.depositorsWhitelisted[i]] = true; } - if (params.epochDurationSetEpochsDelay < 3) { - revert IVault.InvalidEpochDurationSetEpochsDelay(); - } - - if (params.flashFeeReceiver == address(0) && params.flashFeeRate != 0) { - revert IVault.InvalidFlashParams(); - } if (params.defaultAdminRoleHolder == address(0)) { if (params.flashFeeReceiver == address(0)) { if (params.flashFeeRateSetRoleHolder == address(0)) { @@ -111,22 +131,29 @@ contract Vault is VaultStorage, MigratableEntity, AccessControlUpgradeable, Prox } } + _processMigrateParams( + IVault.MigrateParams({ + epochDurationSetEpochsDelay: params.epochDurationSetEpochsDelay, + flashFeeRate: params.flashFeeRate, + flashFeeReceiver: params.flashFeeReceiver, + epochDurationSetRoleHolder: params.epochDurationSetRoleHolder, + flashFeeRateSetRoleHolder: params.flashFeeRateSetRoleHolder, + flashFeeReceiverSetRoleHolder: params.flashFeeReceiverSetRoleHolder + }) + ); + collateral = params.collateral; burner = params.burner; epochDurationInit = Time.timestamp(); epochDuration = params.epochDuration; - epochDurationSetEpochsDelay = params.epochDurationSetEpochsDelay; depositWhitelist = params.depositWhitelist; isDepositLimit = params.isDepositLimit; depositLimit = params.depositLimit; - flashFeeRate = params.flashFeeRate; - flashFeeReceiver = params.flashFeeReceiver; - if (params.defaultAdminRoleHolder != address(0)) { _grantRole(DEFAULT_ADMIN_ROLE, params.defaultAdminRoleHolder); } @@ -142,22 +169,11 @@ contract Vault is VaultStorage, MigratableEntity, AccessControlUpgradeable, Prox if (params.depositLimitSetRoleHolder != address(0)) { _grantRole(DEPOSIT_LIMIT_SET_ROLE, params.depositLimitSetRoleHolder); } - if (params.epochDurationSetRoleHolder != address(0)) { - _grantRole(EPOCH_DURATION_SET_ROLE, params.epochDurationSetRoleHolder); - } - if (params.flashFeeRateSetRoleHolder != address(0)) { - _grantRole(FLASH_FEE_RATE_SET_ROLE, params.flashFeeRateSetRoleHolder); - } - if (params.flashFeeReceiverSetRoleHolder != address(0)) { - _grantRole(FLASH_FEE_RECEIVER_SET_ROLE, params.flashFeeReceiverSetRoleHolder); - } } - function _migrate( - uint64, /* oldVersion */ - uint64, /* newVersion */ - bytes calldata /* data */ - ) internal virtual override { - revert(); + function _migrate(uint64, /* oldVersion */ uint64, /* newVersion */ bytes memory data) internal virtual override { + (IVault.MigrateParams memory params) = abi.decode(data, (IVault.MigrateParams)); + + _processMigrateParams(params); } } diff --git a/src/contracts/vault/v1.1/VaultTokenized.sol b/src/contracts/vault/v1.1/VaultTokenized.sol index 6b7905bf..18767c41 100644 --- a/src/contracts/vault/v1.1/VaultTokenized.sol +++ b/src/contracts/vault/v1.1/VaultTokenized.sol @@ -4,6 +4,7 @@ pragma solidity 0.8.25; import {Vault} from "./Vault.sol"; import {VaultTokenizedImplementation} from "./VaultTokenizedImplementation.sol"; +import {IVault} from "../../../interfaces/vault/v1.1/IVault.sol"; import {IVaultTokenized} from "../../../interfaces/vault/v1.1/IVaultTokenized.sol"; import {Address} from "@openzeppelin/contracts/utils/Address.sol"; @@ -21,25 +22,24 @@ contract VaultTokenized is Vault { function _initialize(uint64 initialVersion, address owner_, bytes memory data) internal virtual override { (IVaultTokenized.InitParamsTokenized memory params) = abi.decode(data, (IVaultTokenized.InitParamsTokenized)); - super._initialize(initialVersion, owner_, abi.encode(params.baseParams)); + super._initialize(initialVersion, owner_, params.baseParams); _implementation().functionDelegateCall( abi.encodeCall(VaultTokenizedImplementation._VaultTokenized_init, (params.name, params.symbol)) ); } - function _migrate(uint64 oldVersion, uint64, /* newVersion */ bytes calldata data) internal virtual override { + function _migrate(uint64 oldVersion, uint64 newVersion, bytes memory data) internal virtual override { if (oldVersion == 1) { (IVaultTokenized.MigrateParamsTokenized memory params) = abi.decode(data, (IVaultTokenized.MigrateParamsTokenized)); + super._migrate(oldVersion, newVersion, params.baseParams); _implementation().functionDelegateCall( abi.encodeCall(VaultTokenizedImplementation._VaultTokenized_init, (params.name, params.symbol)) ); } else { // oldVersion == 2 - if (data.length > 0) { - revert IVaultTokenized.InvalidData(); - } + super._migrate(oldVersion, newVersion, data); } } } diff --git a/src/contracts/vault/v1.1/VaultVotes.sol b/src/contracts/vault/v1.1/VaultVotes.sol index 6e669173..993c5bab 100644 --- a/src/contracts/vault/v1.1/VaultVotes.sol +++ b/src/contracts/vault/v1.1/VaultVotes.sol @@ -24,13 +24,13 @@ contract VaultVotes is VaultTokenized { _implementation().functionDelegateCall(abi.encodeCall(VaultVotesImplementation._VaultVotes_init, ())); } - function _migrate(uint64 oldVersion, uint64, /* newVersion */ bytes calldata data) internal virtual override { + function _migrate(uint64 oldVersion, uint64, /* newVersion */ bytes memory data) internal virtual override { if (oldVersion != 3) { revert IVaultVotes.ImproperMigration(); } if (data.length > 0) { - revert IVaultTokenized.InvalidData(); + revert IVaultVotes.InvalidData(); } _implementation().functionDelegateCall(abi.encodeCall(VaultVotesImplementation._VaultVotes_init, ())); diff --git a/src/contracts/vault/v1.1/VaultVotesImplementation.sol b/src/contracts/vault/v1.1/VaultVotesImplementation.sol index f2599c3e..02fbadd8 100644 --- a/src/contracts/vault/v1.1/VaultVotesImplementation.sol +++ b/src/contracts/vault/v1.1/VaultVotesImplementation.sol @@ -96,17 +96,15 @@ contract VaultVotesImplementation is VaultStorage, VotesUpgradeable, Proxy, IVau } function transfer(address to, uint256 value) external returns (bool result) { - result = abi.decode( - BASE_IMPLEMENTATION.functionDelegateCall(abi.encodeCall(IERC20.transfer, (to, value))), (bool) - ); + result = + abi.decode(BASE_IMPLEMENTATION.functionDelegateCall(abi.encodeCall(IERC20.transfer, (to, value))), (bool)); _transferVotingUnits(msg.sender, to, value); } function transferFrom(address from, address to, uint256 value) external returns (bool result) { result = abi.decode( - BASE_IMPLEMENTATION.functionDelegateCall(abi.encodeCall(IERC20.transferFrom, (from, to, value))), - (bool) + BASE_IMPLEMENTATION.functionDelegateCall(abi.encodeCall(IERC20.transferFrom, (from, to, value))), (bool) ); _transferVotingUnits(from, to, value); diff --git a/src/interfaces/vault/v1.1/IVault.sol b/src/interfaces/vault/v1.1/IVault.sol index 5721ac85..84cc1a3e 100644 --- a/src/interfaces/vault/v1.1/IVault.sol +++ b/src/interfaces/vault/v1.1/IVault.sol @@ -81,6 +81,15 @@ interface IVault is IVaultStorage, IAccessControl, IERC165, IERC3156FlashLender address flashFeeReceiverSetRoleHolder; } + struct MigrateParams { + uint256 epochDurationSetEpochsDelay; + uint256 flashFeeRate; + address flashFeeReceiver; + address epochDurationSetRoleHolder; + address flashFeeRateSetRoleHolder; + address flashFeeReceiverSetRoleHolder; + } + /** * @notice Hints for an active balance. * @param activeSharesOfHint hint for the active shares of checkpoint diff --git a/src/interfaces/vault/v1.1/IVaultTokenized.sol b/src/interfaces/vault/v1.1/IVaultTokenized.sol index 74a66c2b..923e523b 100644 --- a/src/interfaces/vault/v1.1/IVaultTokenized.sol +++ b/src/interfaces/vault/v1.1/IVaultTokenized.sol @@ -8,8 +8,6 @@ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IER import {IERC20Errors} from "@openzeppelin/contracts/interfaces/draft-IERC6093.sol"; interface IVaultTokenized is IERC20, IERC20Metadata, IERC20Errors { - error InvalidData(); - /** * @notice Initial parameters needed for a tokenized vault deployment. * @param baseParams initial parameters needed for a vault deployment (InitParams) @@ -17,7 +15,7 @@ interface IVaultTokenized is IERC20, IERC20Metadata, IERC20Errors { * @param symbol symbol for the ERC20 tokenized vault */ struct InitParamsTokenized { - IVault.InitParams baseParams; + bytes baseParams; string name; string symbol; } @@ -28,6 +26,7 @@ interface IVaultTokenized is IERC20, IERC20Metadata, IERC20Errors { * @param symbol symbol for the ERC20 tokenized vault */ struct MigrateParamsTokenized { + bytes baseParams; string name; string symbol; } diff --git a/src/interfaces/vault/v1.1/IVaultVotes.sol b/src/interfaces/vault/v1.1/IVaultVotes.sol index 6163d575..53ab46a5 100644 --- a/src/interfaces/vault/v1.1/IVaultVotes.sol +++ b/src/interfaces/vault/v1.1/IVaultVotes.sol @@ -6,4 +6,5 @@ import {IERC5805} from "@openzeppelin/contracts/interfaces/IERC5805.sol"; interface IVaultVotes is IERC5805 { error SafeSupplyExceeded(); error ImproperMigration(); + error InvalidData(); } diff --git a/test/mocks/SimpleMigratableEntity.sol b/test/mocks/SimpleMigratableEntity.sol index 84e93fb4..c76f33d6 100644 --- a/test/mocks/SimpleMigratableEntity.sol +++ b/test/mocks/SimpleMigratableEntity.sol @@ -16,7 +16,7 @@ contract SimpleMigratableEntity is MigratableEntity { a = _a; } - function _migrate(uint64, /* oldVersion */ uint64, /* newVersion */ bytes calldata /* data */ ) internal override { + function _migrate(uint64, /* oldVersion */ uint64, /* newVersion */ bytes memory /* data */ ) internal override { revert(); } } diff --git a/test/mocks/SimpleMigratableEntityV2.sol b/test/mocks/SimpleMigratableEntityV2.sol index 7852088a..bbb61b0a 100644 --- a/test/mocks/SimpleMigratableEntityV2.sol +++ b/test/mocks/SimpleMigratableEntityV2.sol @@ -23,7 +23,7 @@ contract SimpleMigratableEntityV2 is MigratableEntity { b = b_; } - function _migrate(uint64 oldVersion, uint64 newVersion, bytes calldata data) internal override { + function _migrate(uint64 oldVersion, uint64 newVersion, bytes memory data) internal override { if (newVersion - oldVersion > 1) { revert(); } diff --git a/test/vault/v1.1/VaultTokenized.t.sol b/test/vault/v1.1/VaultTokenized.t.sol index 67479fde..cafd8cf3 100644 --- a/test/vault/v1.1/VaultTokenized.t.sol +++ b/test/vault/v1.1/VaultTokenized.t.sol @@ -214,26 +214,28 @@ contract VaultTokenizedTest is Test { owner: address(0), vaultParams: abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: burner, - epochDuration: epochDuration, - depositWhitelist: depositWhitelist, - isDepositLimit: isDepositLimit, - depositLimit: depositLimit, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: burner, + epochDuration: epochDuration, + depositWhitelist: depositWhitelist, + isDepositLimit: isDepositLimit, + depositLimit: depositLimit, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -378,26 +380,28 @@ contract VaultTokenizedTest is Test { owner: alice, vaultParams: abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: epochDuration, - depositWhitelist: true, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: epochDuration, + depositWhitelist: true, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -438,26 +442,28 @@ contract VaultTokenizedTest is Test { owner: alice, vaultParams: abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(0), - burner: address(0xdEaD), - epochDuration: epochDuration, - depositWhitelist: true, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(0), + burner: address(0xdEaD), + epochDuration: epochDuration, + depositWhitelist: true, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -496,26 +502,28 @@ contract VaultTokenizedTest is Test { alice, abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: epochDuration, - depositWhitelist: true, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: address(0), - depositWhitelistSetRoleHolder: address(0), - depositorWhitelistRoleHolder: address(0), - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: address(0), - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: epochDuration, + depositWhitelist: true, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: address(0), + depositWhitelistSetRoleHolder: address(0), + depositorWhitelistRoleHolder: address(0), + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: address(0), + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -540,26 +548,28 @@ contract VaultTokenizedTest is Test { alice, abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: epochDuration, - depositWhitelist: false, - isDepositLimit: true, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 0, - flashFeeReceiver: address(0), - defaultAdminRoleHolder: address(0), - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: address(0), - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: address(0), - depositLimitSetRoleHolder: address(0), - epochDurationSetRoleHolder: address(0), - flashFeeRateSetRoleHolder: address(0), - flashFeeReceiverSetRoleHolder: address(0) - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: epochDuration, + depositWhitelist: false, + isDepositLimit: true, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 0, + flashFeeReceiver: address(0), + defaultAdminRoleHolder: address(0), + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: address(0), + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: address(0), + depositLimitSetRoleHolder: address(0), + epochDurationSetRoleHolder: address(0), + flashFeeRateSetRoleHolder: address(0), + flashFeeReceiverSetRoleHolder: address(0) + }) + ), name: "Test", symbol: "TEST" }) @@ -584,26 +594,28 @@ contract VaultTokenizedTest is Test { alice, abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: epochDuration, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: address(0), - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: address(0), - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: address(0), - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: epochDuration, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: address(0), + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: address(0), + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: address(0), + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -628,26 +640,28 @@ contract VaultTokenizedTest is Test { alice, abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: epochDuration, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 1, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 0, - flashFeeReceiver: address(0), - defaultAdminRoleHolder: address(0), - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: address(0), - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: address(0), - depositLimitSetRoleHolder: address(0), - epochDurationSetRoleHolder: address(0), - flashFeeRateSetRoleHolder: address(0), - flashFeeReceiverSetRoleHolder: address(0) - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: epochDuration, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 1, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 0, + flashFeeReceiver: address(0), + defaultAdminRoleHolder: address(0), + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: address(0), + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: address(0), + depositLimitSetRoleHolder: address(0), + epochDurationSetRoleHolder: address(0), + flashFeeRateSetRoleHolder: address(0), + flashFeeReceiverSetRoleHolder: address(0) + }) + ), name: "Test", symbol: "TEST" }) @@ -672,26 +686,28 @@ contract VaultTokenizedTest is Test { alice, abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: epochDuration, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: address(0), - depositWhitelistSetRoleHolder: address(0), - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: address(0), - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: epochDuration, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: address(0), + depositWhitelistSetRoleHolder: address(0), + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: address(0), + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -711,26 +727,28 @@ contract VaultTokenizedTest is Test { alice, abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: 7 days, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: 7 days, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -782,26 +800,28 @@ contract VaultTokenizedTest is Test { alice, abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: 7 days, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: 7 days, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -850,26 +870,28 @@ contract VaultTokenizedTest is Test { alice, abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: 7 days, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: 7 days, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -892,26 +914,28 @@ contract VaultTokenizedTest is Test { alice, abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: 7 days, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: 7 days, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -927,26 +951,28 @@ contract VaultTokenizedTest is Test { alice, abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: 7 days, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: 7 days, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -993,26 +1019,28 @@ contract VaultTokenizedTest is Test { alice, abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: 7 days, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: 7 days, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -1050,26 +1078,28 @@ contract VaultTokenizedTest is Test { alice, abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: 7 days, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: 7 days, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -1104,26 +1134,28 @@ contract VaultTokenizedTest is Test { alice, abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: 7 days, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: 7 days, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -1156,26 +1188,28 @@ contract VaultTokenizedTest is Test { alice, abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: 7 days, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: 7 days, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -1191,26 +1225,28 @@ contract VaultTokenizedTest is Test { alice, abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: 7 days, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: 7 days, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -1243,26 +1279,28 @@ contract VaultTokenizedTest is Test { alice, abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: 7 days, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: 7 days, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -1521,26 +1559,28 @@ contract VaultTokenizedTest is Test { owner: alice, vaultParams: abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(feeOnTransferCollateral), - burner: address(0xdEaD), - epochDuration: 7 days, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(feeOnTransferCollateral), + burner: address(0xdEaD), + epochDuration: 7 days, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -3405,12 +3445,32 @@ contract VaultTokenizedTest is Test { vault.symbol(); vm.expectRevert(); vault.name(); + + vm.expectRevert(); + VaultImplementation(payable(address(vault))).flashFeeRate(); vm.expectRevert(); - vault.flashFeeRate(); + VaultImplementation(payable(address(vault))).epochDurationSetEpochsDelay(); vm.startPrank(alice); vaultFactory.migrate( - address(vault), 3, abi.encode(IVaultTokenized.MigrateParamsTokenized({name: "test1", symbol: "TEST1"})) + address(vault), + 3, + abi.encode( + IVaultTokenized.MigrateParamsTokenized({ + baseParams: abi.encode( + IVault.MigrateParams({ + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), + name: "test1", + symbol: "TEST1" + }) + ) ); vm.stopPrank(); @@ -3421,7 +3481,9 @@ contract VaultTokenizedTest is Test { assertEq(vault.decimals(), decimals); assertEq(vault.symbol(), "TEST1"); assertEq(vault.name(), "test1"); - assertEq(vault.flashFeeRate(), 0); + + assertEq(VaultImplementation(payable(address(vault))).flashFeeRate(), 1); + assertEq(VaultImplementation(payable(address(vault))).epochDurationSetEpochsDelay(), 3); } function test_Migrate2() public { @@ -3534,72 +3596,30 @@ contract VaultTokenizedTest is Test { assertEq(vault.name(), "test"); vm.expectRevert(); - vault.flashFeeRate(); + VaultImplementation(payable(address(vault))).flashFeeRate(); + vm.expectRevert(); + VaultImplementation(payable(address(vault))).epochDurationSetEpochsDelay(); vm.startPrank(alice); - vaultFactory.migrate(address(vault), 3, new bytes(0)); + vaultFactory.migrate( + address(vault), + 3, + abi.encode( + IVault.MigrateParams({ + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ) + ); vm.stopPrank(); assertEq(Vault(payable(address(vault))).version(), 3); - assertEq(vault.flashFeeRate(), 0); - } - - function test_MigrateRevertInvalidData() public { - uint256 blockTimestamp = vm.getBlockTimestamp(); - blockTimestamp = blockTimestamp + 1_720_700_948; - vm.warp(blockTimestamp); - - address[] memory networkLimitSetRoleHolders = new address[](1); - networkLimitSetRoleHolders[0] = alice; - address[] memory operatorNetworkSharesSetRoleHolders = new address[](1); - operatorNetworkSharesSetRoleHolders[0] = alice; - (address vault_,,) = vaultConfigurator.create( - IVaultConfigurator.InitParams({ - version: 2, - owner: alice, - vaultParams: abi.encode( - IVaultTokenizedV1.InitParamsTokenized({ - baseParams: IVaultV1.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: 7 days, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice - }), - name: "test", - symbol: "TEST" - }) - ), - delegatorIndex: 0, - delegatorParams: abi.encode( - INetworkRestakeDelegator.InitParams({ - baseParams: IBaseDelegator.BaseParams({ - defaultAdminRoleHolder: alice, - hook: address(0), - hookSetRoleHolder: alice - }), - networkLimitSetRoleHolders: networkLimitSetRoleHolders, - operatorNetworkSharesSetRoleHolders: operatorNetworkSharesSetRoleHolders - }) - ), - withSlasher: false, - slasherIndex: 0, - slasherParams: abi.encode(ISlasher.InitParams({baseParams: IBaseSlasher.BaseParams({isBurnerHook: false})})) - }) - ); - - vault = VaultTokenizedImplementation(payable(vault_)); - - vm.startPrank(alice); - vm.expectRevert(IVaultTokenized.InvalidData.selector); - vaultFactory.migrate(address(vault), 3, new bytes(1)); - vm.stopPrank(); + assertEq(VaultImplementation(payable(address(vault))).flashFeeRate(), 1); + assertEq(VaultImplementation(payable(address(vault))).epochDurationSetEpochsDelay(), 3); } // struct GasStruct { @@ -3877,26 +3897,28 @@ contract VaultTokenizedTest is Test { owner: alice, vaultParams: abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: epochDuration, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: epochDuration, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -3935,26 +3957,28 @@ contract VaultTokenizedTest is Test { owner: alice, vaultParams: abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: epochDuration, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: epochDuration, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) diff --git a/test/vault/v1.1/VaultVotes.t.sol b/test/vault/v1.1/VaultVotes.t.sol index f8852c03..4bc0b2fa 100644 --- a/test/vault/v1.1/VaultVotes.t.sol +++ b/test/vault/v1.1/VaultVotes.t.sol @@ -39,7 +39,7 @@ import {IBaseDelegator} from "../../../src/interfaces/delegator/IBaseDelegator.s import {ISlasher} from "../../../src/interfaces/slasher/ISlasher.sol"; import {IBaseSlasher} from "../../../src/interfaces/slasher/IBaseSlasher.sol"; -import {IVaultStorage} from "../../../src/interfaces/vault/v1.1/IVaultStorage.sol"; +import {IVaultVotes} from "../../../src/interfaces/vault/v1.1/IVaultVotes.sol"; import {Math} from "@openzeppelin/contracts/utils/math/Math.sol"; import {VaultHints} from "../../../src/contracts/hints/VaultHints.sol"; @@ -226,26 +226,28 @@ contract VaultVotesTest is Test { owner: address(0), vaultParams: abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: burner, - epochDuration: epochDuration, - depositWhitelist: depositWhitelist, - isDepositLimit: isDepositLimit, - depositLimit: depositLimit, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: burner, + epochDuration: epochDuration, + depositWhitelist: depositWhitelist, + isDepositLimit: isDepositLimit, + depositLimit: depositLimit, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -393,26 +395,28 @@ contract VaultVotesTest is Test { owner: alice, vaultParams: abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: epochDuration, - depositWhitelist: true, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: epochDuration, + depositWhitelist: true, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -453,26 +457,28 @@ contract VaultVotesTest is Test { owner: alice, vaultParams: abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(0), - burner: address(0xdEaD), - epochDuration: epochDuration, - depositWhitelist: true, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(0), + burner: address(0xdEaD), + epochDuration: epochDuration, + depositWhitelist: true, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -511,26 +517,28 @@ contract VaultVotesTest is Test { alice, abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: epochDuration, - depositWhitelist: true, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: address(0), - depositWhitelistSetRoleHolder: address(0), - depositorWhitelistRoleHolder: address(0), - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: address(0), - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: epochDuration, + depositWhitelist: true, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: address(0), + depositWhitelistSetRoleHolder: address(0), + depositorWhitelistRoleHolder: address(0), + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: address(0), + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -555,26 +563,28 @@ contract VaultVotesTest is Test { alice, abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: epochDuration, - depositWhitelist: false, - isDepositLimit: true, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 0, - flashFeeReceiver: address(0), - defaultAdminRoleHolder: address(0), - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: address(0), - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: address(0), - depositLimitSetRoleHolder: address(0), - epochDurationSetRoleHolder: address(0), - flashFeeRateSetRoleHolder: address(0), - flashFeeReceiverSetRoleHolder: address(0) - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: epochDuration, + depositWhitelist: false, + isDepositLimit: true, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 0, + flashFeeReceiver: address(0), + defaultAdminRoleHolder: address(0), + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: address(0), + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: address(0), + depositLimitSetRoleHolder: address(0), + epochDurationSetRoleHolder: address(0), + flashFeeRateSetRoleHolder: address(0), + flashFeeReceiverSetRoleHolder: address(0) + }) + ), name: "Test", symbol: "TEST" }) @@ -599,26 +609,28 @@ contract VaultVotesTest is Test { alice, abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: epochDuration, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: address(0), - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: address(0), - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: address(0), - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: epochDuration, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: address(0), + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: address(0), + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: address(0), + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -643,26 +655,28 @@ contract VaultVotesTest is Test { alice, abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: epochDuration, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 1, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 0, - flashFeeReceiver: address(0), - defaultAdminRoleHolder: address(0), - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: address(0), - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: address(0), - depositLimitSetRoleHolder: address(0), - epochDurationSetRoleHolder: address(0), - flashFeeRateSetRoleHolder: address(0), - flashFeeReceiverSetRoleHolder: address(0) - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: epochDuration, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 1, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 0, + flashFeeReceiver: address(0), + defaultAdminRoleHolder: address(0), + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: address(0), + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: address(0), + depositLimitSetRoleHolder: address(0), + epochDurationSetRoleHolder: address(0), + flashFeeRateSetRoleHolder: address(0), + flashFeeReceiverSetRoleHolder: address(0) + }) + ), name: "Test", symbol: "TEST" }) @@ -687,26 +701,28 @@ contract VaultVotesTest is Test { alice, abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: epochDuration, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: address(0), - depositWhitelistSetRoleHolder: address(0), - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: address(0), - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: epochDuration, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: address(0), + depositWhitelistSetRoleHolder: address(0), + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: address(0), + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -726,26 +742,28 @@ contract VaultVotesTest is Test { alice, abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: 7 days, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: 7 days, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -797,26 +815,28 @@ contract VaultVotesTest is Test { alice, abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: 7 days, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: 7 days, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -865,26 +885,28 @@ contract VaultVotesTest is Test { alice, abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: 7 days, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: 7 days, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -907,26 +929,28 @@ contract VaultVotesTest is Test { alice, abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: 7 days, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: 7 days, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -942,26 +966,28 @@ contract VaultVotesTest is Test { alice, abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: 7 days, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: 7 days, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -1008,26 +1034,28 @@ contract VaultVotesTest is Test { alice, abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: 7 days, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: 7 days, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -1065,26 +1093,28 @@ contract VaultVotesTest is Test { alice, abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: 7 days, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: 7 days, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -1119,26 +1149,28 @@ contract VaultVotesTest is Test { alice, abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: 7 days, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: 7 days, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -1171,26 +1203,28 @@ contract VaultVotesTest is Test { alice, abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: 7 days, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: 7 days, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -1206,26 +1240,28 @@ contract VaultVotesTest is Test { alice, abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: 7 days, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: 7 days, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -1258,26 +1294,28 @@ contract VaultVotesTest is Test { alice, abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: 7 days, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: 7 days, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -1536,26 +1574,28 @@ contract VaultVotesTest is Test { owner: alice, vaultParams: abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(feeOnTransferCollateral), - burner: address(0xdEaD), - epochDuration: 7 days, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(feeOnTransferCollateral), + burner: address(0xdEaD), + epochDuration: 7 days, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -3647,26 +3687,28 @@ contract VaultVotesTest is Test { owner: alice, vaultParams: abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: 7 days, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: 7 days, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "test", symbol: "TEST" }) @@ -3774,26 +3816,28 @@ contract VaultVotesTest is Test { owner: alice, vaultParams: abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: 7 days, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: 7 days, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "test", symbol: "TEST" }) @@ -3819,7 +3863,7 @@ contract VaultVotesTest is Test { vault = VaultVotesImplementation(payable(vault_)); vm.startPrank(alice); - vm.expectRevert(IVaultTokenized.InvalidData.selector); + vm.expectRevert(IVaultVotes.InvalidData.selector); vaultFactory.migrate(address(vault), 4, new bytes(1)); vm.stopPrank(); } @@ -3837,26 +3881,28 @@ contract VaultVotesTest is Test { owner: alice, vaultParams: abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: epochDuration, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: epochDuration, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" }) @@ -3895,26 +3941,28 @@ contract VaultVotesTest is Test { owner: alice, vaultParams: abi.encode( IVaultTokenized.InitParamsTokenized({ - baseParams: IVault.InitParams({ - collateral: address(collateral), - burner: address(0xdEaD), - epochDuration: epochDuration, - depositWhitelist: false, - isDepositLimit: false, - depositLimit: 0, - epochDurationSetEpochsDelay: 3, - flashFeeRate: 1, - flashFeeReceiver: alice, - defaultAdminRoleHolder: alice, - depositWhitelistSetRoleHolder: alice, - depositorWhitelistRoleHolder: alice, - depositorsWhitelisted: new address[](0), - isDepositLimitSetRoleHolder: alice, - depositLimitSetRoleHolder: alice, - epochDurationSetRoleHolder: alice, - flashFeeRateSetRoleHolder: alice, - flashFeeReceiverSetRoleHolder: alice - }), + baseParams: abi.encode( + IVault.InitParams({ + collateral: address(collateral), + burner: address(0xdEaD), + epochDuration: epochDuration, + depositWhitelist: false, + isDepositLimit: false, + depositLimit: 0, + epochDurationSetEpochsDelay: 3, + flashFeeRate: 1, + flashFeeReceiver: alice, + defaultAdminRoleHolder: alice, + depositWhitelistSetRoleHolder: alice, + depositorWhitelistRoleHolder: alice, + depositorsWhitelisted: new address[](0), + isDepositLimitSetRoleHolder: alice, + depositLimitSetRoleHolder: alice, + epochDurationSetRoleHolder: alice, + flashFeeRateSetRoleHolder: alice, + flashFeeReceiverSetRoleHolder: alice + }) + ), name: "Test", symbol: "TEST" })