{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122055bf7ab78603517a89eaaaf8809f5b3e7966953e0c9a027ca7b47baad49920e364736f6c63430008180033","sourceMap":"783:277:2:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;783:277:2;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122055bf7ab78603517a89eaaaf8809f5b3e7966953e0c9a027ca7b47baad49920e364736f6c63430008180033","sourceMap":"783:277:2:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@dk1a/solidity-stringutils/src/SliceIter.sol\":\"SliceIter__\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@dk1a/solidity-stringutils/=node_modules/@dk1a/solidity-stringutils/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":base/=src/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":solmate/=node_modules/solmate/src/\"]},\"sources\":{\"node_modules/@dk1a/solidity-stringutils/src/Slice.sol\":{\"keccak256\":\"0x275d3a59770ad0b5fbbe55e9199a6e449e88c15668922ad1aef0b895696d7d9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e502f0ebd41bd7e9fdb4df066913fcf8ecabfaabb59734e713eed2f260ac5b7f\",\"dweb:/ipfs/QmZEEXv7x1rZnQTohSoGcJycNdh4u2tYuL7wU8tftsK8Me\"]},\"node_modules/@dk1a/solidity-stringutils/src/SliceIter.sol\":{\"keccak256\":\"0x567f7ae2e0ee107ef510cf7b2f648cb0c2e980e86463b68c29ea7b08a03cf68b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://201250475f59edd22aa4aba7c97e3ce934298b7a6db7a517162c86445932005d\",\"dweb:/ipfs/QmYVGUCzMnG7wvTGFxgz8Bx5948auFxWpdyMvytkFjpWyE\"]},\"node_modules/@dk1a/solidity-stringutils/src/utils/PackPtrLen.sol\":{\"keccak256\":\"0x12db07da53ebb78b4aa163d3b8ea9e6e43049b4a036a734a456fc715f262d226\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbc45982956c2f3a9553748393293fe7491b87361b35174a47b566df40c9a9f1\",\"dweb:/ipfs/QmYnpwTqppyDHMcoCZDEdZu3mKixRkgs9FfVVMgARXWTHa\"]},\"node_modules/@dk1a/solidity-stringutils/src/utils/mem.sol\":{\"keccak256\":\"0xae6d56e348968bd35d1135fd5aa77a498e78065e8b8da2084c7b6c63580e3e1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f25b07594f24baa7ddc713849fec72e5520d37e98de48ada81e11606dde873a\",\"dweb:/ipfs/QmbWnDh1r3Bjo4VPqAUrRbbynfPmgVP9yKowiRhyiwQVie\"]},\"node_modules/@dk1a/solidity-stringutils/src/utils/memchr.sol\":{\"keccak256\":\"0xfcd59abbf0e6fce243a5987aa71be39b2cd001b813dca59df3bab2b1e7a3104b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60ffc7a8195c6ebbe5eb27c49a548487273e96ea9c4e2bfa9e07f50474fa583d\",\"dweb:/ipfs/QmdBFuXRsCV3nYJb31rXwYEQVcrJjjVFReenWxYZYLHX5Z\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@dk1a/solidity-stringutils/=node_modules/@dk1a/solidity-stringutils/","@latticexyz/=node_modules/@latticexyz/","@openzeppelin/=node_modules/@openzeppelin/","base/=src/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/","solmate/=node_modules/solmate/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@dk1a/solidity-stringutils/src/SliceIter.sol":"SliceIter__"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@dk1a/solidity-stringutils/src/Slice.sol":{"keccak256":"0x275d3a59770ad0b5fbbe55e9199a6e449e88c15668922ad1aef0b895696d7d9c","urls":["bzz-raw://e502f0ebd41bd7e9fdb4df066913fcf8ecabfaabb59734e713eed2f260ac5b7f","dweb:/ipfs/QmZEEXv7x1rZnQTohSoGcJycNdh4u2tYuL7wU8tftsK8Me"],"license":"MIT"},"node_modules/@dk1a/solidity-stringutils/src/SliceIter.sol":{"keccak256":"0x567f7ae2e0ee107ef510cf7b2f648cb0c2e980e86463b68c29ea7b08a03cf68b","urls":["bzz-raw://201250475f59edd22aa4aba7c97e3ce934298b7a6db7a517162c86445932005d","dweb:/ipfs/QmYVGUCzMnG7wvTGFxgz8Bx5948auFxWpdyMvytkFjpWyE"],"license":"MIT"},"node_modules/@dk1a/solidity-stringutils/src/utils/PackPtrLen.sol":{"keccak256":"0x12db07da53ebb78b4aa163d3b8ea9e6e43049b4a036a734a456fc715f262d226","urls":["bzz-raw://cbc45982956c2f3a9553748393293fe7491b87361b35174a47b566df40c9a9f1","dweb:/ipfs/QmYnpwTqppyDHMcoCZDEdZu3mKixRkgs9FfVVMgARXWTHa"],"license":"MIT"},"node_modules/@dk1a/solidity-stringutils/src/utils/mem.sol":{"keccak256":"0xae6d56e348968bd35d1135fd5aa77a498e78065e8b8da2084c7b6c63580e3e1c","urls":["bzz-raw://9f25b07594f24baa7ddc713849fec72e5520d37e98de48ada81e11606dde873a","dweb:/ipfs/QmbWnDh1r3Bjo4VPqAUrRbbynfPmgVP9yKowiRhyiwQVie"],"license":"MIT"},"node_modules/@dk1a/solidity-stringutils/src/utils/memchr.sol":{"keccak256":"0xfcd59abbf0e6fce243a5987aa71be39b2cd001b813dca59df3bab2b1e7a3104b","urls":["bzz-raw://60ffc7a8195c6ebbe5eb27c49a548487273e96ea9c4e2bfa9e07f50474fa583d","dweb:/ipfs/QmdBFuXRsCV3nYJb31rXwYEQVcrJjjVFReenWxYZYLHX5Z"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"node_modules/@dk1a/solidity-stringutils/src/SliceIter.sol","id":1931,"exportedSymbols":{"Slice":[74],"SliceIter":[1745],"SliceIter__":[1768],"SliceIter__StopIteration":[1747],"Slice__":[146],"asSlice":[1796],"isEmpty":[1837],"len":[1822],"mload8":[4426],"next":[1885],"nextBack":[1930],"ptr":[1809]},"nodeType":"SourceUnit","src":"33:2951:2","nodes":[{"id":1734,"nodeType":"PragmaDirective","src":"33:24:2","nodes":[],"literals":["solidity","^","0.8",".17"]},{"id":1736,"nodeType":"ImportDirective","src":"59:41:2","nodes":[],"absolutePath":"node_modules/@dk1a/solidity-stringutils/src/utils/mem.sol","file":"./utils/mem.sol","nameLocation":"-1:-1:-1","scope":1931,"sourceUnit":4593,"symbolAliases":[{"foreign":{"id":1735,"name":"mload8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4426,"src":"68:6:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1739,"nodeType":"ImportDirective","src":"101:45:2","nodes":[],"absolutePath":"node_modules/@dk1a/solidity-stringutils/src/Slice.sol","file":"./Slice.sol","nameLocation":"-1:-1:-1","scope":1931,"sourceUnit":1733,"symbolAliases":[{"foreign":{"id":1737,"name":"Slice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74,"src":"110:5:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":1738,"name":"Slice__","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"117:7:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1745,"nodeType":"StructDefinition","src":"287:56:2","nodes":[],"canonicalName":"SliceIter","documentation":{"id":1740,"nodeType":"StructuredDocumentation","src":"148:138:2","text":" @title Slice iterator.\n @dev This struct is created by the iter method on `Slice`.\n Iterates only 1 byte (uint8) at a time."},"members":[{"constant":false,"id":1742,"mutability":"mutable","name":"_ptr","nameLocation":"318:4:2","nodeType":"VariableDeclaration","scope":1745,"src":"310:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1741,"name":"uint256","nodeType":"ElementaryTypeName","src":"310:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1744,"mutability":"mutable","name":"_len","nameLocation":"336:4:2","nodeType":"VariableDeclaration","scope":1745,"src":"328:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1743,"name":"uint256","nodeType":"ElementaryTypeName","src":"328:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"SliceIter","nameLocation":"294:9:2","scope":1931,"visibility":"public"},{"id":1747,"nodeType":"ErrorDefinition","src":"546:33:2","nodes":[],"errorSelector":"43bf5912","name":"SliceIter__StopIteration","nameLocation":"552:24:2","parameters":{"id":1746,"nodeType":"ParameterList","parameters":[],"src":"576:2:2"}},{"id":1768,"nodeType":"ContractDefinition","src":"783:277:2","nodes":[{"id":1767,"nodeType":"FunctionDefinition","src":"931:127:2","nodes":[],"body":{"id":1766,"nodeType":"Block","src":"999:59:2","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1758,"name":"slice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1751,"src":"1026:5:2","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1032:3:2","memberName":"ptr","nodeType":"MemberAccess","referencedDeclaration":215,"src":"1026:9:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Slice_$74_$returns$_t_uint256_$attached_to$_t_userDefinedValueType$_Slice_$74_$","typeString":"function (Slice) pure returns (uint256)"}},"id":1760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1026:11:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1761,"name":"slice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1751,"src":"1039:5:2","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1045:3:2","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"1039:9:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Slice_$74_$returns$_t_uint256_$attached_to$_t_userDefinedValueType$_Slice_$74_$","typeString":"function (Slice) pure returns (uint256)"}},"id":1763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1039:11:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1757,"name":"SliceIter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1745,"src":"1016:9:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SliceIter_$1745_storage_ptr_$","typeString":"type(struct SliceIter storage pointer)"}},"id":1764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1016:35:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SliceIter_$1745_memory_ptr","typeString":"struct SliceIter memory"}},"functionReturnParameters":1756,"id":1765,"nodeType":"Return","src":"1009:42:2"}]},"documentation":{"id":1748,"nodeType":"StructuredDocumentation","src":"809:117:2","text":" @dev Creates a new `SliceIter` from `Slice`.\n Note the `Slice` is assumed to be memory-safe."},"implemented":true,"kind":"function","modifiers":[],"name":"from","nameLocation":"940:4:2","parameters":{"id":1752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1751,"mutability":"mutable","name":"slice","nameLocation":"951:5:2","nodeType":"VariableDeclaration","scope":1767,"src":"945:11:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":1750,"nodeType":"UserDefinedTypeName","pathNode":{"id":1749,"name":"Slice","nameLocations":["945:5:2"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"945:5:2"},"referencedDeclaration":74,"src":"945:5:2","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"944:13:2"},"returnParameters":{"id":1756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1755,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1767,"src":"981:16:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SliceIter_$1745_memory_ptr","typeString":"struct SliceIter"},"typeName":{"id":1754,"nodeType":"UserDefinedTypeName","pathNode":{"id":1753,"name":"SliceIter","nameLocations":["981:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":1745,"src":"981:9:2"},"referencedDeclaration":1745,"src":"981:9:2","typeDescriptions":{"typeIdentifier":"t_struct$_SliceIter_$1745_storage_ptr","typeString":"struct SliceIter"}},"visibility":"internal"}],"src":"980:18:2"},"scope":1768,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SliceIter__","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[1768],"name":"SliceIter__","nameLocation":"791:11:2","scope":1931,"usedErrors":[],"usedEvents":[]},{"id":1777,"nodeType":"UsingForDirective","src":"1264:74:2","nodes":[],"functionList":[{"function":{"id":1769,"name":"asSlice","nameLocations":["1272:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":1796,"src":"1272:7:2"}},{"function":{"id":1770,"name":"ptr","nameLocations":["1281:3:2"],"nodeType":"IdentifierPath","referencedDeclaration":1809,"src":"1281:3:2"}},{"function":{"id":1771,"name":"len","nameLocations":["1286:3:2"],"nodeType":"IdentifierPath","referencedDeclaration":1822,"src":"1286:3:2"}},{"function":{"id":1772,"name":"isEmpty","nameLocations":["1291:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":1837,"src":"1291:7:2"}},{"function":{"id":1773,"name":"next","nameLocations":["1300:4:2"],"nodeType":"IdentifierPath","referencedDeclaration":1885,"src":"1300:4:2"}},{"function":{"id":1774,"name":"nextBack","nameLocations":["1306:8:2"],"nodeType":"IdentifierPath","referencedDeclaration":1930,"src":"1306:8:2"}}],"global":true,"typeName":{"id":1776,"nodeType":"UserDefinedTypeName","pathNode":{"id":1775,"name":"SliceIter","nameLocations":["1321:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":1745,"src":"1321:9:2"},"referencedDeclaration":1745,"src":"1321:9:2","typeDescriptions":{"typeIdentifier":"t_struct$_SliceIter_$1745_storage_ptr","typeString":"struct SliceIter"}}},{"id":1796,"nodeType":"FunctionDefinition","src":"1418:126:2","nodes":[],"body":{"id":1795,"nodeType":"Block","src":"1485:59:2","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":1789,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1781,"src":"1520:4:2","typeDescriptions":{"typeIdentifier":"t_struct$_SliceIter_$1745_memory_ptr","typeString":"struct SliceIter memory"}},"id":1790,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1525:4:2","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":1742,"src":"1520:9:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":1791,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1781,"src":"1531:4:2","typeDescriptions":{"typeIdentifier":"t_struct$_SliceIter_$1745_memory_ptr","typeString":"struct SliceIter memory"}},"id":1792,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1536:4:2","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":1744,"src":"1531:9:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1787,"name":"Slice__","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"1498:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Slice___$146_$","typeString":"type(library Slice__)"}},"id":1788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1506:13:2","memberName":"fromUnchecked","nodeType":"MemberAccess","referencedDeclaration":145,"src":"1498:21:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_userDefinedValueType$_Slice_$74_$","typeString":"function (uint256,uint256) pure returns (Slice)"}},"id":1793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1498:43:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"functionReturnParameters":1786,"id":1794,"nodeType":"Return","src":"1491:50:2"}]},"documentation":{"id":1778,"nodeType":"StructuredDocumentation","src":"1340:77:2","text":" @dev Views the underlying data as a subslice of the original data."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"asSlice","nameLocation":"1427:7:2","parameters":{"id":1782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1781,"mutability":"mutable","name":"self","nameLocation":"1452:4:2","nodeType":"VariableDeclaration","scope":1796,"src":"1435:21:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SliceIter_$1745_memory_ptr","typeString":"struct SliceIter"},"typeName":{"id":1780,"nodeType":"UserDefinedTypeName","pathNode":{"id":1779,"name":"SliceIter","nameLocations":["1435:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":1745,"src":"1435:9:2"},"referencedDeclaration":1745,"src":"1435:9:2","typeDescriptions":{"typeIdentifier":"t_struct$_SliceIter_$1745_storage_ptr","typeString":"struct SliceIter"}},"visibility":"internal"}],"src":"1434:23:2"},"returnParameters":{"id":1786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1785,"mutability":"mutable","name":"slice","nameLocation":"1478:5:2","nodeType":"VariableDeclaration","scope":1796,"src":"1472:11:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":1784,"nodeType":"UserDefinedTypeName","pathNode":{"id":1783,"name":"Slice","nameLocations":["1472:5:2"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"1472:5:2"},"referencedDeclaration":74,"src":"1472:5:2","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"1471:13:2"},"scope":1931,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1809,"nodeType":"FunctionDefinition","src":"1618:84:2","nodes":[],"body":{"id":1808,"nodeType":"Block","src":"1677:25:2","nodes":[],"statements":[{"expression":{"expression":{"id":1805,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1800,"src":"1690:4:2","typeDescriptions":{"typeIdentifier":"t_struct$_SliceIter_$1745_memory_ptr","typeString":"struct SliceIter memory"}},"id":1806,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1695:4:2","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":1742,"src":"1690:9:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1804,"id":1807,"nodeType":"Return","src":"1683:16:2"}]},"documentation":{"id":1797,"nodeType":"StructuredDocumentation","src":"1546:71:2","text":" @dev Returns the pointer to the start of an in-memory slice."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"ptr","nameLocation":"1627:3:2","parameters":{"id":1801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1800,"mutability":"mutable","name":"self","nameLocation":"1648:4:2","nodeType":"VariableDeclaration","scope":1809,"src":"1631:21:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SliceIter_$1745_memory_ptr","typeString":"struct SliceIter"},"typeName":{"id":1799,"nodeType":"UserDefinedTypeName","pathNode":{"id":1798,"name":"SliceIter","nameLocations":["1631:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":1745,"src":"1631:9:2"},"referencedDeclaration":1745,"src":"1631:9:2","typeDescriptions":{"typeIdentifier":"t_struct$_SliceIter_$1745_storage_ptr","typeString":"struct SliceIter"}},"visibility":"internal"}],"src":"1630:23:2"},"returnParameters":{"id":1804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1803,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1809,"src":"1668:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1802,"name":"uint256","nodeType":"ElementaryTypeName","src":"1668:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1667:9:2"},"scope":1931,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1822,"nodeType":"FunctionDefinition","src":"1749:84:2","nodes":[],"body":{"id":1821,"nodeType":"Block","src":"1808:25:2","nodes":[],"statements":[{"expression":{"expression":{"id":1818,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1813,"src":"1821:4:2","typeDescriptions":{"typeIdentifier":"t_struct$_SliceIter_$1745_memory_ptr","typeString":"struct SliceIter memory"}},"id":1819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1826:4:2","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":1744,"src":"1821:9:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1817,"id":1820,"nodeType":"Return","src":"1814:16:2"}]},"documentation":{"id":1810,"nodeType":"StructuredDocumentation","src":"1704:44:2","text":" @dev Returns the length in bytes."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"len","nameLocation":"1758:3:2","parameters":{"id":1814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1813,"mutability":"mutable","name":"self","nameLocation":"1779:4:2","nodeType":"VariableDeclaration","scope":1822,"src":"1762:21:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SliceIter_$1745_memory_ptr","typeString":"struct SliceIter"},"typeName":{"id":1812,"nodeType":"UserDefinedTypeName","pathNode":{"id":1811,"name":"SliceIter","nameLocations":["1762:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":1745,"src":"1762:9:2"},"referencedDeclaration":1745,"src":"1762:9:2","typeDescriptions":{"typeIdentifier":"t_struct$_SliceIter_$1745_storage_ptr","typeString":"struct SliceIter"}},"visibility":"internal"}],"src":"1761:23:2"},"returnParameters":{"id":1817,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1816,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1822,"src":"1799:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1815,"name":"uint256","nodeType":"ElementaryTypeName","src":"1799:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1798:9:2"},"scope":1931,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1837,"nodeType":"FunctionDefinition","src":"1890:90:2","nodes":[],"body":{"id":1836,"nodeType":"Block","src":"1950:30:2","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1831,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1826,"src":"1963:4:2","typeDescriptions":{"typeIdentifier":"t_struct$_SliceIter_$1745_memory_ptr","typeString":"struct SliceIter memory"}},"id":1832,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1968:4:2","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":1744,"src":"1963:9:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1976:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1963:14:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1830,"id":1835,"nodeType":"Return","src":"1956:21:2"}]},"documentation":{"id":1823,"nodeType":"StructuredDocumentation","src":"1835:54:2","text":" @dev Returns true if the iterator is empty."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"isEmpty","nameLocation":"1899:7:2","parameters":{"id":1827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1826,"mutability":"mutable","name":"self","nameLocation":"1924:4:2","nodeType":"VariableDeclaration","scope":1837,"src":"1907:21:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SliceIter_$1745_memory_ptr","typeString":"struct SliceIter"},"typeName":{"id":1825,"nodeType":"UserDefinedTypeName","pathNode":{"id":1824,"name":"SliceIter","nameLocations":["1907:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":1745,"src":"1907:9:2"},"referencedDeclaration":1745,"src":"1907:9:2","typeDescriptions":{"typeIdentifier":"t_struct$_SliceIter_$1745_storage_ptr","typeString":"struct SliceIter"}},"visibility":"internal"}],"src":"1906:23:2"},"returnParameters":{"id":1830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1829,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1837,"src":"1944:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1828,"name":"bool","nodeType":"ElementaryTypeName","src":"1944:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1943:6:2"},"scope":1931,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1885,"nodeType":"FunctionDefinition","src":"2072:413:2","nodes":[],"body":{"id":1884,"nodeType":"Block","src":"2136:349:2","nodes":[],"statements":[{"assignments":[1847],"declarations":[{"constant":false,"id":1847,"mutability":"mutable","name":"selfPtr","nameLocation":"2150:7:2","nodeType":"VariableDeclaration","scope":1884,"src":"2142:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1846,"name":"uint256","nodeType":"ElementaryTypeName","src":"2142:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1850,"initialValue":{"expression":{"id":1848,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1841,"src":"2160:4:2","typeDescriptions":{"typeIdentifier":"t_struct$_SliceIter_$1745_memory_ptr","typeString":"struct SliceIter memory"}},"id":1849,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2165:4:2","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":1742,"src":"2160:9:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2142:27:2"},{"assignments":[1852],"declarations":[{"constant":false,"id":1852,"mutability":"mutable","name":"selfLen","nameLocation":"2183:7:2","nodeType":"VariableDeclaration","scope":1884,"src":"2175:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1851,"name":"uint256","nodeType":"ElementaryTypeName","src":"2175:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1855,"initialValue":{"expression":{"id":1853,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1841,"src":"2193:4:2","typeDescriptions":{"typeIdentifier":"t_struct$_SliceIter_$1745_memory_ptr","typeString":"struct SliceIter memory"}},"id":1854,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2198:4:2","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":1744,"src":"2193:9:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2175:27:2"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1856,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1852,"src":"2212:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2223:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2212:12:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1862,"nodeType":"IfStatement","src":"2208:51:2","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1859,"name":"SliceIter__StopIteration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1747,"src":"2233:24:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2233:26:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1861,"nodeType":"RevertStatement","src":"2226:33:2"}},{"id":1879,"nodeType":"UncheckedBlock","src":"2339:115:2","statements":[{"expression":{"id":1869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1863,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1841,"src":"2391:4:2","typeDescriptions":{"typeIdentifier":"t_struct$_SliceIter_$1745_memory_ptr","typeString":"struct SliceIter memory"}},"id":1865,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2396:4:2","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":1742,"src":"2391:9:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1866,"name":"selfPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1847,"src":"2403:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2413:1:2","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2403:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2391:23:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1870,"nodeType":"ExpressionStatement","src":"2391:23:2"},{"expression":{"id":1877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1871,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1841,"src":"2424:4:2","typeDescriptions":{"typeIdentifier":"t_struct$_SliceIter_$1745_memory_ptr","typeString":"struct SliceIter memory"}},"id":1873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2429:4:2","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":1744,"src":"2424:9:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1874,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1852,"src":"2436:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2446:1:2","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2436:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2424:23:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1878,"nodeType":"ExpressionStatement","src":"2424:23:2"}]},{"expression":{"arguments":[{"id":1881,"name":"selfPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1847,"src":"2474:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1880,"name":"mload8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4426,"src":"2467:6:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint8_$","typeString":"function (uint256) pure returns (uint8)"}},"id":1882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2467:15:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":1845,"id":1883,"nodeType":"Return","src":"2460:22:2"}]},"documentation":{"id":1838,"nodeType":"StructuredDocumentation","src":"1982:89:2","text":" @dev Advances the iterator and returns the next value.\n Reverts if len == 0."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"next","nameLocation":"2081:4:2","parameters":{"id":1842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1841,"mutability":"mutable","name":"self","nameLocation":"2103:4:2","nodeType":"VariableDeclaration","scope":1885,"src":"2086:21:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SliceIter_$1745_memory_ptr","typeString":"struct SliceIter"},"typeName":{"id":1840,"nodeType":"UserDefinedTypeName","pathNode":{"id":1839,"name":"SliceIter","nameLocations":["2086:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":1745,"src":"2086:9:2"},"referencedDeclaration":1745,"src":"2086:9:2","typeDescriptions":{"typeIdentifier":"t_struct$_SliceIter_$1745_storage_ptr","typeString":"struct SliceIter"}},"visibility":"internal"}],"src":"2085:23:2"},"returnParameters":{"id":1845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1844,"mutability":"mutable","name":"value","nameLocation":"2129:5:2","nodeType":"VariableDeclaration","scope":1885,"src":"2123:11:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1843,"name":"uint8","nodeType":"ElementaryTypeName","src":"2123:5:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2122:13:2"},"scope":1931,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1930,"nodeType":"FunctionDefinition","src":"2591:393:2","nodes":[],"body":{"id":1929,"nodeType":"Block","src":"2659:325:2","nodes":[],"statements":[{"assignments":[1895],"declarations":[{"constant":false,"id":1895,"mutability":"mutable","name":"selfPtr","nameLocation":"2673:7:2","nodeType":"VariableDeclaration","scope":1929,"src":"2665:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1894,"name":"uint256","nodeType":"ElementaryTypeName","src":"2665:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1898,"initialValue":{"expression":{"id":1896,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1889,"src":"2683:4:2","typeDescriptions":{"typeIdentifier":"t_struct$_SliceIter_$1745_memory_ptr","typeString":"struct SliceIter memory"}},"id":1897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2688:4:2","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":1742,"src":"2683:9:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2665:27:2"},{"assignments":[1900],"declarations":[{"constant":false,"id":1900,"mutability":"mutable","name":"selfLen","nameLocation":"2706:7:2","nodeType":"VariableDeclaration","scope":1929,"src":"2698:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1899,"name":"uint256","nodeType":"ElementaryTypeName","src":"2698:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1903,"initialValue":{"expression":{"id":1901,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1889,"src":"2716:4:2","typeDescriptions":{"typeIdentifier":"t_struct$_SliceIter_$1745_memory_ptr","typeString":"struct SliceIter memory"}},"id":1902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2721:4:2","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":1744,"src":"2716:9:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2698:27:2"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1904,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1900,"src":"2735:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2746:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2735:12:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1910,"nodeType":"IfStatement","src":"2731:51:2","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1907,"name":"SliceIter__StopIteration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1747,"src":"2756:24:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2756:26:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1909,"nodeType":"RevertStatement","src":"2749:33:2"}},{"id":1928,"nodeType":"UncheckedBlock","src":"2851:131:2","statements":[{"expression":{"id":1917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1911,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1889,"src":"2903:4:2","typeDescriptions":{"typeIdentifier":"t_struct$_SliceIter_$1745_memory_ptr","typeString":"struct SliceIter memory"}},"id":1913,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2908:4:2","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":1744,"src":"2903:9:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1914,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1900,"src":"2915:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2925:1:2","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2915:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2903:23:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1918,"nodeType":"ExpressionStatement","src":"2903:23:2"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1920,"name":"selfPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1895,"src":"2951:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1921,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1900,"src":"2962:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2972:1:2","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2962:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1924,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2961:13:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2951:23:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1919,"name":"mload8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4426,"src":"2944:6:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint8_$","typeString":"function (uint256) pure returns (uint8)"}},"id":1926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2944:31:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":1893,"id":1927,"nodeType":"Return","src":"2937:38:2"}]}]},"documentation":{"id":1886,"nodeType":"StructuredDocumentation","src":"2487:103:2","text":" @dev Advances the iterator from the back and returns the next value.\n Reverts if len == 0."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"nextBack","nameLocation":"2600:8:2","parameters":{"id":1890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1889,"mutability":"mutable","name":"self","nameLocation":"2626:4:2","nodeType":"VariableDeclaration","scope":1930,"src":"2609:21:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SliceIter_$1745_memory_ptr","typeString":"struct SliceIter"},"typeName":{"id":1888,"nodeType":"UserDefinedTypeName","pathNode":{"id":1887,"name":"SliceIter","nameLocations":["2609:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":1745,"src":"2609:9:2"},"referencedDeclaration":1745,"src":"2609:9:2","typeDescriptions":{"typeIdentifier":"t_struct$_SliceIter_$1745_storage_ptr","typeString":"struct SliceIter"}},"visibility":"internal"}],"src":"2608:23:2"},"returnParameters":{"id":1893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1892,"mutability":"mutable","name":"value","nameLocation":"2652:5:2","nodeType":"VariableDeclaration","scope":1930,"src":"2646:11:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1891,"name":"uint8","nodeType":"ElementaryTypeName","src":"2646:5:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2645:13:2"},"scope":1931,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"license":"MIT"},"id":2}