@tokamak-network/thanos-contracts
Version:
1 lines • 140 kB
JSON
{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"1228:11454:77:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1228:11454:77;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"1228:11454:77:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for managing https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive types. Sets have the following properties: - Elements are added, removed, and checked for existence in constant time (O(1)). - Elements are enumerated in O(n). No guarantees are made on the ordering. ``` contract Example { // Add the library methods using EnumerableSet for EnumerableSet.AddressSet; // Declare a set state variable EnumerableSet.AddressSet private mySet; } ``` As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`) and `uint256` (`UintSet`) are supported. [WARNING] ==== Trying to delete such a structure from storage will likely result in data corruption, rendering the structure unusable. See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info. In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an array of EnumerableSet. ====\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":\"EnumerableSet\"},\"evmVersion\":\"london\",\"libraries\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":"EnumerableSet"},"evmVersion":"london","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4","urls":["bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271","dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","details":"Library for managing https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive types. Sets have the following properties: - Elements are added, removed, and checked for existence in constant time (O(1)). - Elements are enumerated in O(n). No guarantees are made on the ordering. ``` contract Example { // Add the library methods using EnumerableSet for EnumerableSet.AddressSet; // Declare a set state variable EnumerableSet.AddressSet private mySet; } ``` As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`) and `uint256` (`UintSet`) are supported. [WARNING] ==== Trying to delete such a structure from storage will likely result in data corruption, rendering the structure unusable. See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info. In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an array of EnumerableSet. ===="},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","id":58117,"exportedSymbols":{"EnumerableSet":[58116]},"nodeType":"SourceUnit","src":"115:12568:77","nodes":[{"id":57519,"nodeType":"PragmaDirective","src":"115:23:77","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":58116,"nodeType":"ContractDefinition","src":"1228:11454:77","nodes":[{"id":57528,"nodeType":"StructDefinition","src":"1696:247:77","nodes":[],"canonicalName":"EnumerableSet.Set","members":[{"constant":false,"id":57523,"mutability":"mutable","name":"_values","nameLocation":"1760:7:77","nodeType":"VariableDeclaration","scope":57528,"src":"1750:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":57521,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1750:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":57522,"nodeType":"ArrayTypeName","src":"1750:9:77","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":57527,"mutability":"mutable","name":"_indexes","nameLocation":"1928:8:77","nodeType":"VariableDeclaration","scope":57528,"src":"1900:36:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":57526,"keyType":{"id":57524,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1908:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1900:27:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":57525,"name":"uint256","nodeType":"ElementaryTypeName","src":"1919:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"}],"name":"Set","nameLocation":"1703:3:77","scope":58116,"visibility":"public"},{"id":57570,"nodeType":"FunctionDefinition","src":"2113:404:77","nodes":[],"body":{"id":57569,"nodeType":"Block","src":"2182:335:77","nodes":[],"statements":[{"condition":{"id":57543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2196:22:77","subExpression":{"arguments":[{"id":57540,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57532,"src":"2207:3:77","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$57528_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},{"id":57541,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57534,"src":"2212:5:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$57528_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":57539,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57673,"src":"2197:9:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$57528_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":57542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2197:21:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":57567,"nodeType":"Block","src":"2474:37:77","statements":[{"expression":{"hexValue":"66616c7365","id":57565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2495:5:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":57538,"id":57566,"nodeType":"Return","src":"2488:12:77"}]},"id":57568,"nodeType":"IfStatement","src":"2192:319:77","trueBody":{"id":57564,"nodeType":"Block","src":"2220:248:77","statements":[{"expression":{"arguments":[{"id":57549,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57534,"src":"2251:5:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":57544,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57532,"src":"2234:3:77","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$57528_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":57547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":57523,"src":"2234:11:77","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":57548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"2234:16:77","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":57550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2234:23:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57551,"nodeType":"ExpressionStatement","src":"2234:23:77"},{"expression":{"id":57560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":57552,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57532,"src":"2392:3:77","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$57528_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":57555,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":57527,"src":"2392:12:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":57556,"indexExpression":{"id":57554,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57534,"src":"2405:5:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2392:19:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":57557,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57532,"src":"2414:3:77","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$57528_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":57558,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":57523,"src":"2414:11:77","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":57559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2414:18:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2392:40:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57561,"nodeType":"ExpressionStatement","src":"2392:40:77"},{"expression":{"hexValue":"74727565","id":57562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2453:4:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":57538,"id":57563,"nodeType":"Return","src":"2446:11:77"}]}}]},"documentation":{"id":57529,"nodeType":"StructuredDocumentation","src":"1949:159:77","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"implemented":true,"kind":"function","modifiers":[],"name":"_add","nameLocation":"2122:4:77","parameters":{"id":57535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57532,"mutability":"mutable","name":"set","nameLocation":"2139:3:77","nodeType":"VariableDeclaration","scope":57570,"src":"2127:15:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$57528_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":57531,"nodeType":"UserDefinedTypeName","pathNode":{"id":57530,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":57528,"src":"2127:3:77"},"referencedDeclaration":57528,"src":"2127:3:77","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$57528_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":57534,"mutability":"mutable","name":"value","nameLocation":"2152:5:77","nodeType":"VariableDeclaration","scope":57570,"src":"2144:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":57533,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2144:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2126:32:77"},"returnParameters":{"id":57538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57537,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57570,"src":"2176:4:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":57536,"name":"bool","nodeType":"ElementaryTypeName","src":"2176:4:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2175:6:77"},"scope":58116,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":57654,"nodeType":"FunctionDefinition","src":"2685:1388:77","nodes":[],"body":{"id":57653,"nodeType":"Block","src":"2757:1316:77","nodes":[],"statements":[{"assignments":[57582],"declarations":[{"constant":false,"id":57582,"mutability":"mutable","name":"valueIndex","nameLocation":"2875:10:77","nodeType":"VariableDeclaration","scope":57653,"src":"2867:18:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57581,"name":"uint256","nodeType":"ElementaryTypeName","src":"2867:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57587,"initialValue":{"baseExpression":{"expression":{"id":57583,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57574,"src":"2888:3:77","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$57528_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":57584,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":57527,"src":"2888:12:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":57586,"indexExpression":{"id":57585,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57576,"src":"2901:5:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2888:19:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2867:40:77"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57588,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57582,"src":"2922:10:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":57589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2936:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2922:15:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":57651,"nodeType":"Block","src":"4030:37:77","statements":[{"expression":{"hexValue":"66616c7365","id":57649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4051:5:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":57580,"id":57650,"nodeType":"Return","src":"4044:12:77"}]},"id":57652,"nodeType":"IfStatement","src":"2918:1149:77","trueBody":{"id":57648,"nodeType":"Block","src":"2939:1085:77","statements":[{"assignments":[57592],"declarations":[{"constant":false,"id":57592,"mutability":"mutable","name":"toDeleteIndex","nameLocation":"3299:13:77","nodeType":"VariableDeclaration","scope":57648,"src":"3291:21:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57591,"name":"uint256","nodeType":"ElementaryTypeName","src":"3291:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57596,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57593,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57582,"src":"3315:10:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":57594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3328:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3315:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3291:38:77"},{"assignments":[57598],"declarations":[{"constant":false,"id":57598,"mutability":"mutable","name":"lastIndex","nameLocation":"3351:9:77","nodeType":"VariableDeclaration","scope":57648,"src":"3343:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57597,"name":"uint256","nodeType":"ElementaryTypeName","src":"3343:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57604,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":57599,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57574,"src":"3363:3:77","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$57528_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":57600,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":57523,"src":"3363:11:77","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":57601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3363:18:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":57602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3384:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3363:22:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3343:42:77"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57605,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57598,"src":"3404:9:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":57606,"name":"toDeleteIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57592,"src":"3417:13:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3404:26:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57632,"nodeType":"IfStatement","src":"3400:398:77","trueBody":{"id":57631,"nodeType":"Block","src":"3432:366:77","statements":[{"assignments":[57609],"declarations":[{"constant":false,"id":57609,"mutability":"mutable","name":"lastValue","nameLocation":"3458:9:77","nodeType":"VariableDeclaration","scope":57631,"src":"3450:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":57608,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3450:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":57614,"initialValue":{"baseExpression":{"expression":{"id":57610,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57574,"src":"3470:3:77","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$57528_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":57611,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":57523,"src":"3470:11:77","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":57613,"indexExpression":{"id":57612,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57598,"src":"3482:9:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3470:22:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3450:42:77"},{"expression":{"id":57621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":57615,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57574,"src":"3592:3:77","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$57528_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":57618,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":57523,"src":"3592:11:77","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":57619,"indexExpression":{"id":57617,"name":"toDeleteIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57592,"src":"3604:13:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3592:26:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57620,"name":"lastValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57609,"src":"3621:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3592:38:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":57622,"nodeType":"ExpressionStatement","src":"3592:38:77"},{"expression":{"id":57629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":57623,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57574,"src":"3704:3:77","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$57528_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":57626,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":57527,"src":"3704:12:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":57627,"indexExpression":{"id":57625,"name":"lastValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57609,"src":"3717:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3704:23:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57628,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57582,"src":"3730:10:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3704:36:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57630,"nodeType":"ExpressionStatement","src":"3704:36:77"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":57633,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57574,"src":"3876:3:77","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$57528_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":57636,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":57523,"src":"3876:11:77","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":57637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pop","nodeType":"MemberAccess","src":"3876:15:77","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer)"}},"id":57638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3876:17:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57639,"nodeType":"ExpressionStatement","src":"3876:17:77"},{"expression":{"id":57644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3961:26:77","subExpression":{"baseExpression":{"expression":{"id":57640,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57574,"src":"3968:3:77","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$57528_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":57641,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":57527,"src":"3968:12:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":57643,"indexExpression":{"id":57642,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57576,"src":"3981:5:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3968:19:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57645,"nodeType":"ExpressionStatement","src":"3961:26:77"},{"expression":{"hexValue":"74727565","id":57646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4009:4:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":57580,"id":57647,"nodeType":"Return","src":"4002:11:77"}]}}]},"documentation":{"id":57571,"nodeType":"StructuredDocumentation","src":"2523:157:77","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"implemented":true,"kind":"function","modifiers":[],"name":"_remove","nameLocation":"2694:7:77","parameters":{"id":57577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57574,"mutability":"mutable","name":"set","nameLocation":"2714:3:77","nodeType":"VariableDeclaration","scope":57654,"src":"2702:15:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$57528_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":57573,"nodeType":"UserDefinedTypeName","pathNode":{"id":57572,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":57528,"src":"2702:3:77"},"referencedDeclaration":57528,"src":"2702:3:77","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$57528_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":57576,"mutability":"mutable","name":"value","nameLocation":"2727:5:77","nodeType":"VariableDeclaration","scope":57654,"src":"2719:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":57575,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2719:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2701:32:77"},"returnParameters":{"id":57580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57579,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57654,"src":"2751:4:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":57578,"name":"bool","nodeType":"ElementaryTypeName","src":"2751:4:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2750:6:77"},"scope":58116,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":57673,"nodeType":"FunctionDefinition","src":"4154:127:77","nodes":[],"body":{"id":57672,"nodeType":"Block","src":"4233:48:77","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":57665,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57658,"src":"4250:3:77","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$57528_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":57666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":57527,"src":"4250:12:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":57668,"indexExpression":{"id":57667,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57660,"src":"4263:5:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4250:19:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":57669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4273:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4250:24:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":57664,"id":57671,"nodeType":"Return","src":"4243:31:77"}]},"documentation":{"id":57655,"nodeType":"StructuredDocumentation","src":"4079:70:77","text":" @dev Returns true if the value is in the set. O(1)."},"implemented":true,"kind":"function","modifiers":[],"name":"_contains","nameLocation":"4163:9:77","parameters":{"id":57661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57658,"mutability":"mutable","name":"set","nameLocation":"4185:3:77","nodeType":"VariableDeclaration","scope":57673,"src":"4173:15:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$57528_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":57657,"nodeType":"UserDefinedTypeName","pathNode":{"id":57656,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":57528,"src":"4173:3:77"},"referencedDeclaration":57528,"src":"4173:3:77","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$57528_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":57660,"mutability":"mutable","name":"value","nameLocation":"4198:5:77","nodeType":"VariableDeclaration","scope":57673,"src":"4190:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":57659,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4190:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4172:32:77"},"returnParameters":{"id":57664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57663,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57673,"src":"4227:4:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":57662,"name":"bool","nodeType":"ElementaryTypeName","src":"4227:4:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4226:6:77"},"scope":58116,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":57687,"nodeType":"FunctionDefinition","src":"4362:107:77","nodes":[],"body":{"id":57686,"nodeType":"Block","src":"4427:42:77","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":57682,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57677,"src":"4444:3:77","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$57528_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":57683,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":57523,"src":"4444:11:77","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":57684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4444:18:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":57681,"id":57685,"nodeType":"Return","src":"4437:25:77"}]},"documentation":{"id":57674,"nodeType":"StructuredDocumentation","src":"4287:70:77","text":" @dev Returns the number of values on the set. O(1)."},"implemented":true,"kind":"function","modifiers":[],"name":"_length","nameLocation":"4371:7:77","parameters":{"id":57678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57677,"mutability":"mutable","name":"set","nameLocation":"4391:3:77","nodeType":"VariableDeclaration","scope":57687,"src":"4379:15:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$57528_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":57676,"nodeType":"UserDefinedTypeName","pathNode":{"id":57675,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":57528,"src":"4379:3:77"},"referencedDeclaration":57528,"src":"4379:3:77","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$57528_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"src":"4378:17:77"},"returnParameters":{"id":57681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57680,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57687,"src":"4418:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57679,"name":"uint256","nodeType":"ElementaryTypeName","src":"4418:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4417:9:77"},"scope":58116,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":57704,"nodeType":"FunctionDefinition","src":"4811:118:77","nodes":[],"body":{"id":57703,"nodeType":"Block","src":"4887:42:77","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"id":57698,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57691,"src":"4904:3:77","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$57528_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":57699,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":57523,"src":"4904:11:77","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":57701,"indexExpression":{"id":57700,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57693,"src":"4916:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4904:18:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":57697,"id":57702,"nodeType":"Return","src":"4897:25:77"}]},"documentation":{"id":57688,"nodeType":"StructuredDocumentation","src":"4475:331:77","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"implemented":true,"kind":"function","modifiers":[],"name":"_at","nameLocation":"4820:3:77","parameters":{"id":57694,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57691,"mutability":"mutable","name":"set","nameLocation":"4836:3:77","nodeType":"VariableDeclaration","scope":57704,"src":"4824:15:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$57528_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":57690,"nodeType":"UserDefinedTypeName","pathNode":{"id":57689,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":57528,"src":"4824:3:77"},"referencedDeclaration":57528,"src":"4824:3:77","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$57528_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":57693,"mutability":"mutable","name":"index","nameLocation":"4849:5:77","nodeType":"VariableDeclaration","scope":57704,"src":"4841:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57692,"name":"uint256","nodeType":"ElementaryTypeName","src":"4841:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4823:32:77"},"returnParameters":{"id":57697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57696,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57704,"src":"4878:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":57695,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4878:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4877:9:77"},"scope":58116,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":57718,"nodeType":"FunctionDefinition","src":"5469:109:77","nodes":[],"body":{"id":57717,"nodeType":"Block","src":"5543:35:77","nodes":[],"statements":[{"expression":{"expression":{"id":57714,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57708,"src":"5560:3:77","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$57528_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":57715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":57523,"src":"5560:11:77","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"functionReturnParameters":57713,"id":57716,"nodeType":"Return","src":"5553:18:77"}]},"documentation":{"id":57705,"nodeType":"StructuredDocumentation","src":"4935:529:77","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"implemented":true,"kind":"function","modifiers":[],"name":"_values","nameLocation":"5478:7:77","parameters":{"id":57709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57708,"mutability":"mutable","name":"set","nameLocation":"5498:3:77","nodeType":"VariableDeclaration","scope":57718,"src":"5486:15:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$57528_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":57707,"nodeType":"UserDefinedTypeName","pathNode":{"id":57706,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":57528,"src":"5486:3:77"},"referencedDeclaration":57528,"src":"5486:3:77","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$57528_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"src":"5485:17:77"},"returnParameters":{"id":57713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57712,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57718,"src":"5525:16:77","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":57710,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5525:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":57711,"nodeType":"ArrayTypeName","src":"5525:9:77","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"5524:18:77"},"scope":58116,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":57722,"nodeType":"StructDefinition","src":"5603:45:77","nodes":[],"canonicalName":"EnumerableSet.Bytes32Set","members":[{"constant":false,"id":57721,"mutability":"mutable","name":"_inner","nameLocation":"5635:6:77","nodeType":"VariableDeclaration","scope":57722,"src":"5631:10:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$57528_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":57720,"nodeType":"UserDefinedTypeName","pathNode":{"id":57719,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":57528,"src":"5631:3:77"},"referencedDeclaration":57528,"src":"5631:3:77","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$57528_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"Bytes32Set","nameLocation":"5610:10:77","scope":58116,"visibility":"public"},{"id":57740,"nodeType":"FunctionDefinition","src":"5818:123:77","nodes":[],"body":{"id":57739,"nodeType":"Block","src":"5894:47:77","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":57734,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57726,"src":"5916:3:77","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$57722_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":57735,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"Membe