{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220423a939b55a31905211bb9f4656baf5887b8e59d52f502d8fadc42aeeb6a74e064736f6c63430008180033","sourceMap":"867:1151:1:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;867:1151:1;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220423a939b55a31905211bb9f4656baf5887b8e59d52f502d8fadc42aeeb6a74e064736f6c63430008180033","sourceMap":"867:1151:1:-: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/Slice.sol\":\"Slice__\"},\"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/Slice.sol":"Slice__"},"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/Slice.sol","id":1733,"exportedSymbols":{"PackPtrLen":[4412],"Slice":[74],"SliceIter":[1745],"SliceIter__":[1768],"Slice__":[146],"Slice__LengthMismatch":[78],"Slice__OutOfBounds":[76],"add":[400],"cmp":[715],"contains":[1490],"copyFromSlice":[564],"copyFromValue":[598],"copyFromValueRightAligned":[647],"endsWith":[1598],"eq":[752],"find":[1315],"first":[925],"get":[900],"getAfter":[1127],"getAfterStrict":[1166],"getBefore":[1088],"getSubslice":[1054],"gt":[850],"gte":[870],"isEmpty":[253],"iter":[1732],"join":[528],"keccak":[342],"last":[960],"leftMask":[4592],"len":[233],"lt":[810],"lte":[830],"memchr":[4815],"memcmp":[4555],"memeq":[4569],"memmove":[4493],"memrchr":[4938],"mload8":[4426],"mstoreN":[4481],"ne":[790],"ptr":[215],"rfind":[1466],"splitAt":[1011],"startsWith":[1543],"stripPrefix":[1652],"stripSuffix":[1716],"toBytes":[288],"toBytes32":[319],"toSlice":[161]},"nodeType":"SourceUnit","src":"33:18583:1","nodes":[{"id":57,"nodeType":"PragmaDirective","src":"33:24:1","nodes":[],"literals":["solidity","^","0.8",".17"]},{"id":64,"nodeType":"ImportDirective","src":"59:84:1","nodes":[],"absolutePath":"node_modules/@dk1a/solidity-stringutils/src/utils/mem.sol","file":"./utils/mem.sol","nameLocation":"-1:-1:-1","scope":1733,"sourceUnit":4593,"symbolAliases":[{"foreign":{"id":58,"name":"mload8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4426,"src":"68:6:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":59,"name":"memmove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4493,"src":"76:7:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":60,"name":"memcmp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4555,"src":"85:6:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":61,"name":"memeq","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4569,"src":"93:5:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":62,"name":"mstoreN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4481,"src":"100:7:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":63,"name":"leftMask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4592,"src":"109:8:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67,"nodeType":"ImportDirective","src":"144:53:1","nodes":[],"absolutePath":"node_modules/@dk1a/solidity-stringutils/src/utils/memchr.sol","file":"./utils/memchr.sol","nameLocation":"-1:-1:-1","scope":1733,"sourceUnit":5205,"symbolAliases":[{"foreign":{"id":65,"name":"memchr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4815,"src":"153:6:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":66,"name":"memrchr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4938,"src":"161:7:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":69,"nodeType":"ImportDirective","src":"198:52:1","nodes":[],"absolutePath":"node_modules/@dk1a/solidity-stringutils/src/utils/PackPtrLen.sol","file":"./utils/PackPtrLen.sol","nameLocation":"-1:-1:-1","scope":1733,"sourceUnit":4413,"symbolAliases":[{"foreign":{"id":68,"name":"PackPtrLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4412,"src":"207:10:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72,"nodeType":"ImportDirective","src":"252:57:1","nodes":[],"absolutePath":"node_modules/@dk1a/solidity-stringutils/src/SliceIter.sol","file":"./SliceIter.sol","nameLocation":"-1:-1:-1","scope":1733,"sourceUnit":1931,"symbolAliases":[{"foreign":{"id":70,"name":"SliceIter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1745,"src":"261:9:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":71,"name":"SliceIter__","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1768,"src":"272:11:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74,"nodeType":"UserDefinedValueTypeDefinition","src":"380:22:1","nodes":[],"canonicalName":"Slice","name":"Slice","nameLocation":"385:5:1","underlyingType":{"id":73,"name":"uint256","nodeType":"ElementaryTypeName","src":"394:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":76,"nodeType":"ErrorDefinition","src":"605:27:1","nodes":[],"errorSelector":"65f4e9df","name":"Slice__OutOfBounds","nameLocation":"611:18:1","parameters":{"id":75,"nodeType":"ParameterList","parameters":[],"src":"629:2:1"}},{"id":78,"nodeType":"ErrorDefinition","src":"633:30:1","nodes":[],"errorSelector":"77a9521c","name":"Slice__LengthMismatch","nameLocation":"639:21:1","parameters":{"id":77,"nodeType":"ParameterList","parameters":[],"src":"660:2:1"}},{"id":146,"nodeType":"ContractDefinition","src":"867:1151:1","nodes":[{"id":98,"nodeType":"FunctionDefinition","src":"1060:202:1","nodes":[],"body":{"id":97,"nodeType":"Block","src":"1126:136:1","nodes":[],"statements":[{"assignments":[88],"declarations":[{"constant":false,"id":88,"mutability":"mutable","name":"_ptr","nameLocation":"1144:4:1","nodeType":"VariableDeclaration","scope":97,"src":"1136:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87,"name":"uint256","nodeType":"ElementaryTypeName","src":"1136:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":89,"nodeType":"VariableDeclarationStatement","src":"1136:12:1"},{"AST":{"nativeSrc":"1167:44:1","nodeType":"YulBlock","src":"1167:44:1","statements":[{"nativeSrc":"1181:20:1","nodeType":"YulAssignment","src":"1181:20:1","value":{"arguments":[{"name":"b","nativeSrc":"1193:1:1","nodeType":"YulIdentifier","src":"1193:1:1"},{"kind":"number","nativeSrc":"1196:4:1","nodeType":"YulLiteral","src":"1196:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1189:3:1","nodeType":"YulIdentifier","src":"1189:3:1"},"nativeSrc":"1189:12:1","nodeType":"YulFunctionCall","src":"1189:12:1"},"variableNames":[{"name":"_ptr","nativeSrc":"1181:4:1","nodeType":"YulIdentifier","src":"1181:4:1"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":88,"isOffset":false,"isSlot":false,"src":"1181:4:1","valueSize":1},{"declaration":81,"isOffset":false,"isSlot":false,"src":"1193:1:1","valueSize":1}],"id":90,"nodeType":"InlineAssembly","src":"1158:53:1"},{"expression":{"arguments":[{"id":92,"name":"_ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88,"src":"1240:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":93,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81,"src":"1246:1:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":94,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1248:6:1","memberName":"length","nodeType":"MemberAccess","src":"1246:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":91,"name":"fromRawParts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":119,"src":"1227:12:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_userDefinedValueType$_Slice_$74_$","typeString":"function (uint256,uint256) pure returns (Slice)"}},"id":95,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1227:28:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"functionReturnParameters":86,"id":96,"nodeType":"Return","src":"1220:35:1"}]},"documentation":{"id":79,"nodeType":"StructuredDocumentation","src":"889:166:1","text":" @dev Converts a `bytes` to a `Slice`.\n The bytes are not copied.\n `Slice` points to the memory of `bytes`, right after the length word."},"implemented":true,"kind":"function","modifiers":[],"name":"from","nameLocation":"1069:4:1","parameters":{"id":82,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81,"mutability":"mutable","name":"b","nameLocation":"1087:1:1","nodeType":"VariableDeclaration","scope":98,"src":"1074:14:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":80,"name":"bytes","nodeType":"ElementaryTypeName","src":"1074:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1073:16:1"},"returnParameters":{"id":86,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85,"mutability":"mutable","name":"slice","nameLocation":"1119:5:1","nodeType":"VariableDeclaration","scope":98,"src":"1113:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":84,"nodeType":"UserDefinedTypeName","pathNode":{"id":83,"name":"Slice","nameLocations":["1113:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"1113:5:1"},"referencedDeclaration":74,"src":"1113:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"1112:13:1"},"scope":146,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":119,"nodeType":"FunctionDefinition","src":"1467:149:1","nodes":[],"body":{"id":118,"nodeType":"Block","src":"1553:63:1","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":113,"name":"_ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101,"src":"1597:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":114,"name":"_len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103,"src":"1603:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":111,"name":"PackPtrLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4412,"src":"1581:10:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PackPtrLen_$4412_$","typeString":"type(library PackPtrLen)"}},"id":112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1592:4:1","memberName":"pack","nodeType":"MemberAccess","referencedDeclaration":4349,"src":"1581:15:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1581:27:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":109,"name":"Slice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74,"src":"1570:5:1","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Slice_$74_$","typeString":"type(Slice)"}},"id":110,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1576:4:1","memberName":"wrap","nodeType":"MemberAccess","src":"1570:10:1","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint256_$returns$_t_userDefinedValueType$_Slice_$74_$","typeString":"function (uint256) pure returns (Slice)"}},"id":116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1570:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"functionReturnParameters":108,"id":117,"nodeType":"Return","src":"1563:46:1"}]},"documentation":{"id":99,"nodeType":"StructuredDocumentation","src":"1268:194:1","text":" @dev Creates a new `Slice` directly from length and memory pointer.\n Note that the caller MUST guarantee memory-safety.\n This method is primarily for internal use."},"implemented":true,"kind":"function","modifiers":[],"name":"fromRawParts","nameLocation":"1476:12:1","parameters":{"id":104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101,"mutability":"mutable","name":"_ptr","nameLocation":"1497:4:1","nodeType":"VariableDeclaration","scope":119,"src":"1489:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":100,"name":"uint256","nodeType":"ElementaryTypeName","src":"1489:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":103,"mutability":"mutable","name":"_len","nameLocation":"1511:4:1","nodeType":"VariableDeclaration","scope":119,"src":"1503:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":102,"name":"uint256","nodeType":"ElementaryTypeName","src":"1503:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1488:28:1"},"returnParameters":{"id":108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":107,"mutability":"mutable","name":"slice","nameLocation":"1546:5:1","nodeType":"VariableDeclaration","scope":119,"src":"1540:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":106,"nodeType":"UserDefinedTypeName","pathNode":{"id":105,"name":"Slice","nameLocations":["1540:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"1540:5:1"},"referencedDeclaration":74,"src":"1540:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"1539:13:1"},"scope":146,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":145,"nodeType":"FunctionDefinition","src":"1827:189:1","nodes":[],"body":{"id":144,"nodeType":"Block","src":"1914:102:1","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":132,"name":"_ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122,"src":"1956:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1964:3:1","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"1956:11:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":135,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1955:13:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":136,"name":"_len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":124,"src":"1972:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"expression":{"id":137,"name":"PackPtrLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4412,"src":"1979:10:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PackPtrLen_$4412_$","typeString":"type(library PackPtrLen)"}},"id":138,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1990:8:1","memberName":"MASK_LEN","nodeType":"MemberAccess","referencedDeclaration":4315,"src":"1979:19:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1972:26:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":140,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1971:28:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1955:44:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":130,"name":"Slice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74,"src":"1931:5:1","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Slice_$74_$","typeString":"type(Slice)"}},"id":131,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1937:4:1","memberName":"wrap","nodeType":"MemberAccess","src":"1931:10:1","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint256_$returns$_t_userDefinedValueType$_Slice_$74_$","typeString":"function (uint256) pure returns (Slice)"}},"id":142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1931:78:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"functionReturnParameters":129,"id":143,"nodeType":"Return","src":"1924:85:1"}]},"documentation":{"id":120,"nodeType":"StructuredDocumentation","src":"1622:200:1","text":" @dev Like `fromRawParts`, but does NO validity checks.\n _ptr and _len MUST fit into uint128.\n The caller MUST guarantee memory-safety.\n Primarily for internal use."},"implemented":true,"kind":"function","modifiers":[],"name":"fromUnchecked","nameLocation":"1836:13:1","parameters":{"id":125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":122,"mutability":"mutable","name":"_ptr","nameLocation":"1858:4:1","nodeType":"VariableDeclaration","scope":145,"src":"1850:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":121,"name":"uint256","nodeType":"ElementaryTypeName","src":"1850:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":124,"mutability":"mutable","name":"_len","nameLocation":"1872:4:1","nodeType":"VariableDeclaration","scope":145,"src":"1864:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":123,"name":"uint256","nodeType":"ElementaryTypeName","src":"1864:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1849:28:1"},"returnParameters":{"id":129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":128,"mutability":"mutable","name":"slice","nameLocation":"1907:5:1","nodeType":"VariableDeclaration","scope":145,"src":"1901:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":127,"nodeType":"UserDefinedTypeName","pathNode":{"id":126,"name":"Slice","nameLocations":["1901:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"1901:5:1"},"referencedDeclaration":74,"src":"1901:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"1900:13:1"},"scope":146,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Slice__","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[146],"name":"Slice__","nameLocation":"875:7:1","scope":1733,"usedErrors":[],"usedEvents":[]},{"id":161,"nodeType":"FunctionDefinition","src":"2188:91:1","nodes":[],"body":{"id":160,"nodeType":"Block","src":"2248:31:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":157,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":149,"src":"2274:1:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":155,"name":"Slice__","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"2261:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Slice___$146_$","typeString":"type(library Slice__)"}},"id":156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2269:4:1","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":98,"src":"2261:12:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_userDefinedValueType$_Slice_$74_$","typeString":"function (bytes memory) pure returns (Slice)"}},"id":158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2261:15:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"functionReturnParameters":154,"id":159,"nodeType":"Return","src":"2254:22:1"}]},"documentation":{"id":147,"nodeType":"StructuredDocumentation","src":"2020:167:1","text":" @dev Alternative to Slice__.from()\n Put this in your file (using for global is only for user-defined types):\n ```\n using { toSlice } for bytes;\n ```"},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"toSlice","nameLocation":"2197:7:1","parameters":{"id":150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":149,"mutability":"mutable","name":"b","nameLocation":"2218:1:1","nodeType":"VariableDeclaration","scope":161,"src":"2205:14:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":148,"name":"bytes","nodeType":"ElementaryTypeName","src":"2205:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2204:16:1"},"returnParameters":{"id":154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":153,"mutability":"mutable","name":"slice","nameLocation":"2241:5:1","nodeType":"VariableDeclaration","scope":161,"src":"2235:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":152,"nodeType":"UserDefinedTypeName","pathNode":{"id":151,"name":"Slice","nameLocations":["2235:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"2235:5:1"},"referencedDeclaration":74,"src":"2235:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"2234:13:1"},"scope":1733,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":198,"nodeType":"UsingForDirective","src":"2483:498:1","nodes":[],"functionList":[{"function":{"id":162,"name":"ptr","nameLocations":["2495:3:1"],"nodeType":"IdentifierPath","referencedDeclaration":215,"src":"2495:3:1"}},{"function":{"id":163,"name":"len","nameLocations":["2500:3:1"],"nodeType":"IdentifierPath","referencedDeclaration":233,"src":"2500:3:1"}},{"function":{"id":164,"name":"isEmpty","nameLocations":["2505:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":253,"src":"2505:7:1"}},{"function":{"id":165,"name":"toBytes","nameLocations":["2536:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":288,"src":"2536:7:1"}},{"function":{"id":166,"name":"toBytes32","nameLocations":["2545:9:1"],"nodeType":"IdentifierPath","referencedDeclaration":319,"src":"2545:9:1"}},{"function":{"id":167,"name":"keccak","nameLocations":["2560:6:1"],"nodeType":"IdentifierPath","referencedDeclaration":342,"src":"2560:6:1"}},{"function":{"id":168,"name":"add","nameLocations":["2593:3:1"],"nodeType":"IdentifierPath","referencedDeclaration":400,"src":"2593:3:1"}},{"function":{"id":169,"name":"join","nameLocations":["2598:4:1"],"nodeType":"IdentifierPath","referencedDeclaration":528,"src":"2598:4:1"}},{"function":{"id":170,"name":"copyFromSlice","nameLocations":["2620:13:1"],"nodeType":"IdentifierPath","referencedDeclaration":564,"src":"2620:13:1"}},{"function":{"id":171,"name":"copyFromValue","nameLocations":["2635:13:1"],"nodeType":"IdentifierPath","referencedDeclaration":598,"src":"2635:13:1"}},{"function":{"id":172,"name":"copyFromValueRightAligned","nameLocations":["2650:25:1"],"nodeType":"IdentifierPath","referencedDeclaration":647,"src":"2650:25:1"}},{"function":{"id":173,"name":"cmp","nameLocations":["2696:3:1"],"nodeType":"IdentifierPath","referencedDeclaration":715,"src":"2696:3:1"}},{"function":{"id":174,"name":"eq","nameLocations":["2701:2:1"],"nodeType":"IdentifierPath","referencedDeclaration":752,"src":"2701:2:1"}},{"function":{"id":175,"name":"ne","nameLocations":["2705:2:1"],"nodeType":"IdentifierPath","referencedDeclaration":790,"src":"2705:2:1"}},{"function":{"id":176,"name":"lt","nameLocations":["2709:2:1"],"nodeType":"IdentifierPath","referencedDeclaration":810,"src":"2709:2:1"}},{"function":{"id":177,"name":"lte","nameLocations":["2713:3:1"],"nodeType":"IdentifierPath","referencedDeclaration":830,"src":"2713:3:1"}},{"function":{"id":178,"name":"gt","nameLocations":["2718:2:1"],"nodeType":"IdentifierPath","referencedDeclaration":850,"src":"2718:2:1"}},{"function":{"id":179,"name":"gte","nameLocations":["2722:3:1"],"nodeType":"IdentifierPath","referencedDeclaration":870,"src":"2722:3:1"}},{"function":{"id":180,"name":"get","nameLocations":["2744:3:1"],"nodeType":"IdentifierPath","referencedDeclaration":900,"src":"2744:3:1"}},{"function":{"id":181,"name":"first","nameLocations":["2749:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":925,"src":"2749:5:1"}},{"function":{"id":182,"name":"last","nameLocations":["2756:4:1"],"nodeType":"IdentifierPath","referencedDeclaration":960,"src":"2756:4:1"}},{"function":{"id":183,"name":"splitAt","nameLocations":["2766:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":1011,"src":"2766:7:1"}},{"function":{"id":184,"name":"getSubslice","nameLocations":["2775:11:1"],"nodeType":"IdentifierPath","referencedDeclaration":1054,"src":"2775:11:1"}},{"function":{"id":185,"name":"getBefore","nameLocations":["2788:9:1"],"nodeType":"IdentifierPath","referencedDeclaration":1088,"src":"2788:9:1"}},{"function":{"id":186,"name":"getAfter","nameLocations":["2799:8:1"],"nodeType":"IdentifierPath","referencedDeclaration":1127,"src":"2799:8:1"}},{"function":{"id":187,"name":"getAfterStrict","nameLocations":["2809:14:1"],"nodeType":"IdentifierPath","referencedDeclaration":1166,"src":"2809:14:1"}},{"function":{"id":188,"name":"find","nameLocations":["2843:4:1"],"nodeType":"IdentifierPath","referencedDeclaration":1315,"src":"2843:4:1"}},{"function":{"id":189,"name":"rfind","nameLocations":["2849:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":1466,"src":"2849:5:1"}},{"function":{"id":190,"name":"contains","nameLocations":["2856:8:1"],"nodeType":"IdentifierPath","referencedDeclaration":1490,"src":"2856:8:1"}},{"function":{"id":191,"name":"startsWith","nameLocations":["2870:10:1"],"nodeType":"IdentifierPath","referencedDeclaration":1543,"src":"2870:10:1"}},{"function":{"id":192,"name":"endsWith","nameLocations":["2882:8:1"],"nodeType":"IdentifierPath","referencedDeclaration":1598,"src":"2882:8:1"}},{"function":{"id":193,"name":"stripPrefix","nameLocations":["2910:11:1"],"nodeType":"IdentifierPath","referencedDeclaration":1652,"src":"2910:11:1"}},{"function":{"id":194,"name":"stripSuffix","nameLocations":["2923:11:1"],"nodeType":"IdentifierPath","referencedDeclaration":1716,"src":"2923:11:1"}},{"function":{"id":195,"name":"iter","nameLocations":["2957:4:1"],"nodeType":"IdentifierPath","referencedDeclaration":1732,"src":"2957:4:1"}}],"global":true,"typeName":{"id":197,"nodeType":"UserDefinedTypeName","pathNode":{"id":196,"name":"Slice","nameLocations":["2968:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"2968:5:1"},"referencedDeclaration":74,"src":"2968:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}}},{"id":215,"nodeType":"FunctionDefinition","src":"3055:89:1","nodes":[],"body":{"id":214,"nodeType":"Block","src":"3103:41:1","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":209,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":202,"src":"3129:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}],"expression":{"id":207,"name":"Slice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74,"src":"3116:5:1","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Slice_$74_$","typeString":"type(Slice)"}},"id":208,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3122:6:1","memberName":"unwrap","nodeType":"MemberAccess","src":"3116:12:1","typeDescriptions":{"typeIdentifier":"t_function_unwrap_pure$_t_userDefinedValueType$_Slice_$74_$returns$_t_uint256_$","typeString":"function (Slice) pure returns (uint256)"}},"id":210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3116:18:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3138:3:1","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"3116:25:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":206,"id":213,"nodeType":"Return","src":"3109:32:1"}]},"documentation":{"id":199,"nodeType":"StructuredDocumentation","src":"2983:71:1","text":" @dev Returns the pointer to the start of an in-memory slice."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"ptr","nameLocation":"3064:3:1","parameters":{"id":203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":202,"mutability":"mutable","name":"self","nameLocation":"3074:4:1","nodeType":"VariableDeclaration","scope":215,"src":"3068:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":201,"nodeType":"UserDefinedTypeName","pathNode":{"id":200,"name":"Slice","nameLocations":["3068:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"3068:5:1"},"referencedDeclaration":74,"src":"3068:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"3067:12:1"},"returnParameters":{"id":206,"nodeType":"ParameterList","parameters":[{"constant":false,"id":205,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":215,"src":"3094:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":204,"name":"uint256","nodeType":"ElementaryTypeName","src":"3094:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3093:9:1"},"scope":1733,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":233,"nodeType":"FunctionDefinition","src":"3191:104:1","nodes":[],"body":{"id":232,"nodeType":"Block","src":"3239:56:1","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":226,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":219,"src":"3265:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}],"expression":{"id":224,"name":"Slice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74,"src":"3252:5:1","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Slice_$74_$","typeString":"type(Slice)"}},"id":225,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3258:6:1","memberName":"unwrap","nodeType":"MemberAccess","src":"3252:12:1","typeDescriptions":{"typeIdentifier":"t_function_unwrap_pure$_t_userDefinedValueType$_Slice_$74_$returns$_t_uint256_$","typeString":"function (Slice) pure returns (uint256)"}},"id":227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3252:18:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"expression":{"id":228,"name":"PackPtrLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4412,"src":"3273:10:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PackPtrLen_$4412_$","typeString":"type(library PackPtrLen)"}},"id":229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3284:8:1","memberName":"MASK_LEN","nodeType":"MemberAccess","referencedDeclaration":4315,"src":"3273:19:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3252:40:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":223,"id":231,"nodeType":"Return","src":"3245:47:1"}]},"documentation":{"id":216,"nodeType":"StructuredDocumentation","src":"3146:44:1","text":" @dev Returns the length in bytes."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"len","nameLocation":"3200:3:1","parameters":{"id":220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":219,"mutability":"mutable","name":"self","nameLocation":"3210:4:1","nodeType":"VariableDeclaration","scope":233,"src":"3204:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":218,"nodeType":"UserDefinedTypeName","pathNode":{"id":217,"name":"Slice","nameLocations":["3204:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"3204:5:1"},"referencedDeclaration":74,"src":"3204:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"3203:12:1"},"returnParameters":{"id":223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":222,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":233,"src":"3230:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":221,"name":"uint256","nodeType":"ElementaryTypeName","src":"3230:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3229:9:1"},"scope":1733,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":253,"nodeType":"FunctionDefinition","src":"3358:110:1","nodes":[],"body":{"id":252,"nodeType":"Block","src":"3407:61:1","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":244,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":237,"src":"3433:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}],"expression":{"id":242,"name":"Slice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74,"src":"3420:5:1","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Slice_$74_$","typeString":"type(Slice)"}},"id":243,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3426:6:1","memberName":"unwrap","nodeType":"MemberAccess","src":"3420:12:1","typeDescriptions":{"typeIdentifier":"t_function_unwrap_pure$_t_userDefinedValueType$_Slice_$74_$returns$_t_uint256_$","typeString":"function (Slice) pure returns (uint256)"}},"id":245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3420:18:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"expression":{"id":246,"name":"PackPtrLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4412,"src":"3441:10:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PackPtrLen_$4412_$","typeString":"type(library PackPtrLen)"}},"id":247,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3452:8:1","memberName":"MASK_LEN","nodeType":"MemberAccess","referencedDeclaration":4315,"src":"3441:19:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3420:40:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3464:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3420:45:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":241,"id":251,"nodeType":"Return","src":"3413:52:1"}]},"documentation":{"id":234,"nodeType":"StructuredDocumentation","src":"3297:60:1","text":" @dev Returns true if the slice has a length of 0."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"isEmpty","nameLocation":"3367:7:1","parameters":{"id":238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":237,"mutability":"mutable","name":"self","nameLocation":"3381:4:1","nodeType":"VariableDeclaration","scope":253,"src":"3375:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":236,"nodeType":"UserDefinedTypeName","pathNode":{"id":235,"name":"Slice","nameLocations":["3375:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"3375:5:1"},"referencedDeclaration":74,"src":"3375:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"3374:12:1"},"returnParameters":{"id":241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":240,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":253,"src":"3401:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":239,"name":"bool","nodeType":"ElementaryTypeName","src":"3401:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3400:6:1"},"scope":1733,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":288,"nodeType":"FunctionDefinition","src":"3569:219:1","nodes":[],"body":{"id":287,"nodeType":"Block","src":"3628:160:1","nodes":[],"statements":[{"expression":{"id":269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":262,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"3634:1:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":265,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":257,"src":"3648:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3653:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"3648:8:1","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":267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3648:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3638:9:1","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":263,"name":"bytes","nodeType":"ElementaryTypeName","src":"3642:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3638:21:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3634:25:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":270,"nodeType":"ExpressionStatement","src":"3634:25:1"},{"assignments":[272],"declarations":[{"constant":false,"id":272,"mutability":"mutable","name":"bPtr","nameLocation":"3673:4:1","nodeType":"VariableDeclaration","scope":287,"src":"3665:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":271,"name":"uint256","nodeType":"ElementaryTypeName","src":"3665:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":273,"nodeType":"VariableDeclarationStatement","src":"3665:12:1"},{"AST":{"nativeSrc":"3692:36:1","nodeType":"YulBlock","src":"3692:36:1","statements":[{"nativeSrc":"3702:20:1","nodeType":"YulAssignment","src":"3702:20:1","value":{"arguments":[{"name":"b","nativeSrc":"3714:1:1","nodeType":"YulIdentifier","src":"3714:1:1"},{"kind":"number","nativeSrc":"3717:4:1","nodeType":"YulLiteral","src":"3717:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3710:3:1","nodeType":"YulIdentifier","src":"3710:3:1"},"nativeSrc":"3710:12:1","nodeType":"YulFunctionCall","src":"3710:12:1"},"variableNames":[{"name":"bPtr","nativeSrc":"3702:4:1","nodeType":"YulIdentifier","src":"3702:4:1"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":260,"isOffset":false,"isSlot":false,"src":"3714:1:1","valueSize":1},{"declaration":272,"isOffset":false,"isSlot":false,"src":"3702:4:1","valueSize":1}],"id":274,"nodeType":"InlineAssembly","src":"3683:45:1"},{"expression":{"arguments":[{"id":276,"name":"bPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":272,"src":"3742:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":277,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":257,"src":"3748:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3753:3:1","memberName":"ptr","nodeType":"MemberAccess","referencedDeclaration":215,"src":"3748:8:1","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":279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3748:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":280,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":257,"src":"3760:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3765:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"3760:8:1","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":282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3760:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":275,"name":"memmove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4493,"src":"3734:7:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) view"}},"id":283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3734:37:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":284,"nodeType":"ExpressionStatement","src":"3734:37:1"},{"expression":{"id":285,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"3784:1:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":261,"id":286,"nodeType":"Return","src":"3777:8:1"}]},"documentation":{"id":254,"nodeType":"StructuredDocumentation","src":"3470:98:1","text":" @dev Copies `Slice` to a new `bytes`.\n The `Slice` will NOT point to the new `bytes`."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"toBytes","nameLocation":"3578:7:1","parameters":{"id":258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":257,"mutability":"mutable","name":"self","nameLocation":"3592:4:1","nodeType":"VariableDeclaration","scope":288,"src":"3586:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":256,"nodeType":"UserDefinedTypeName","pathNode":{"id":255,"name":"Slice","nameLocations":["3586:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"3586:5:1"},"referencedDeclaration":74,"src":"3586:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"3585:12:1"},"returnParameters":{"id":261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":260,"mutability":"mutable","name":"b","nameLocation":"3625:1:1","nodeType":"VariableDeclaration","scope":288,"src":"3612:14:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":259,"name":"bytes","nodeType":"ElementaryTypeName","src":"3612:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3611:16:1"},"scope":1733,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":319,"nodeType":"FunctionDefinition","src":"3957:319:1","nodes":[],"body":{"id":318,"nodeType":"Block","src":"4013:263:1","nodes":[],"statements":[{"assignments":[298],"declarations":[{"constant":false,"id":298,"mutability":"mutable","name":"selfPtr","nameLocation":"4027:7:1","nodeType":"VariableDeclaration","scope":318,"src":"4019:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":297,"name":"uint256","nodeType":"ElementaryTypeName","src":"4019:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":302,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":299,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":292,"src":"4037:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4042:3:1","memberName":"ptr","nodeType":"MemberAccess","referencedDeclaration":215,"src":"4037:8:1","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":301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4037:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4019:28:1"},{"assignments":[304],"declarations":[{"constant":false,"id":304,"mutability":"mutable","name":"selfLen","nameLocation":"4101:7:1","nodeType":"VariableDeclaration","scope":318,"src":"4093:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":303,"name":"uint256","nodeType":"ElementaryTypeName","src":"4093:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":308,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":305,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":292,"src":"4111:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4116:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"4111:8:1","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":307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4111:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4093:28:1"},{"assignments":[310],"declarations":[{"constant":false,"id":310,"mutability":"mutable","name":"mask","nameLocation":"4135:4:1","nodeType":"VariableDeclaration","scope":318,"src":"4127:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":309,"name":"uint256","nodeType":"ElementaryTypeName","src":"4127:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":314,"initialValue":{"arguments":[{"id":312,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":304,"src":"4151:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":311,"name":"leftMask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4592,"src":"4142:8:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4142:17:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4127:32:1"},{"AST":{"nativeSrc":"4214:46:1","nodeType":"YulBlock","src":"4214:46:1","statements":[{"nativeSrc":"4224:30:1","nodeType":"YulAssignment","src":"4224:30:1","value":{"arguments":[{"arguments":[{"name":"selfPtr","nativeSrc":"4239:7:1","nodeType":"YulIdentifier","src":"4239:7:1"}],"functionName":{"name":"mload","nativeSrc":"4233:5:1","nodeType":"YulIdentifier","src":"4233:5:1"},"nativeSrc":"4233:14:1","nodeType":"YulFunctionCall","src":"4233:14:1"},{"name":"mask","nativeSrc":"4249:4:1","nodeType":"YulIdentifier","src":"4249:4:1"}],"functionName":{"name":"and","nativeSrc":"4229:3:1","nodeType":"YulIdentifier","src":"4229:3:1"},"nativeSrc":"4229:25:1","nodeType":"YulFunctionCall","src":"4229:25:1"},"variableNames":[{"name":"b","nativeSrc":"4224:1:1","nodeType":"YulIdentifier","src":"4224:1:1"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":295,"isOffset":false,"isSlot":false,"src":"4224:1:1","valueSize":1},{"declaration":310,"isOffset":false,"isSlot":false,"src":"4249:4:1","valueSize":1},{"declaration":298,"isOffset":false,"isSlot":false,"src":"4239:7:1","valueSize":1}],"id":315,"nodeType":"InlineAssembly","src":"4205:55:1"},{"expression":{"id":316,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":295,"src":"4272:1:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":296,"id":317,"nodeType":"Return","src":"4265:8:1"}]},"documentation":{"id":289,"nodeType":"StructuredDocumentation","src":"3790:166:1","text":" @dev Fills a `bytes32` (value type) with the first 32 bytes of `Slice`.\n Goes from left(MSB) to right(LSB).\n If len < 32, the leftover bytes are zeros."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"toBytes32","nameLocation":"3966:9:1","parameters":{"id":293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":292,"mutability":"mutable","name":"self","nameLocation":"3982:4:1","nodeType":"VariableDeclaration","scope":319,"src":"3976:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":291,"nodeType":"UserDefinedTypeName","pathNode":{"id":290,"name":"Slice","nameLocations":["3976:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"3976:5:1"},"referencedDeclaration":74,"src":"3976:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"3975:12:1"},"returnParameters":{"id":296,"nodeType":"ParameterList","parameters":[{"constant":false,"id":295,"mutability":"mutable","name":"b","nameLocation":"4010:1:1","nodeType":"VariableDeclaration","scope":319,"src":"4002:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":294,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4002:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4001:11:1"},"scope":1733,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":342,"nodeType":"FunctionDefinition","src":"4465:235:1","nodes":[],"body":{"id":341,"nodeType":"Block","src":"4523:177:1","nodes":[],"statements":[{"assignments":[329],"declarations":[{"constant":false,"id":329,"mutability":"mutable","name":"selfPtr","nameLocation":"4537:7:1","nodeType":"VariableDeclaration","scope":341,"src":"4529:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":328,"name":"uint256","nodeType":"ElementaryTypeName","src":"4529:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":333,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":330,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":323,"src":"4547:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4552:3:1","memberName":"ptr","nodeType":"MemberAccess","referencedDeclaration":215,"src":"4547:8:1","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":332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4547:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4529:28:1"},{"assignments":[335],"declarations":[{"constant":false,"id":335,"mutability":"mutable","name":"selfLen","nameLocation":"4571:7:1","nodeType":"VariableDeclaration","scope":341,"src":"4563:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":334,"name":"uint256","nodeType":"ElementaryTypeName","src":"4563:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":339,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":336,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":323,"src":"4581:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4586:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"4581:8:1","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":338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4581:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4563:28:1"},{"AST":{"nativeSrc":"4645:53:1","nodeType":"YulBlock","src":"4645:53:1","statements":[{"nativeSrc":"4655:37:1","nodeType":"YulAssignment","src":"4655:37:1","value":{"arguments":[{"name":"selfPtr","nativeSrc":"4675:7:1","nodeType":"YulIdentifier","src":"4675:7:1"},{"name":"selfLen","nativeSrc":"4684:7:1","nodeType":"YulIdentifier","src":"4684:7:1"}],"functionName":{"name":"keccak256","nativeSrc":"4665:9:1","nodeType":"YulIdentifier","src":"4665:9:1"},"nativeSrc":"4665:27:1","nodeType":"YulFunctionCall","src":"4665:27:1"},"variableNames":[{"name":"result","nativeSrc":"4655:6:1","nodeType":"YulIdentifier","src":"4655:6:1"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":326,"isOffset":false,"isSlot":false,"src":"4655:6:1","valueSize":1},{"declaration":335,"isOffset":false,"isSlot":false,"src":"4684:7:1","valueSize":1},{"declaration":329,"isOffset":false,"isSlot":false,"src":"4675:7:1","valueSize":1}],"id":340,"nodeType":"InlineAssembly","src":"4636:62:1"}]},"documentation":{"id":320,"nodeType":"StructuredDocumentation","src":"4278:186:1","text":" @dev Returns keccak256 of all the bytes of `Slice`.\n Note that for any `bytes memory b`, keccak256(b) == b.toSlice().keccak()\n (keccak256 does not include the length byte)"},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"keccak","nameLocation":"4474:6:1","parameters":{"id":324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":323,"mutability":"mutable","name":"self","nameLocation":"4487:4:1","nodeType":"VariableDeclaration","scope":342,"src":"4481:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":322,"nodeType":"UserDefinedTypeName","pathNode":{"id":321,"name":"Slice","nameLocations":["4481:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"4481:5:1"},"referencedDeclaration":74,"src":"4481:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"4480:12:1"},"returnParameters":{"id":327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":326,"mutability":"mutable","name":"result","nameLocation":"4515:6:1","nodeType":"VariableDeclaration","scope":342,"src":"4507:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":325,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4507:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4506:16:1"},"scope":1733,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":400,"nodeType":"FunctionDefinition","src":"4776:356:1","nodes":[],"body":{"id":399,"nodeType":"Block","src":"4844:288:1","nodes":[],"statements":[{"assignments":[355],"declarations":[{"constant":false,"id":355,"mutability":"mutable","name":"selfLen","nameLocation":"4858:7:1","nodeType":"VariableDeclaration","scope":399,"src":"4850:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":354,"name":"uint256","nodeType":"ElementaryTypeName","src":"4850:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":359,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":356,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":346,"src":"4868:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4873:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"4868:8:1","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":358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4868:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4850:28:1"},{"assignments":[361],"declarations":[{"constant":false,"id":361,"mutability":"mutable","name":"otherLen","nameLocation":"4892:8:1","nodeType":"VariableDeclaration","scope":399,"src":"4884:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":360,"name":"uint256","nodeType":"ElementaryTypeName","src":"4884:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":365,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":362,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":349,"src":"4903:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4909:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"4903:9:1","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":364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4903:11:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4884:30:1"},{"expression":{"id":373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":366,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":352,"src":"4921:1:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":369,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":355,"src":"4935:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":370,"name":"otherLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":361,"src":"4945:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4935:18:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":368,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4925:9:1","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":367,"name":"bytes","nodeType":"ElementaryTypeName","src":"4929:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4925:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"4921:33:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":374,"nodeType":"ExpressionStatement","src":"4921:33:1"},{"assignments":[376],"declarations":[{"constant":false,"id":376,"mutability":"mutable","name":"bPtr","nameLocation":"4968:4:1","nodeType":"VariableDeclaration","scope":399,"src":"4960:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":375,"name":"uint256","nodeType":"ElementaryTypeName","src":"4960:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":377,"nodeType":"VariableDeclarationStatement","src":"4960:12:1"},{"AST":{"nativeSrc":"4987:36:1","nodeType":"YulBlock","src":"4987:36:1","statements":[{"nativeSrc":"4997:20:1","nodeType":"YulAssignment","src":"4997:20:1","value":{"arguments":[{"name":"b","nativeSrc":"5009:1:1","nodeType":"YulIdentifier","src":"5009:1:1"},{"kind":"number","nativeSrc":"5012:4:1","nodeType":"YulLiteral","src":"5012:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5005:3:1","nodeType":"YulIdentifier","src":"5005:3:1"},"nativeSrc":"5005:12:1","nodeType":"YulFunctionCall","src":"5005:12:1"},"variableNames":[{"name":"bPtr","nativeSrc":"4997:4:1","nodeType":"YulIdentifier","src":"4997:4:1"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":352,"isOffset":false,"isSlot":false,"src":"5009:1:1","valueSize":1},{"declaration":376,"isOffset":false,"isSlot":false,"src":"4997:4:1","valueSize":1}],"id":378,"nodeType":"InlineAssembly","src":"4978:45:1"},{"expression":{"arguments":[{"id":380,"name":"bPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":376,"src":"5037:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":381,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":346,"src":"5043:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5048:3:1","memberName":"ptr","nodeType":"MemberAccess","referencedDeclaration":215,"src":"5043:8:1","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":383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5043:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":384,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":355,"src":"5055:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":379,"name":"memmove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4493,"src":"5029:7:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) view"}},"id":385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5029:34:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":386,"nodeType":"ExpressionStatement","src":"5029:34:1"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":388,"name":"bPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":376,"src":"5077:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":389,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":355,"src":"5084:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5077:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":391,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":349,"src":"5093:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5099:3:1","memberName":"ptr","nodeType":"MemberAccess","referencedDeclaration":215,"src":"5093:9:1","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":393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5093:11:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":394,"name":"otherLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":361,"src":"5106:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":387,"name":"memmove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4493,"src":"5069:7:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) view"}},"id":395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5069:46:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":396,"nodeType":"ExpressionStatement","src":"5069:46:1"},{"expression":{"id":397,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":352,"src":"5128:1:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":353,"id":398,"nodeType":"Return","src":"5121:8:1"}]},"documentation":{"id":343,"nodeType":"StructuredDocumentation","src":"4702:73:1","text":" @dev Concatenates two `Slice`s into a newly allocated `bytes`."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"add","nameLocation":"4785:3:1","parameters":{"id":350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":346,"mutability":"mutable","name":"self","nameLocation":"4795:4:1","nodeType":"VariableDeclaration","scope":400,"src":"4789:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":345,"nodeType":"UserDefinedTypeName","pathNode":{"id":344,"name":"Slice","nameLocations":["4789:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"4789:5:1"},"referencedDeclaration":74,"src":"4789:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"},{"constant":false,"id":349,"mutability":"mutable","name":"other","nameLocation":"4807:5:1","nodeType":"VariableDeclaration","scope":400,"src":"4801:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":348,"nodeType":"UserDefinedTypeName","pathNode":{"id":347,"name":"Slice","nameLocations":["4801:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"4801:5:1"},"referencedDeclaration":74,"src":"4801:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"4788:25:1"},"returnParameters":{"id":353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":352,"mutability":"mutable","name":"b","nameLocation":"4841:1:1","nodeType":"VariableDeclaration","scope":400,"src":"4828:14:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":351,"name":"bytes","nodeType":"ElementaryTypeName","src":"4828:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4827:16:1"},"scope":1733,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":528,"nodeType":"FunctionDefinition","src":"5410:972:1","nodes":[],"body":{"id":527,"nodeType":"Block","src":"5489:893:1","nodes":[],"statements":[{"assignments":[414],"declarations":[{"constant":false,"id":414,"mutability":"mutable","name":"slicesLen","nameLocation":"5503:9:1","nodeType":"VariableDeclaration","scope":527,"src":"5495:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":413,"name":"uint256","nodeType":"ElementaryTypeName","src":"5495:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":417,"initialValue":{"expression":{"id":415,"name":"slices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":408,"src":"5515:6:1","typeDescriptions":{"typeIdentifier":"t_array$_t_userDefinedValueType$_Slice_$74_$dyn_memory_ptr","typeString":"Slice[] memory"}},"id":416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5522:6:1","memberName":"length","nodeType":"MemberAccess","src":"5515:13:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5495:33:1"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":418,"name":"slicesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":414,"src":"5538:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5551:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5538:14:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":423,"nodeType":"IfStatement","src":"5534:29:1","trueBody":{"expression":{"hexValue":"","id":421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5561:2:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":412,"id":422,"nodeType":"Return","src":"5554:9:1"}},{"assignments":[425],"declarations":[{"constant":false,"id":425,"mutability":"mutable","name":"selfLen","nameLocation":"5578:7:1","nodeType":"VariableDeclaration","scope":527,"src":"5570:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":424,"name":"uint256","nodeType":"ElementaryTypeName","src":"5570:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":429,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":426,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":404,"src":"5588:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5593:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"5588:8:1","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":428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5588:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5570:28:1"},{"assignments":[431],"declarations":[{"constant":false,"id":431,"mutability":"mutable","name":"repetitionLen","nameLocation":"5612:13:1","nodeType":"VariableDeclaration","scope":527,"src":"5604:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":430,"name":"uint256","nodeType":"ElementaryTypeName","src":"5604:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":432,"nodeType":"VariableDeclarationStatement","src":"5604:21:1"},{"id":439,"nodeType":"UncheckedBlock","src":"5678:56:1","statements":[{"expression":{"id":437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":433,"name":"repetitionLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":431,"src":"5698:13:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":434,"name":"slicesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":414,"src":"5714:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5726:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5714:13:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5698:29:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":438,"nodeType":"ExpressionStatement","src":"5698:29:1"}]},{"assignments":[441],"declarations":[{"constant":false,"id":441,"mutability":"mutable","name":"totalLen","nameLocation":"5787:8:1","nodeType":"VariableDeclaration","scope":527,"src":"5779:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":440,"name":"uint256","nodeType":"ElementaryTypeName","src":"5779:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":445,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":442,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":425,"src":"5798:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":443,"name":"repetitionLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":431,"src":"5808:13:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5798:23:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5779:42:1"},{"body":{"id":463,"nodeType":"Block","src":"5888:44:1","statements":[{"expression":{"id":461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":455,"name":"totalLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":441,"src":"5898:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"id":456,"name":"slices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":408,"src":"5910:6:1","typeDescriptions":{"typeIdentifier":"t_array$_t_userDefinedValueType$_Slice_$74_$dyn_memory_ptr","typeString":"Slice[] memory"}},"id":458,"indexExpression":{"id":457,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":447,"src":"5917:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5910:9:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5920:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"5910:13:1","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":460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5910:15:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5898:27:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":462,"nodeType":"ExpressionStatement","src":"5898:27:1"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":449,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":447,"src":"5868:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":450,"name":"slicesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":414,"src":"5872:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5868:13:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":464,"initializationExpression":{"assignments":[447],"declarations":[{"constant":false,"id":447,"mutability":"mutable","name":"i","nameLocation":"5865:1:1","nodeType":"VariableDeclaration","scope":464,"src":"5857:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":446,"name":"uint256","nodeType":"ElementaryTypeName","src":"5857:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":448,"nodeType":"VariableDeclarationStatement","src":"5857:9:1"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5883:3:1","subExpression":{"id":452,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":447,"src":"5883:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":454,"nodeType":"ExpressionStatement","src":"5883:3:1"},"nodeType":"ForStatement","src":"5852:80:1"},{"expression":{"id":470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":465,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":411,"src":"5938:1:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":468,"name":"totalLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":441,"src":"5952:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":467,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5942:9:1","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":466,"name":"bytes","nodeType":"ElementaryTypeName","src":"5946:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5942:19:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"5938:23:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":471,"nodeType":"ExpressionStatement","src":"5938:23:1"},{"assignments":[473],"declarations":[{"constant":false,"id":473,"mutability":"mutable","name":"bPtr","nameLocation":"5975:4:1","nodeType":"VariableDeclaration","scope":527,"src":"5967:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":472,"name":"uint256","nodeType":"ElementaryTypeName","src":"5967:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":474,"nodeType":"VariableDeclarationStatement","src":"5967:12:1"},{"AST":{"nativeSrc":"5994:36:1","nodeType":"YulBlock","src":"5994:36:1","statements":[{"nativeSrc":"6004:20:1","nodeType":"YulAssignment","src":"6004:20:1","value":{"arguments":[{"name":"b","nativeSrc":"6016:1:1","nodeType":"YulIdentifier","src":"6016:1:1"},{"kind":"number","nativeSrc":"6019:4:1","nodeType":"YulLiteral","src":"6019:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6012:3:1","nodeType":"YulIdentifier","src":"6012:3:1"},"nativeSrc":"6012:12:1","nodeType":"YulFunctionCall","src":"6012:12:1"},"variableNames":[{"name":"bPtr","nativeSrc":"6004:4:1","nodeType":"YulIdentifier","src":"6004:4:1"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":411,"isOffset":false,"isSlot":false,"src":"6016:1:1","valueSize":1},{"declaration":473,"isOffset":false,"isSlot":false,"src":"6004:4:1","valueSize":1}],"id":475,"nodeType":"InlineAssembly","src":"5985:45:1"},{"body":{"id":525,"nodeType":"Block","src":"6071:309:1","statements":[{"assignments":[487],"declarations":[{"constant":false,"id":487,"mutability":"mutable","name":"slice","nameLocation":"6087:5:1","nodeType":"VariableDeclaration","scope":525,"src":"6081:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":486,"nodeType":"UserDefinedTypeName","pathNode":{"id":485,"name":"Slice","nameLocations":["6081:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"6081:5:1"},"referencedDeclaration":74,"src":"6081:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"id":491,"initialValue":{"baseExpression":{"id":488,"name":"slices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":408,"src":"6095:6:1","typeDescriptions":{"typeIdentifier":"t_array$_t_userDefinedValueType$_Slice_$74_$dyn_memory_ptr","typeString":"Slice[] memory"}},"id":490,"indexExpression":{"id":489,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":477,"src":"6102:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6095:9:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"nodeType":"VariableDeclarationStatement","src":"6081:23:1"},{"expression":{"arguments":[{"id":493,"name":"bPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":473,"src":"6144:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":494,"name":"slice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":487,"src":"6150:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6156:3:1","memberName":"ptr","nodeType":"MemberAccess","referencedDeclaration":215,"src":"6150:9:1","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":496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6150:11:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":497,"name":"slice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":487,"src":"6163:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6169:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"6163:9:1","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":499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6163:11:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":492,"name":"memmove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4493,"src":"6136:7:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) view"}},"id":500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6136:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":501,"nodeType":"ExpressionStatement","src":"6136:39:1"},{"expression":{"id":506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":502,"name":"bPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":473,"src":"6185:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":503,"name":"slice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":487,"src":"6193:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6199:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"6193:9:1","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":505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6193:11:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6185:19:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":507,"nodeType":"ExpressionStatement","src":"6185:19:1"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":508,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":477,"src":"6267:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":509,"name":"repetitionLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":431,"src":"6271:13:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6267:17:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":524,"nodeType":"IfStatement","src":"6263:111:1","trueBody":{"id":523,"nodeType":"Block","src":"6286:88:1","statements":[{"expression":{"arguments":[{"id":512,"name":"bPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":473,"src":"6308:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":513,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":404,"src":"6314:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6319:3:1","memberName":"ptr","nodeType":"MemberAccess","referencedDeclaration":215,"src":"6314:8:1","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":515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6314:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":516,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":425,"src":"6326:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":511,"name":"memmove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4493,"src":"6300:7:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) view"}},"id":517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6300:34:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":518,"nodeType":"ExpressionStatement","src":"6300:34:1"},{"expression":{"id":521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":519,"name":"bPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":473,"src":"6348:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":520,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":425,"src":"6356:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6348:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":522,"nodeType":"ExpressionStatement","src":"6348:15:1"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":479,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":477,"src":"6051:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":480,"name":"slicesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":414,"src":"6055:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6051:13:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":526,"initializationExpression":{"assignments":[477],"declarations":[{"constant":false,"id":477,"mutability":"mutable","name":"i","nameLocation":"6048:1:1","nodeType":"VariableDeclaration","scope":526,"src":"6040:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":476,"name":"uint256","nodeType":"ElementaryTypeName","src":"6040:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":478,"nodeType":"VariableDeclarationStatement","src":"6040:9:1"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6066:3:1","subExpression":{"id":482,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":477,"src":"6066:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":484,"nodeType":"ExpressionStatement","src":"6066:3:1"},"nodeType":"ForStatement","src":"6035:345:1"}]},"documentation":{"id":401,"nodeType":"StructuredDocumentation","src":"5134:275:1","text":" @dev Flattens an array of `Slice`s into a single newly allocated `bytes`,\n placing `self` as the separator between each.\n TODO this is the wrong place for this method, but there are no other places atm\n (since there's no proper chaining/reducers/anything)"},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"join","nameLocation":"5419:4:1","parameters":{"id":409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":404,"mutability":"mutable","name":"self","nameLocation":"5430:4:1","nodeType":"VariableDeclaration","scope":528,"src":"5424:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":403,"nodeType":"UserDefinedTypeName","pathNode":{"id":402,"name":"Slice","nameLocations":["5424:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"5424:5:1"},"referencedDeclaration":74,"src":"5424:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"},{"constant":false,"id":408,"mutability":"mutable","name":"slices","nameLocation":"5451:6:1","nodeType":"VariableDeclaration","scope":528,"src":"5436:21:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_userDefinedValueType$_Slice_$74_$dyn_memory_ptr","typeString":"Slice[]"},"typeName":{"baseType":{"id":406,"nodeType":"UserDefinedTypeName","pathNode":{"id":405,"name":"Slice","nameLocations":["5436:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"5436:5:1"},"referencedDeclaration":74,"src":"5436:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":407,"nodeType":"ArrayTypeName","src":"5436:7:1","typeDescriptions":{"typeIdentifier":"t_array$_t_userDefinedValueType$_Slice_$74_$dyn_storage_ptr","typeString":"Slice[]"}},"visibility":"internal"}],"src":"5423:35:1"},"returnParameters":{"id":412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":411,"mutability":"mutable","name":"b","nameLocation":"5486:1:1","nodeType":"VariableDeclaration","scope":528,"src":"5473:14:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":410,"name":"bytes","nodeType":"ElementaryTypeName","src":"5473:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5472:16:1"},"scope":1733,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":564,"nodeType":"FunctionDefinition","src":"6495:196:1","nodes":[],"body":{"id":563,"nodeType":"Block","src":"6546:145:1","nodes":[],"statements":[{"assignments":[539],"declarations":[{"constant":false,"id":539,"mutability":"mutable","name":"selfLen","nameLocation":"6560:7:1","nodeType":"VariableDeclaration","scope":563,"src":"6552:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":538,"name":"uint256","nodeType":"ElementaryTypeName","src":"6552:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":543,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":540,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":532,"src":"6570:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6575:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"6570:8:1","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":542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6570:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6552:28:1"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":544,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":539,"src":"6590:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":545,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":535,"src":"6601:3:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6605:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"6601:7:1","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":547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6601:9:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6590:20:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":552,"nodeType":"IfStatement","src":"6586:56:1","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":549,"name":"Slice__LengthMismatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78,"src":"6619:21:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6619:23:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":551,"nodeType":"RevertStatement","src":"6612:30:1"}},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":554,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":532,"src":"6657:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6662:3:1","memberName":"ptr","nodeType":"MemberAccess","referencedDeclaration":215,"src":"6657:8:1","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":556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6657:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":557,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":535,"src":"6669:3:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6673:3:1","memberName":"ptr","nodeType":"MemberAccess","referencedDeclaration":215,"src":"6669:7:1","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":559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6669:9:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":560,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":539,"src":"6680:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":553,"name":"memmove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4493,"src":"6649:7:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) view"}},"id":561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6649:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":562,"nodeType":"ExpressionStatement","src":"6649:39:1"}]},"documentation":{"id":529,"nodeType":"StructuredDocumentation","src":"6384:110:1","text":" @dev Copies all elements from `src` into `self`.\n The length of `src` must be the same as `self`."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"copyFromSlice","nameLocation":"6504:13:1","parameters":{"id":536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":532,"mutability":"mutable","name":"self","nameLocation":"6524:4:1","nodeType":"VariableDeclaration","scope":564,"src":"6518:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":531,"nodeType":"UserDefinedTypeName","pathNode":{"id":530,"name":"Slice","nameLocations":["6518:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"6518:5:1"},"referencedDeclaration":74,"src":"6518:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"},{"constant":false,"id":535,"mutability":"mutable","name":"src","nameLocation":"6536:3:1","nodeType":"VariableDeclaration","scope":564,"src":"6530:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":534,"nodeType":"UserDefinedTypeName","pathNode":{"id":533,"name":"Slice","nameLocations":["6530:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"6530:5:1"},"referencedDeclaration":74,"src":"6530:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"6517:23:1"},"returnParameters":{"id":537,"nodeType":"ParameterList","parameters":[],"src":"6546:0:1"},"scope":1733,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":598,"nodeType":"FunctionDefinition","src":"6776:204:1","nodes":[],"body":{"id":597,"nodeType":"Block","src":"6847:133:1","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":575,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":572,"src":"6857:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":576,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":568,"src":"6866:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6871:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"6866:8:1","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":578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6866:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6857:19:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":580,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":572,"src":"6880:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3332","id":581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6889:2:1","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"6880:11:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6857:34:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":588,"nodeType":"IfStatement","src":"6853:84:1","trueBody":{"id":587,"nodeType":"Block","src":"6893:44:1","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":584,"name":"Slice__OutOfBounds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76,"src":"6910:18:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6910:20:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":586,"nodeType":"RevertStatement","src":"6903:27:1"}]}},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":590,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":568,"src":"6951:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6956:3:1","memberName":"ptr","nodeType":"MemberAccess","referencedDeclaration":215,"src":"6951:8:1","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":592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6951:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":593,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":570,"src":"6963:5:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":594,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":572,"src":"6970:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":589,"name":"mstoreN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4481,"src":"6943:7:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (uint256,bytes32,uint256) pure"}},"id":595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6943:34:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":596,"nodeType":"ExpressionStatement","src":"6943:34:1"}]},"documentation":{"id":565,"nodeType":"StructuredDocumentation","src":"6693:82:1","text":" @dev Copies `length` bytes from `value` into `self`, starting from MSB."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"copyFromValue","nameLocation":"6785:13:1","parameters":{"id":573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":568,"mutability":"mutable","name":"self","nameLocation":"6805:4:1","nodeType":"VariableDeclaration","scope":598,"src":"6799:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":567,"nodeType":"UserDefinedTypeName","pathNode":{"id":566,"name":"Slice","nameLocations":["6799:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"6799:5:1"},"referencedDeclaration":74,"src":"6799:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"},{"constant":false,"id":570,"mutability":"mutable","name":"value","nameLocation":"6819:5:1","nodeType":"VariableDeclaration","scope":598,"src":"6811:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":569,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6811:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":572,"mutability":"mutable","name":"length","nameLocation":"6834:6:1","nodeType":"VariableDeclaration","scope":598,"src":"6826:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":571,"name":"uint256","nodeType":"ElementaryTypeName","src":"6826:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6798:43:1"},"returnParameters":{"id":574,"nodeType":"ParameterList","parameters":[],"src":"6847:0:1"},"scope":1733,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":647,"nodeType":"FunctionDefinition","src":"7214:352:1","nodes":[],"body":{"id":646,"nodeType":"Block","src":"7297:269:1","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":609,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":606,"src":"7307:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":610,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":602,"src":"7316:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7321:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"7316:8:1","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":612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7316:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7307:19:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":614,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":606,"src":"7330:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3332","id":615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7339:2:1","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"7330:11:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7307:34:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":622,"nodeType":"IfStatement","src":"7303:84:1","trueBody":{"id":621,"nodeType":"Block","src":"7343:44:1","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":618,"name":"Slice__OutOfBounds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76,"src":"7360:18:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7360:20:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":620,"nodeType":"RevertStatement","src":"7353:27:1"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":623,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":606,"src":"7396:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3332","id":624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7405:2:1","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"7396:11:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":637,"nodeType":"IfStatement","src":"7392:131:1","trueBody":{"id":636,"nodeType":"Block","src":"7409:114:1","statements":[{"id":635,"nodeType":"UncheckedBlock","src":"7455:62:1","statements":[{"expression":{"id":633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":626,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":604,"src":"7479:5:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7490:2:1","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":628,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":606,"src":"7495:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7490:11:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":630,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7489:13:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7505:1:1","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"7489:17:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7479:27:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":634,"nodeType":"ExpressionStatement","src":"7479:27:1"}]}]}},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":639,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":602,"src":"7537:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7542:3:1","memberName":"ptr","nodeType":"MemberAccess","referencedDeclaration":215,"src":"7537:8:1","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":641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7537:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":642,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":604,"src":"7549:5:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":643,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":606,"src":"7556:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":638,"name":"mstoreN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4481,"src":"7529:7:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (uint256,bytes32,uint256) pure"}},"id":644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7529:34:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":645,"nodeType":"ExpressionStatement","src":"7529:34:1"}]},"documentation":{"id":599,"nodeType":"StructuredDocumentation","src":"6982:231:1","text":" @dev Shifts `value` to MSB by (32 - `length`),\n then copies `length` bytes from `value` into `self`, starting from MSB.\n (this is for right-aligned values like uint32, so you don't have to shift them to MSB yourself)"},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"copyFromValueRightAligned","nameLocation":"7223:25:1","parameters":{"id":607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":602,"mutability":"mutable","name":"self","nameLocation":"7255:4:1","nodeType":"VariableDeclaration","scope":647,"src":"7249:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":601,"nodeType":"UserDefinedTypeName","pathNode":{"id":600,"name":"Slice","nameLocations":["7249:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"7249:5:1"},"referencedDeclaration":74,"src":"7249:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"},{"constant":false,"id":604,"mutability":"mutable","name":"value","nameLocation":"7269:5:1","nodeType":"VariableDeclaration","scope":647,"src":"7261:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":603,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7261:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":606,"mutability":"mutable","name":"length","nameLocation":"7284:6:1","nodeType":"VariableDeclaration","scope":647,"src":"7276:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":605,"name":"uint256","nodeType":"ElementaryTypeName","src":"7276:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7248:43:1"},"returnParameters":{"id":608,"nodeType":"ParameterList","parameters":[],"src":"7297:0:1"},"scope":1733,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":715,"nodeType":"FunctionDefinition","src":"7693:580:1","nodes":[],"body":{"id":714,"nodeType":"Block","src":"7760:513:1","nodes":[],"statements":[{"assignments":[660],"declarations":[{"constant":false,"id":660,"mutability":"mutable","name":"selfLen","nameLocation":"7774:7:1","nodeType":"VariableDeclaration","scope":714,"src":"7766:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":659,"name":"uint256","nodeType":"ElementaryTypeName","src":"7766:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":664,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":661,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":651,"src":"7784:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7789:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"7784:8:1","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":663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7784:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7766:28:1"},{"assignments":[666],"declarations":[{"constant":false,"id":666,"mutability":"mutable","name":"otherLen","nameLocation":"7808:8:1","nodeType":"VariableDeclaration","scope":714,"src":"7800:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":665,"name":"uint256","nodeType":"ElementaryTypeName","src":"7800:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":670,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":667,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":654,"src":"7819:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7825:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"7819:9:1","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":669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7819:11:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7800:30:1"},{"assignments":[672],"declarations":[{"constant":false,"id":672,"mutability":"mutable","name":"minLen","nameLocation":"7844:6:1","nodeType":"VariableDeclaration","scope":714,"src":"7836:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":671,"name":"uint256","nodeType":"ElementaryTypeName","src":"7836:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":674,"initialValue":{"id":673,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":660,"src":"7853:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7836:24:1"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":675,"name":"otherLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":666,"src":"7870:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":676,"name":"minLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":672,"src":"7881:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7870:17:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":683,"nodeType":"IfStatement","src":"7866:57:1","trueBody":{"id":682,"nodeType":"Block","src":"7889:34:1","statements":[{"expression":{"id":680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":678,"name":"minLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":672,"src":"7899:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":679,"name":"otherLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":666,"src":"7908:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7899:17:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":681,"nodeType":"ExpressionStatement","src":"7899:17:1"}]}},{"expression":{"id":694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":684,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":657,"src":"7929:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":686,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":651,"src":"7945:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7950:3:1","memberName":"ptr","nodeType":"MemberAccess","referencedDeclaration":215,"src":"7945:8:1","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":688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7945:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":689,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":654,"src":"7957:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7963:3:1","memberName":"ptr","nodeType":"MemberAccess","referencedDeclaration":215,"src":"7957:9:1","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":691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7957:11:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":692,"name":"minLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":672,"src":"7970:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":685,"name":"memcmp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4555,"src":"7938:6:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256) pure returns (int256)"}},"id":693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7938:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7929:48:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":695,"nodeType":"ExpressionStatement","src":"7929:48:1"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":696,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":657,"src":"7987:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7997:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7987:11:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":711,"nodeType":"IfStatement","src":"7983:227:1","trueBody":{"id":710,"nodeType":"Block","src":"8000:210:1","statements":[{"id":709,"nodeType":"UncheckedBlock","src":"8128:76:1","statements":[{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":701,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":660,"src":"8166:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":700,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8159:6:1","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":699,"name":"int256","nodeType":"ElementaryTypeName","src":"8159:6:1","typeDescriptions":{}}},"id":702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8159:15:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"id":705,"name":"otherLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":666,"src":"8184:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":704,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8177:6:1","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":703,"name":"int256","nodeType":"ElementaryTypeName","src":"8177:6:1","typeDescriptions":{}}},"id":706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8177:16:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"8159:34:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":658,"id":708,"nodeType":"Return","src":"8152:41:1"}]}]}},{"expression":{"id":712,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":657,"src":"8264:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":658,"id":713,"nodeType":"Return","src":"8257:13:1"}]},"documentation":{"id":648,"nodeType":"StructuredDocumentation","src":"7568:124:1","text":" @dev Compare slices lexicographically.\n @return result 0 for equal, < 0 for less than and > 0 for greater than."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"cmp","nameLocation":"7702:3:1","parameters":{"id":655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":651,"mutability":"mutable","name":"self","nameLocation":"7712:4:1","nodeType":"VariableDeclaration","scope":715,"src":"7706:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":650,"nodeType":"UserDefinedTypeName","pathNode":{"id":649,"name":"Slice","nameLocations":["7706:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"7706:5:1"},"referencedDeclaration":74,"src":"7706:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"},{"constant":false,"id":654,"mutability":"mutable","name":"other","nameLocation":"7724:5:1","nodeType":"VariableDeclaration","scope":715,"src":"7718:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":653,"nodeType":"UserDefinedTypeName","pathNode":{"id":652,"name":"Slice","nameLocations":["7718:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"7718:5:1"},"referencedDeclaration":74,"src":"7718:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"7705:25:1"},"returnParameters":{"id":658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":657,"mutability":"mutable","name":"result","nameLocation":"7752:6:1","nodeType":"VariableDeclaration","scope":715,"src":"7745:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":656,"name":"int256","nodeType":"ElementaryTypeName","src":"7745:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"7744:15:1"},"scope":1733,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":752,"nodeType":"FunctionDefinition","src":"8331:192:1","nodes":[],"body":{"id":751,"nodeType":"Block","src":"8388:135:1","nodes":[],"statements":[{"assignments":[728],"declarations":[{"constant":false,"id":728,"mutability":"mutable","name":"selfLen","nameLocation":"8402:7:1","nodeType":"VariableDeclaration","scope":751,"src":"8394:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":727,"name":"uint256","nodeType":"ElementaryTypeName","src":"8394:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":732,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":729,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":719,"src":"8412:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8417:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"8412:8:1","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":731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8412:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8394:28:1"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":733,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":728,"src":"8432:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":734,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":722,"src":"8443:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8449:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"8443:9:1","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":736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8443:11:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8432:22:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":740,"nodeType":"IfStatement","src":"8428:40:1","trueBody":{"expression":{"hexValue":"66616c7365","id":738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8463:5:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":726,"id":739,"nodeType":"Return","src":"8456:12:1"}},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":742,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":719,"src":"8487:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8492:3:1","memberName":"ptr","nodeType":"MemberAccess","referencedDeclaration":215,"src":"8487:8:1","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":744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8487:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":745,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":722,"src":"8499:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8505:3:1","memberName":"ptr","nodeType":"MemberAccess","referencedDeclaration":215,"src":"8499:9:1","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":747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8499:11:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":748,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":728,"src":"8512:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":741,"name":"memeq","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4569,"src":"8481:5:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256,uint256) pure returns (bool)"}},"id":749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8481:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":726,"id":750,"nodeType":"Return","src":"8474:46:1"}]},"documentation":{"id":716,"nodeType":"StructuredDocumentation","src":"8275:56:1","text":"@dev self == other\n Note more efficient than cmp"},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"eq","nameLocation":"8340:2:1","parameters":{"id":723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":719,"mutability":"mutable","name":"self","nameLocation":"8349:4:1","nodeType":"VariableDeclaration","scope":752,"src":"8343:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":718,"nodeType":"UserDefinedTypeName","pathNode":{"id":717,"name":"Slice","nameLocations":["8343:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"8343:5:1"},"referencedDeclaration":74,"src":"8343:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"},{"constant":false,"id":722,"mutability":"mutable","name":"other","nameLocation":"8361:5:1","nodeType":"VariableDeclaration","scope":752,"src":"8355:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":721,"nodeType":"UserDefinedTypeName","pathNode":{"id":720,"name":"Slice","nameLocations":["8355:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"8355:5:1"},"referencedDeclaration":74,"src":"8355:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"8342:25:1"},"returnParameters":{"id":726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":725,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":752,"src":"8382:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":724,"name":"bool","nodeType":"ElementaryTypeName","src":"8382:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8381:6:1"},"scope":1733,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":790,"nodeType":"FunctionDefinition","src":"8581:192:1","nodes":[],"body":{"id":789,"nodeType":"Block","src":"8638:135:1","nodes":[],"statements":[{"assignments":[765],"declarations":[{"constant":false,"id":765,"mutability":"mutable","name":"selfLen","nameLocation":"8652:7:1","nodeType":"VariableDeclaration","scope":789,"src":"8644:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":764,"name":"uint256","nodeType":"ElementaryTypeName","src":"8644:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":769,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":766,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":756,"src":"8662:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8667:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"8662:8:1","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":768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8662:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8644:28:1"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":770,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":765,"src":"8682:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":771,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":759,"src":"8693:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8699:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"8693:9:1","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":773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8693:11:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8682:22:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":777,"nodeType":"IfStatement","src":"8678:39:1","trueBody":{"expression":{"hexValue":"74727565","id":775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8713:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":763,"id":776,"nodeType":"Return","src":"8706:11:1"}},{"expression":{"id":787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8730:40:1","subExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":779,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":756,"src":"8737:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8742:3:1","memberName":"ptr","nodeType":"MemberAccess","referencedDeclaration":215,"src":"8737:8:1","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":781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8737:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":782,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":759,"src":"8749:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8755:3:1","memberName":"ptr","nodeType":"MemberAccess","referencedDeclaration":215,"src":"8749:9:1","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":784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8749:11:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":785,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":765,"src":"8762:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":778,"name":"memeq","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4569,"src":"8731:5:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256,uint256) pure returns (bool)"}},"id":786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8731:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":763,"id":788,"nodeType":"Return","src":"8723:47:1"}]},"documentation":{"id":753,"nodeType":"StructuredDocumentation","src":"8525:56:1","text":"@dev self != other\n Note more efficient than cmp"},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"ne","nameLocation":"8590:2:1","parameters":{"id":760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":756,"mutability":"mutable","name":"self","nameLocation":"8599:4:1","nodeType":"VariableDeclaration","scope":790,"src":"8593:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":755,"nodeType":"UserDefinedTypeName","pathNode":{"id":754,"name":"Slice","nameLocations":["8593:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"8593:5:1"},"referencedDeclaration":74,"src":"8593:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"},{"constant":false,"id":759,"mutability":"mutable","name":"other","nameLocation":"8611:5:1","nodeType":"VariableDeclaration","scope":790,"src":"8605:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":758,"nodeType":"UserDefinedTypeName","pathNode":{"id":757,"name":"Slice","nameLocations":["8605:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"8605:5:1"},"referencedDeclaration":74,"src":"8605:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"8592:25:1"},"returnParameters":{"id":763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":762,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":790,"src":"8632:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":761,"name":"bool","nodeType":"ElementaryTypeName","src":"8632:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8631:6:1"},"scope":1733,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":810,"nodeType":"FunctionDefinition","src":"8801:92:1","nodes":[],"body":{"id":809,"nodeType":"Block","src":"8858:35:1","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":804,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":797,"src":"8880:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}],"expression":{"id":802,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":794,"src":"8871:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8876:3:1","memberName":"cmp","nodeType":"MemberAccess","referencedDeclaration":715,"src":"8871:8:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Slice_$74_$_t_userDefinedValueType$_Slice_$74_$returns$_t_int256_$attached_to$_t_userDefinedValueType$_Slice_$74_$","typeString":"function (Slice,Slice) pure returns (int256)"}},"id":805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8871:15:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8889:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8871:19:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":801,"id":808,"nodeType":"Return","src":"8864:26:1"}]},"documentation":{"id":791,"nodeType":"StructuredDocumentation","src":"8775:26:1","text":"@dev `self` < `other`"},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"lt","nameLocation":"8810:2:1","parameters":{"id":798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":794,"mutability":"mutable","name":"self","nameLocation":"8819:4:1","nodeType":"VariableDeclaration","scope":810,"src":"8813:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":793,"nodeType":"UserDefinedTypeName","pathNode":{"id":792,"name":"Slice","nameLocations":["8813:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"8813:5:1"},"referencedDeclaration":74,"src":"8813:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"},{"constant":false,"id":797,"mutability":"mutable","name":"other","nameLocation":"8831:5:1","nodeType":"VariableDeclaration","scope":810,"src":"8825:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":796,"nodeType":"UserDefinedTypeName","pathNode":{"id":795,"name":"Slice","nameLocations":["8825:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"8825:5:1"},"referencedDeclaration":74,"src":"8825:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"8812:25:1"},"returnParameters":{"id":801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":800,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":810,"src":"8852:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":799,"name":"bool","nodeType":"ElementaryTypeName","src":"8852:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8851:6:1"},"scope":1733,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":830,"nodeType":"FunctionDefinition","src":"8922:94:1","nodes":[],"body":{"id":829,"nodeType":"Block","src":"8980:36:1","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":824,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":817,"src":"9002:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}],"expression":{"id":822,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":814,"src":"8993:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8998:3:1","memberName":"cmp","nodeType":"MemberAccess","referencedDeclaration":715,"src":"8993:8:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Slice_$74_$_t_userDefinedValueType$_Slice_$74_$returns$_t_int256_$attached_to$_t_userDefinedValueType$_Slice_$74_$","typeString":"function (Slice,Slice) pure returns (int256)"}},"id":825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8993:15:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30","id":826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9012:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8993:20:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":821,"id":828,"nodeType":"Return","src":"8986:27:1"}]},"documentation":{"id":811,"nodeType":"StructuredDocumentation","src":"8895:27:1","text":"@dev `self` <= `other`"},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"lte","nameLocation":"8931:3:1","parameters":{"id":818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":814,"mutability":"mutable","name":"self","nameLocation":"8941:4:1","nodeType":"VariableDeclaration","scope":830,"src":"8935:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":813,"nodeType":"UserDefinedTypeName","pathNode":{"id":812,"name":"Slice","nameLocations":["8935:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"8935:5:1"},"referencedDeclaration":74,"src":"8935:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"},{"constant":false,"id":817,"mutability":"mutable","name":"other","nameLocation":"8953:5:1","nodeType":"VariableDeclaration","scope":830,"src":"8947:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":816,"nodeType":"UserDefinedTypeName","pathNode":{"id":815,"name":"Slice","nameLocations":["8947:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"8947:5:1"},"referencedDeclaration":74,"src":"8947:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"8934:25:1"},"returnParameters":{"id":821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":820,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":830,"src":"8974:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":819,"name":"bool","nodeType":"ElementaryTypeName","src":"8974:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8973:6:1"},"scope":1733,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":850,"nodeType":"FunctionDefinition","src":"9044:92:1","nodes":[],"body":{"id":849,"nodeType":"Block","src":"9101:35:1","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":844,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":837,"src":"9123:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}],"expression":{"id":842,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":834,"src":"9114:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9119:3:1","memberName":"cmp","nodeType":"MemberAccess","referencedDeclaration":715,"src":"9114:8:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Slice_$74_$_t_userDefinedValueType$_Slice_$74_$returns$_t_int256_$attached_to$_t_userDefinedValueType$_Slice_$74_$","typeString":"function (Slice,Slice) pure returns (int256)"}},"id":845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9114:15:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9132:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9114:19:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":841,"id":848,"nodeType":"Return","src":"9107:26:1"}]},"documentation":{"id":831,"nodeType":"StructuredDocumentation","src":"9018:26:1","text":"@dev `self` > `other`"},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"gt","nameLocation":"9053:2:1","parameters":{"id":838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":834,"mutability":"mutable","name":"self","nameLocation":"9062:4:1","nodeType":"VariableDeclaration","scope":850,"src":"9056:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":833,"nodeType":"UserDefinedTypeName","pathNode":{"id":832,"name":"Slice","nameLocations":["9056:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"9056:5:1"},"referencedDeclaration":74,"src":"9056:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"},{"constant":false,"id":837,"mutability":"mutable","name":"other","nameLocation":"9074:5:1","nodeType":"VariableDeclaration","scope":850,"src":"9068:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":836,"nodeType":"UserDefinedTypeName","pathNode":{"id":835,"name":"Slice","nameLocations":["9068:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"9068:5:1"},"referencedDeclaration":74,"src":"9068:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"9055:25:1"},"returnParameters":{"id":841,"nodeType":"ParameterList","parameters":[{"constant":false,"id":840,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":850,"src":"9095:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":839,"name":"bool","nodeType":"ElementaryTypeName","src":"9095:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9094:6:1"},"scope":1733,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":870,"nodeType":"FunctionDefinition","src":"9165:94:1","nodes":[],"body":{"id":869,"nodeType":"Block","src":"9223:36:1","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":864,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":857,"src":"9245:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}],"expression":{"id":862,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":854,"src":"9236:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9241:3:1","memberName":"cmp","nodeType":"MemberAccess","referencedDeclaration":715,"src":"9236:8:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Slice_$74_$_t_userDefinedValueType$_Slice_$74_$returns$_t_int256_$attached_to$_t_userDefinedValueType$_Slice_$74_$","typeString":"function (Slice,Slice) pure returns (int256)"}},"id":865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9236:15:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9255:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9236:20:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":861,"id":868,"nodeType":"Return","src":"9229:27:1"}]},"documentation":{"id":851,"nodeType":"StructuredDocumentation","src":"9138:27:1","text":"@dev `self` >= `other`"},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"gte","nameLocation":"9174:3:1","parameters":{"id":858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":854,"mutability":"mutable","name":"self","nameLocation":"9184:4:1","nodeType":"VariableDeclaration","scope":870,"src":"9178:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":853,"nodeType":"UserDefinedTypeName","pathNode":{"id":852,"name":"Slice","nameLocations":["9178:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"9178:5:1"},"referencedDeclaration":74,"src":"9178:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"},{"constant":false,"id":857,"mutability":"mutable","name":"other","nameLocation":"9196:5:1","nodeType":"VariableDeclaration","scope":870,"src":"9190:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":856,"nodeType":"UserDefinedTypeName","pathNode":{"id":855,"name":"Slice","nameLocations":["9190:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"9190:5:1"},"referencedDeclaration":74,"src":"9190:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"9177:25:1"},"returnParameters":{"id":861,"nodeType":"ParameterList","parameters":[{"constant":false,"id":860,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":870,"src":"9217:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":859,"name":"bool","nodeType":"ElementaryTypeName","src":"9217:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9216:6:1"},"scope":1733,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":900,"nodeType":"FunctionDefinition","src":"9344:258:1","nodes":[],"body":{"id":899,"nodeType":"Block","src":"9410:192:1","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":881,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":876,"src":"9420:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":882,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":874,"src":"9429:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9434:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"9429:8:1","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":884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9429:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9420:19:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":889,"nodeType":"IfStatement","src":"9416:52:1","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":886,"name":"Slice__OutOfBounds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76,"src":"9448:18:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9448:20:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":888,"nodeType":"RevertStatement","src":"9441:27:1"}},{"id":898,"nodeType":"UncheckedBlock","src":"9540:60:1","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":891,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":874,"src":"9574:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9579:3:1","memberName":"ptr","nodeType":"MemberAccess","referencedDeclaration":215,"src":"9574:8:1","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":893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9574:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":894,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":876,"src":"9587:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9574:18:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":890,"name":"mload8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4426,"src":"9567:6:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint8_$","typeString":"function (uint256) pure returns (uint8)"}},"id":896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9567:26:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":880,"id":897,"nodeType":"Return","src":"9560:33:1"}]}]},"documentation":{"id":871,"nodeType":"StructuredDocumentation","src":"9261:82:1","text":" @dev Returns the byte at `index`.\n Reverts if index is out of bounds."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"get","nameLocation":"9353:3:1","parameters":{"id":877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":874,"mutability":"mutable","name":"self","nameLocation":"9363:4:1","nodeType":"VariableDeclaration","scope":900,"src":"9357:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":873,"nodeType":"UserDefinedTypeName","pathNode":{"id":872,"name":"Slice","nameLocations":["9357:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"9357:5:1"},"referencedDeclaration":74,"src":"9357:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"},{"constant":false,"id":876,"mutability":"mutable","name":"index","nameLocation":"9377:5:1","nodeType":"VariableDeclaration","scope":900,"src":"9369:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":875,"name":"uint256","nodeType":"ElementaryTypeName","src":"9369:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9356:27:1"},"returnParameters":{"id":880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":879,"mutability":"mutable","name":"item","nameLocation":"9404:4:1","nodeType":"VariableDeclaration","scope":900,"src":"9398:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":878,"name":"uint8","nodeType":"ElementaryTypeName","src":"9398:5:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"9397:12:1"},"scope":1733,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":925,"nodeType":"FunctionDefinition","src":"9691:141:1","nodes":[],"body":{"id":924,"nodeType":"Block","src":"9744:88:1","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":909,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":904,"src":"9754:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9759:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"9754:8:1","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":911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9754:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9768:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9754:15:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":917,"nodeType":"IfStatement","src":"9750:48:1","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":914,"name":"Slice__OutOfBounds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76,"src":"9778:18:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9778:20:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":916,"nodeType":"RevertStatement","src":"9771:27:1"}},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":919,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":904,"src":"9818:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9823:3:1","memberName":"ptr","nodeType":"MemberAccess","referencedDeclaration":215,"src":"9818:8:1","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":921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9818:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":918,"name":"mload8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4426,"src":"9811:6:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint8_$","typeString":"function (uint256) pure returns (uint8)"}},"id":922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9811:18:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":908,"id":923,"nodeType":"Return","src":"9804:25:1"}]},"documentation":{"id":901,"nodeType":"StructuredDocumentation","src":"9604:86:1","text":" @dev Returns the first byte of the slice.\n Reverts if the slice is empty."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"first","nameLocation":"9700:5:1","parameters":{"id":905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":904,"mutability":"mutable","name":"self","nameLocation":"9712:4:1","nodeType":"VariableDeclaration","scope":925,"src":"9706:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":903,"nodeType":"UserDefinedTypeName","pathNode":{"id":902,"name":"Slice","nameLocations":["9706:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"9706:5:1"},"referencedDeclaration":74,"src":"9706:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"9705:12:1"},"returnParameters":{"id":908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":907,"mutability":"mutable","name":"item","nameLocation":"9738:4:1","nodeType":"VariableDeclaration","scope":925,"src":"9732:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":906,"name":"uint8","nodeType":"ElementaryTypeName","src":"9732:5:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"9731:12:1"},"scope":1733,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":960,"nodeType":"FunctionDefinition","src":"9920:274:1","nodes":[],"body":{"id":959,"nodeType":"Block","src":"9972:222:1","nodes":[],"statements":[{"assignments":[935],"declarations":[{"constant":false,"id":935,"mutability":"mutable","name":"selfLen","nameLocation":"9986:7:1","nodeType":"VariableDeclaration","scope":959,"src":"9978:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":934,"name":"uint256","nodeType":"ElementaryTypeName","src":"9978:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":939,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":936,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":929,"src":"9996:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10001:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"9996:8:1","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":938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9996:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9978:28:1"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":940,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":935,"src":"10016:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10027:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10016:12:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":946,"nodeType":"IfStatement","src":"10012:45:1","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":943,"name":"Slice__OutOfBounds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76,"src":"10037:18:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10037:20:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":945,"nodeType":"RevertStatement","src":"10030:27:1"}},{"id":958,"nodeType":"UncheckedBlock","src":"10124:68:1","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":948,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":929,"src":"10158:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10163:3:1","memberName":"ptr","nodeType":"MemberAccess","referencedDeclaration":215,"src":"10158:8:1","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":950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10158:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":951,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":935,"src":"10172:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10182:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10172:11:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":954,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10171:13:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10158:26:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":947,"name":"mload8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4426,"src":"10151:6:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint8_$","typeString":"function (uint256) pure returns (uint8)"}},"id":956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10151:34:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":933,"id":957,"nodeType":"Return","src":"10144:41:1"}]}]},"documentation":{"id":926,"nodeType":"StructuredDocumentation","src":"9834:85:1","text":" @dev Returns the last byte of the slice.\n Reverts if the slice is empty."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"last","nameLocation":"9929:4:1","parameters":{"id":930,"nodeType":"ParameterList","parameters":[{"constant":false,"id":929,"mutability":"mutable","name":"self","nameLocation":"9940:4:1","nodeType":"VariableDeclaration","scope":960,"src":"9934:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":928,"nodeType":"UserDefinedTypeName","pathNode":{"id":927,"name":"Slice","nameLocations":["9934:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"9934:5:1"},"referencedDeclaration":74,"src":"9934:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"9933:12:1"},"returnParameters":{"id":933,"nodeType":"ParameterList","parameters":[{"constant":false,"id":932,"mutability":"mutable","name":"item","nameLocation":"9966:4:1","nodeType":"VariableDeclaration","scope":960,"src":"9960:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":931,"name":"uint8","nodeType":"ElementaryTypeName","src":"9960:5:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"9959:12:1"},"scope":1733,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1011,"nodeType":"FunctionDefinition","src":"10252:296:1","nodes":[],"body":{"id":1010,"nodeType":"Block","src":"10322:226:1","nodes":[],"statements":[{"assignments":[976],"declarations":[{"constant":false,"id":976,"mutability":"mutable","name":"selfPtr","nameLocation":"10336:7:1","nodeType":"VariableDeclaration","scope":1010,"src":"10328:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":975,"name":"uint256","nodeType":"ElementaryTypeName","src":"10328:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":980,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":977,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":964,"src":"10346:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10351:3:1","memberName":"ptr","nodeType":"MemberAccess","referencedDeclaration":215,"src":"10346:8:1","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":979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10346:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10328:28:1"},{"assignments":[982],"declarations":[{"constant":false,"id":982,"mutability":"mutable","name":"selfLen","nameLocation":"10370:7:1","nodeType":"VariableDeclaration","scope":1010,"src":"10362:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":981,"name":"uint256","nodeType":"ElementaryTypeName","src":"10362:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":986,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":983,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":964,"src":"10380:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10385:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"10380:8:1","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":985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10380:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10362:28:1"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":987,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":966,"src":"10400:3:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":988,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":982,"src":"10406:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10400:13:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":993,"nodeType":"IfStatement","src":"10396:46:1","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":990,"name":"Slice__OutOfBounds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76,"src":"10422:18:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10422:20:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":992,"nodeType":"RevertStatement","src":"10415:27:1"}},{"expression":{"components":[{"arguments":[{"id":996,"name":"selfPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":976,"src":"10478:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":997,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":966,"src":"10487:3:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":994,"name":"Slice__","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"10456:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Slice___$146_$","typeString":"type(library Slice__)"}},"id":995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10464:13:1","memberName":"fromUnchecked","nodeType":"MemberAccess","referencedDeclaration":145,"src":"10456:21:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_userDefinedValueType$_Slice_$74_$","typeString":"function (uint256,uint256) pure returns (Slice)"}},"id":998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10456:35:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1001,"name":"selfPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":976,"src":"10515:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1002,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":966,"src":"10525:3:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10515:13:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1004,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":982,"src":"10530:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1005,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":966,"src":"10540:3:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10530:13:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":999,"name":"Slice__","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"10493:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Slice___$146_$","typeString":"type(library Slice__)"}},"id":1000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10501:13:1","memberName":"fromUnchecked","nodeType":"MemberAccess","referencedDeclaration":145,"src":"10493:21:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_userDefinedValueType$_Slice_$74_$","typeString":"function (uint256,uint256) pure returns (Slice)"}},"id":1007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10493:51:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}}],"id":1008,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10455:90:1","typeDescriptions":{"typeIdentifier":"t_tuple$_t_userDefinedValueType$_Slice_$74_$_t_userDefinedValueType$_Slice_$74_$","typeString":"tuple(Slice,Slice)"}},"functionReturnParameters":974,"id":1009,"nodeType":"Return","src":"10448:97:1"}]},"documentation":{"id":961,"nodeType":"StructuredDocumentation","src":"10196:55:1","text":" @dev Divides one slice into two at an index."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"splitAt","nameLocation":"10261:7:1","parameters":{"id":967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":964,"mutability":"mutable","name":"self","nameLocation":"10275:4:1","nodeType":"VariableDeclaration","scope":1011,"src":"10269:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":963,"nodeType":"UserDefinedTypeName","pathNode":{"id":962,"name":"Slice","nameLocations":["10269:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"10269:5:1"},"referencedDeclaration":74,"src":"10269:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"},{"constant":false,"id":966,"mutability":"mutable","name":"mid","nameLocation":"10289:3:1","nodeType":"VariableDeclaration","scope":1011,"src":"10281:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":965,"name":"uint256","nodeType":"ElementaryTypeName","src":"10281:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10268:25:1"},"returnParameters":{"id":974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":970,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1011,"src":"10308:5:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":969,"nodeType":"UserDefinedTypeName","pathNode":{"id":968,"name":"Slice","nameLocations":["10308:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"10308:5:1"},"referencedDeclaration":74,"src":"10308:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"},{"constant":false,"id":973,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1011,"src":"10315:5:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":972,"nodeType":"UserDefinedTypeName","pathNode":{"id":971,"name":"Slice","nameLocations":["10315:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"10315:5:1"},"referencedDeclaration":74,"src":"10315:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"10307:14:1"},"scope":1733,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1054,"nodeType":"FunctionDefinition","src":"10651:388:1","nodes":[],"body":{"id":1053,"nodeType":"Block","src":"10733:306:1","nodes":[],"statements":[{"condition":{"id":1035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10743:36:1","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1025,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1017,"src":"10745:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":1026,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1019,"src":"10754:3:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10745:12:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1028,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1019,"src":"10761:3:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1029,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1015,"src":"10768:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10773:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"10768:8:1","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":1031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10768:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10761:17:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10745:33:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1034,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10744:35:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1039,"nodeType":"IfStatement","src":"10739:69:1","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1036,"name":"Slice__OutOfBounds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76,"src":"10788:18:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10788:20:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1038,"nodeType":"RevertStatement","src":"10781:27:1"}},{"id":1052,"nodeType":"UncheckedBlock","src":"10949:88:1","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1042,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1015,"src":"10998:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11003:3:1","memberName":"ptr","nodeType":"MemberAccess","referencedDeclaration":215,"src":"10998:8:1","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":1044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10998:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1045,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1017,"src":"11011:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10998:18:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1047,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1019,"src":"11018:3:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1048,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1017,"src":"11024:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11018:11:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1040,"name":"Slice__","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"10976:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Slice___$146_$","typeString":"type(library Slice__)"}},"id":1041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10984:13:1","memberName":"fromUnchecked","nodeType":"MemberAccess","referencedDeclaration":145,"src":"10976:21:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_userDefinedValueType$_Slice_$74_$","typeString":"function (uint256,uint256) pure returns (Slice)"}},"id":1050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10976:54:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"functionReturnParameters":1024,"id":1051,"nodeType":"Return","src":"10969:61:1"}]}]},"documentation":{"id":1012,"nodeType":"StructuredDocumentation","src":"10550:100:1","text":" @dev Returns a subslice [start:end] of `self`.\n Reverts if start/end are out of bounds."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"getSubslice","nameLocation":"10660:11:1","parameters":{"id":1020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1015,"mutability":"mutable","name":"self","nameLocation":"10678:4:1","nodeType":"VariableDeclaration","scope":1054,"src":"10672:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":1014,"nodeType":"UserDefinedTypeName","pathNode":{"id":1013,"name":"Slice","nameLocations":["10672:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"10672:5:1"},"referencedDeclaration":74,"src":"10672:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"},{"constant":false,"id":1017,"mutability":"mutable","name":"start","nameLocation":"10692:5:1","nodeType":"VariableDeclaration","scope":1054,"src":"10684:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1016,"name":"uint256","nodeType":"ElementaryTypeName","src":"10684:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1019,"mutability":"mutable","name":"end","nameLocation":"10707:3:1","nodeType":"VariableDeclaration","scope":1054,"src":"10699:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1018,"name":"uint256","nodeType":"ElementaryTypeName","src":"10699:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10671:40:1"},"returnParameters":{"id":1024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1023,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1054,"src":"10726:5:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":1022,"nodeType":"UserDefinedTypeName","pathNode":{"id":1021,"name":"Slice","nameLocations":["10726:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"10726:5:1"},"referencedDeclaration":74,"src":"10726:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"10725:7:1"},"scope":1733,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1088,"nodeType":"FunctionDefinition","src":"11128:211:1","nodes":[],"body":{"id":1087,"nodeType":"Block","src":"11195:144:1","nodes":[],"statements":[{"assignments":[1067],"declarations":[{"constant":false,"id":1067,"mutability":"mutable","name":"selfLen","nameLocation":"11209:7:1","nodeType":"VariableDeclaration","scope":1087,"src":"11201:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1066,"name":"uint256","nodeType":"ElementaryTypeName","src":"11201:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1071,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1068,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1058,"src":"11219:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11224:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"11219:8:1","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":1070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11219:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11201:28:1"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1072,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1060,"src":"11239:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1073,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1067,"src":"11247:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11239:15:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1078,"nodeType":"IfStatement","src":"11235:48:1","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1075,"name":"Slice__OutOfBounds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76,"src":"11263:18:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11263:20:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1077,"nodeType":"RevertStatement","src":"11256:27:1"}},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1081,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1058,"src":"11318:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11323:3:1","memberName":"ptr","nodeType":"MemberAccess","referencedDeclaration":215,"src":"11318:8:1","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":1083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11318:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1084,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1060,"src":"11330:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1079,"name":"Slice__","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"11296:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Slice___$146_$","typeString":"type(library Slice__)"}},"id":1080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11304:13:1","memberName":"fromUnchecked","nodeType":"MemberAccess","referencedDeclaration":145,"src":"11296:21:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_userDefinedValueType$_Slice_$74_$","typeString":"function (uint256,uint256) pure returns (Slice)"}},"id":1085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11296:40:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"functionReturnParameters":1065,"id":1086,"nodeType":"Return","src":"11289:47:1"}]},"documentation":{"id":1055,"nodeType":"StructuredDocumentation","src":"11041:86:1","text":" @dev Returns a subslice [:index] of `self`.\n Reverts if `index` > length."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"getBefore","nameLocation":"11137:9:1","parameters":{"id":1061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1058,"mutability":"mutable","name":"self","nameLocation":"11153:4:1","nodeType":"VariableDeclaration","scope":1088,"src":"11147:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":1057,"nodeType":"UserDefinedTypeName","pathNode":{"id":1056,"name":"Slice","nameLocations":["11147:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"11147:5:1"},"referencedDeclaration":74,"src":"11147:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"},{"constant":false,"id":1060,"mutability":"mutable","name":"index","nameLocation":"11167:5:1","nodeType":"VariableDeclaration","scope":1088,"src":"11159:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1059,"name":"uint256","nodeType":"ElementaryTypeName","src":"11159:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11146:27:1"},"returnParameters":{"id":1065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1064,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1088,"src":"11188:5:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":1063,"nodeType":"UserDefinedTypeName","pathNode":{"id":1062,"name":"Slice","nameLocations":["11188:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"11188:5:1"},"referencedDeclaration":74,"src":"11188:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"11187:7:1"},"scope":1733,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1127,"nodeType":"FunctionDefinition","src":"11428:320:1","nodes":[],"body":{"id":1126,"nodeType":"Block","src":"11494:254:1","nodes":[],"statements":[{"assignments":[1101],"declarations":[{"constant":false,"id":1101,"mutability":"mutable","name":"selfLen","nameLocation":"11508:7:1","nodeType":"VariableDeclaration","scope":1126,"src":"11500:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1100,"name":"uint256","nodeType":"ElementaryTypeName","src":"11500:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1105,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1102,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1092,"src":"11518:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11523:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"11518:8:1","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":1104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11518:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11500:28:1"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1106,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1094,"src":"11538:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1107,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1101,"src":"11546:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11538:15:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1112,"nodeType":"IfStatement","src":"11534:48:1","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1109,"name":"Slice__OutOfBounds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76,"src":"11562:18:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11562:20:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1111,"nodeType":"RevertStatement","src":"11555:27:1"}},{"id":1125,"nodeType":"UncheckedBlock","src":"11654:92:1","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1115,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1092,"src":"11703:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11708:3:1","memberName":"ptr","nodeType":"MemberAccess","referencedDeclaration":215,"src":"11703:8:1","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":1117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11703:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1118,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1094,"src":"11716:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11703:18:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1120,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1101,"src":"11723:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1121,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1094,"src":"11733:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11723:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1113,"name":"Slice__","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"11681:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Slice___$146_$","typeString":"type(library Slice__)"}},"id":1114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11689:13:1","memberName":"fromUnchecked","nodeType":"MemberAccess","referencedDeclaration":145,"src":"11681:21:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_userDefinedValueType$_Slice_$74_$","typeString":"function (uint256,uint256) pure returns (Slice)"}},"id":1123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11681:58:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"functionReturnParameters":1099,"id":1124,"nodeType":"Return","src":"11674:65:1"}]}]},"documentation":{"id":1089,"nodeType":"StructuredDocumentation","src":"11341:86:1","text":" @dev Returns a subslice [index:] of `self`.\n Reverts if `index` > length."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"getAfter","nameLocation":"11437:8:1","parameters":{"id":1095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1092,"mutability":"mutable","name":"self","nameLocation":"11452:4:1","nodeType":"VariableDeclaration","scope":1127,"src":"11446:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":1091,"nodeType":"UserDefinedTypeName","pathNode":{"id":1090,"name":"Slice","nameLocations":["11446:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"11446:5:1"},"referencedDeclaration":74,"src":"11446:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"},{"constant":false,"id":1094,"mutability":"mutable","name":"index","nameLocation":"11466:5:1","nodeType":"VariableDeclaration","scope":1127,"src":"11458:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1093,"name":"uint256","nodeType":"ElementaryTypeName","src":"11458:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11445:27:1"},"returnParameters":{"id":1099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1098,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1127,"src":"11487:5:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":1097,"nodeType":"UserDefinedTypeName","pathNode":{"id":1096,"name":"Slice","nameLocations":["11487:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"11487:5:1"},"referencedDeclaration":74,"src":"11487:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"11486:7:1"},"scope":1733,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1166,"nodeType":"FunctionDefinition","src":"11847:326:1","nodes":[],"body":{"id":1165,"nodeType":"Block","src":"11919:254:1","nodes":[],"statements":[{"assignments":[1140],"declarations":[{"constant":false,"id":1140,"mutability":"mutable","name":"selfLen","nameLocation":"11933:7:1","nodeType":"VariableDeclaration","scope":1165,"src":"11925:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1139,"name":"uint256","nodeType":"ElementaryTypeName","src":"11925:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1144,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1141,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1131,"src":"11943:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11948:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"11943:8:1","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":1143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11943:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11925:28:1"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1145,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1133,"src":"11963:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":1146,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1140,"src":"11972:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11963:16:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1151,"nodeType":"IfStatement","src":"11959:49:1","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1148,"name":"Slice__OutOfBounds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76,"src":"11988:18:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11988:20:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1150,"nodeType":"RevertStatement","src":"11981:27:1"}},{"id":1164,"nodeType":"UncheckedBlock","src":"12079:92:1","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1154,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1131,"src":"12128:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12133:3:1","memberName":"ptr","nodeType":"MemberAccess","referencedDeclaration":215,"src":"12128:8:1","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":1156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12128:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1157,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1133,"src":"12141:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12128:18:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1159,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1140,"src":"12148:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1160,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1133,"src":"12158:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12148:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1152,"name":"Slice__","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"12106:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Slice___$146_$","typeString":"type(library Slice__)"}},"id":1153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12114:13:1","memberName":"fromUnchecked","nodeType":"MemberAccess","referencedDeclaration":145,"src":"12106:21:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_userDefinedValueType$_Slice_$74_$","typeString":"function (uint256,uint256) pure returns (Slice)"}},"id":1162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12106:58:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"functionReturnParameters":1138,"id":1163,"nodeType":"Return","src":"12099:65:1"}]}]},"documentation":{"id":1128,"nodeType":"StructuredDocumentation","src":"11750:96:1","text":" @dev Returns a non-zero subslice [index:] of `self`.\n Reverts if `index` >= length."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"getAfterStrict","nameLocation":"11856:14:1","parameters":{"id":1134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1131,"mutability":"mutable","name":"self","nameLocation":"11877:4:1","nodeType":"VariableDeclaration","scope":1166,"src":"11871:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":1130,"nodeType":"UserDefinedTypeName","pathNode":{"id":1129,"name":"Slice","nameLocations":["11871:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"11871:5:1"},"referencedDeclaration":74,"src":"11871:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"},{"constant":false,"id":1133,"mutability":"mutable","name":"index","nameLocation":"11891:5:1","nodeType":"VariableDeclaration","scope":1166,"src":"11883:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1132,"name":"uint256","nodeType":"ElementaryTypeName","src":"11883:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11870:27:1"},"returnParameters":{"id":1138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1137,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1166,"src":"11912:5:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":1136,"nodeType":"UserDefinedTypeName","pathNode":{"id":1135,"name":"Slice","nameLocations":["11912:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"11912:5:1"},"referencedDeclaration":74,"src":"11912:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"11911:7:1"},"scope":1733,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1315,"nodeType":"FunctionDefinition","src":"12329:1697:1","nodes":[],"body":{"id":1314,"nodeType":"Block","src":"12393:1633:1","nodes":[],"statements":[{"assignments":[1179],"declarations":[{"constant":false,"id":1179,"mutability":"mutable","name":"offsetLen","nameLocation":"12468:9:1","nodeType":"VariableDeclaration","scope":1314,"src":"12460:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1178,"name":"uint256","nodeType":"ElementaryTypeName","src":"12460:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1183,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1180,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1170,"src":"12480:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12485:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"12480:8:1","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":1182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12480:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12460:30:1"},{"assignments":[1185],"declarations":[{"constant":false,"id":1185,"mutability":"mutable","name":"patLen","nameLocation":"12504:6:1","nodeType":"VariableDeclaration","scope":1314,"src":"12496:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1184,"name":"uint256","nodeType":"ElementaryTypeName","src":"12496:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1189,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1186,"name":"pattern","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1173,"src":"12513:7:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12521:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"12513:11:1","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":1188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12513:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12496:30:1"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1190,"name":"patLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1185,"src":"12536:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12546:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12536:11:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1196,"name":"offsetLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1179,"src":"12584:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12597:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12584:14:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1199,"name":"patLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1185,"src":"12602:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1200,"name":"offsetLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1179,"src":"12611:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12602:18:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12584:36:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1210,"nodeType":"IfStatement","src":"12580:83:1","trueBody":{"id":1209,"nodeType":"Block","src":"12622:41:1","statements":[{"expression":{"expression":{"arguments":[{"id":1205,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12644:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1204,"name":"uint256","nodeType":"ElementaryTypeName","src":"12644:7:1","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":1203,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"12639:4:1","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12639:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":1207,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12653:3:1","memberName":"max","nodeType":"MemberAccess","src":"12639:17:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1177,"id":1208,"nodeType":"Return","src":"12632:24:1"}]}},"id":1211,"nodeType":"IfStatement","src":"12532:131:1","trueBody":{"id":1195,"nodeType":"Block","src":"12549:25:1","statements":[{"expression":{"hexValue":"30","id":1193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12566:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":1177,"id":1194,"nodeType":"Return","src":"12559:8:1"}]}},{"assignments":[1213],"declarations":[{"constant":false,"id":1213,"mutability":"mutable","name":"offsetPtr","nameLocation":"12677:9:1","nodeType":"VariableDeclaration","scope":1314,"src":"12669:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1212,"name":"uint256","nodeType":"ElementaryTypeName","src":"12669:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1217,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1214,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1170,"src":"12689:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12694:3:1","memberName":"ptr","nodeType":"MemberAccess","referencedDeclaration":215,"src":"12689:8:1","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":1216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12689:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12669:30:1"},{"assignments":[1219],"declarations":[{"constant":false,"id":1219,"mutability":"mutable","name":"patPtr","nameLocation":"12713:6:1","nodeType":"VariableDeclaration","scope":1314,"src":"12705:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1218,"name":"uint256","nodeType":"ElementaryTypeName","src":"12705:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1223,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1220,"name":"pattern","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1173,"src":"12722:7:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12730:3:1","memberName":"ptr","nodeType":"MemberAccess","referencedDeclaration":215,"src":"12722:11:1","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":1222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12722:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12705:30:1"},{"assignments":[1225],"declarations":[{"constant":false,"id":1225,"mutability":"mutable","name":"patFirst","nameLocation":"12816:8:1","nodeType":"VariableDeclaration","scope":1314,"src":"12810:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1224,"name":"uint8","nodeType":"ElementaryTypeName","src":"12810:5:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":1229,"initialValue":{"arguments":[{"id":1227,"name":"patPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1219,"src":"12834:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1226,"name":"mload8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4426,"src":"12827:6:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint8_$","typeString":"function (uint256) pure returns (uint8)"}},"id":1228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12827:14:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"12810:31:1"},{"body":{"id":1306,"nodeType":"Block","src":"12861:1133:1","statements":[{"assignments":[1232],"declarations":[{"constant":false,"id":1232,"mutability":"mutable","name":"index","nameLocation":"12879:5:1","nodeType":"VariableDeclaration","scope":1306,"src":"12871:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1231,"name":"uint256","nodeType":"ElementaryTypeName","src":"12871:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1238,"initialValue":{"arguments":[{"id":1234,"name":"offsetPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1213,"src":"12894:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1235,"name":"offsetLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1179,"src":"12905:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1236,"name":"patFirst","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1225,"src":"12916:8:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1233,"name":"memchr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4815,"src":"12887:6:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint8_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint8) pure returns (uint256)"}},"id":1237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12887:38:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12871:54:1"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1239,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"12960:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":1242,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12974:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1241,"name":"uint256","nodeType":"ElementaryTypeName","src":"12974:7:1","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":1240,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"12969:4:1","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12969:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":1244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12983:3:1","memberName":"max","nodeType":"MemberAccess","src":"12969:17:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12960:26:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1252,"nodeType":"IfStatement","src":"12956:56:1","trueBody":{"expression":{"expression":{"arguments":[{"id":1248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13000:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1247,"name":"uint256","nodeType":"ElementaryTypeName","src":"13000:7:1","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":1246,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"12995:4:1","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12995:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":1250,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13009:3:1","memberName":"max","nodeType":"MemberAccess","src":"12995:17:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1177,"id":1251,"nodeType":"Return","src":"12988:24:1"}},{"id":1261,"nodeType":"UncheckedBlock","src":"13136:85:1","statements":[{"expression":{"id":1255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1253,"name":"offsetPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1213,"src":"13160:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":1254,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"13173:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13160:18:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1256,"nodeType":"ExpressionStatement","src":"13160:18:1"},{"expression":{"id":1259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1257,"name":"offsetLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1179,"src":"13192:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":1258,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"13205:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13192:18:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1260,"nodeType":"ExpressionStatement","src":"13192:18:1"}]},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1262,"name":"patLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1185,"src":"13287:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1263,"name":"offsetLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1179,"src":"13296:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13287:18:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1272,"nodeType":"IfStatement","src":"13283:73:1","trueBody":{"id":1271,"nodeType":"Block","src":"13307:49:1","statements":[{"expression":{"expression":{"arguments":[{"id":1267,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13333:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1266,"name":"uint256","nodeType":"ElementaryTypeName","src":"13333:7:1","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":1265,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"13328:4:1","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13328:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":1269,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13342:3:1","memberName":"max","nodeType":"MemberAccess","src":"13328:17:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1177,"id":1270,"nodeType":"Return","src":"13321:24:1"}]}},{"condition":{"arguments":[{"id":1274,"name":"offsetPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1213,"src":"13376:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1275,"name":"patPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1219,"src":"13387:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1276,"name":"patLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1185,"src":"13395:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1273,"name":"memeq","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4569,"src":"13370:5:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256,uint256) pure returns (bool)"}},"id":1277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13370:32:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1286,"name":"offsetLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1179,"src":"13512:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":1287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13525:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13512:14:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1303,"nodeType":"Block","src":"13640:348:1","statements":[{"id":1302,"nodeType":"UncheckedBlock","src":"13801:177:1","statements":[{"expression":{"id":1297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13923:11:1","subExpression":{"id":1296,"name":"offsetPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1213,"src":"13923:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1298,"nodeType":"ExpressionStatement","src":"13923:11:1"},{"expression":{"id":1300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"13952:11:1","subExpression":{"id":1299,"name":"offsetLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1179,"src":"13952:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1301,"nodeType":"ExpressionStatement","src":"13952:11:1"}]}]},"id":1304,"nodeType":"IfStatement","src":"13508:480:1","trueBody":{"id":1295,"nodeType":"Block","src":"13528:106:1","statements":[{"expression":{"expression":{"arguments":[{"id":1291,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13611:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1290,"name":"uint256","nodeType":"ElementaryTypeName","src":"13611:7:1","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":1289,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"13606:4:1","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13606:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":1293,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13620:3:1","memberName":"max","nodeType":"MemberAccess","src":"13606:17:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1177,"id":1294,"nodeType":"Return","src":"13599:24:1"}]}},"id":1305,"nodeType":"IfStatement","src":"13366:622:1","trueBody":{"id":1285,"nodeType":"Block","src":"13404:98:1","statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1278,"name":"offsetPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1213,"src":"13468:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1279,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1170,"src":"13480:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13485:3:1","memberName":"ptr","nodeType":"MemberAccess","referencedDeclaration":215,"src":"13480:8:1","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":1281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13480:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13468:22:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1283,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13467:24:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1177,"id":1284,"nodeType":"Return","src":"13460:31:1"}]}}]},"condition":{"hexValue":"74727565","id":1230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12855:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":1307,"nodeType":"WhileStatement","src":"12848:1146:1"},{"expression":{"expression":{"arguments":[{"id":1310,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14011:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1309,"name":"uint256","nodeType":"ElementaryTypeName","src":"14011:7:1","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":1308,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14006:4:1","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14006:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":1312,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14020:3:1","memberName":"max","nodeType":"MemberAccess","src":"14006:17:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1177,"id":1313,"nodeType":"Return","src":"13999:24:1"}]},"documentation":{"id":1167,"nodeType":"StructuredDocumentation","src":"12175:153:1","text":" @dev Returns the byte index of the first slice of `self` that matches `pattern`.\n Returns type(uint256).max if the `pattern` does not match."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"find","nameLocation":"12338:4:1","parameters":{"id":1174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1170,"mutability":"mutable","name":"self","nameLocation":"12349:4:1","nodeType":"VariableDeclaration","scope":1315,"src":"12343:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":1169,"nodeType":"UserDefinedTypeName","pathNode":{"id":1168,"name":"Slice","nameLocations":["12343:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"12343:5:1"},"referencedDeclaration":74,"src":"12343:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"},{"constant":false,"id":1173,"mutability":"mutable","name":"pattern","nameLocation":"12361:7:1","nodeType":"VariableDeclaration","scope":1315,"src":"12355:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":1172,"nodeType":"UserDefinedTypeName","pathNode":{"id":1171,"name":"Slice","nameLocations":["12355:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"12355:5:1"},"referencedDeclaration":74,"src":"12355:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"12342:27:1"},"returnParameters":{"id":1177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1176,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1315,"src":"12384:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1175,"name":"uint256","nodeType":"ElementaryTypeName","src":"12384:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12383:9:1"},"scope":1733,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1466,"nodeType":"FunctionDefinition","src":"14181:2110:1","nodes":[],"body":{"id":1465,"nodeType":"Block","src":"14246:2045:1","nodes":[],"statements":[{"assignments":[1328],"declarations":[{"constant":false,"id":1328,"mutability":"mutable","name":"offsetLen","nameLocation":"14321:9:1","nodeType":"VariableDeclaration","scope":1465,"src":"14313:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1327,"name":"uint256","nodeType":"ElementaryTypeName","src":"14313:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1332,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1329,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1319,"src":"14333:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14338:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"14333:8:1","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":1331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14333:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14313:30:1"},{"assignments":[1334],"declarations":[{"constant":false,"id":1334,"mutability":"mutable","name":"patLen","nameLocation":"14357:6:1","nodeType":"VariableDeclaration","scope":1465,"src":"14349:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1333,"name":"uint256","nodeType":"ElementaryTypeName","src":"14349:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1338,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1335,"name":"pattern","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1322,"src":"14366:7:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14374:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"14366:11:1","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":1337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14366:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14349:30:1"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1339,"name":"patLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1334,"src":"14389:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14399:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14389:11:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1345,"name":"offsetLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1328,"src":"14437:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14450:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14437:14:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1348,"name":"patLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1334,"src":"14455:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1349,"name":"offsetLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1328,"src":"14464:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14455:18:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14437:36:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1359,"nodeType":"IfStatement","src":"14433:83:1","trueBody":{"id":1358,"nodeType":"Block","src":"14475:41:1","statements":[{"expression":{"expression":{"arguments":[{"id":1354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14497:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1353,"name":"uint256","nodeType":"ElementaryTypeName","src":"14497:7:1","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":1352,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14492:4:1","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14492:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":1356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14506:3:1","memberName":"max","nodeType":"MemberAccess","src":"14492:17:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1326,"id":1357,"nodeType":"Return","src":"14485:24:1"}]}},"id":1360,"nodeType":"IfStatement","src":"14385:131:1","trueBody":{"id":1344,"nodeType":"Block","src":"14402:25:1","statements":[{"expression":{"hexValue":"30","id":1342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14419:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":1326,"id":1343,"nodeType":"Return","src":"14412:8:1"}]}},{"assignments":[1362],"declarations":[{"constant":false,"id":1362,"mutability":"mutable","name":"selfPtr","nameLocation":"14530:7:1","nodeType":"VariableDeclaration","scope":1465,"src":"14522:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1361,"name":"uint256","nodeType":"ElementaryTypeName","src":"14522:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1366,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1363,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1319,"src":"14540:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14545:3:1","memberName":"ptr","nodeType":"MemberAccess","referencedDeclaration":215,"src":"14540:8:1","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":1365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14540:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14522:28:1"},{"assignments":[1368],"declarations":[{"constant":false,"id":1368,"mutability":"mutable","name":"patPtr","nameLocation":"14564:6:1","nodeType":"VariableDeclaration","scope":1465,"src":"14556:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1367,"name":"uint256","nodeType":"ElementaryTypeName","src":"14556:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1372,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1369,"name":"pattern","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1322,"src":"14573:7:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14581:3:1","memberName":"ptr","nodeType":"MemberAccess","referencedDeclaration":215,"src":"14573:11:1","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":1371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14573:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14556:30:1"},{"assignments":[1374],"declarations":[{"constant":false,"id":1374,"mutability":"mutable","name":"patLast","nameLocation":"14598:7:1","nodeType":"VariableDeclaration","scope":1465,"src":"14592:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1373,"name":"uint8","nodeType":"ElementaryTypeName","src":"14592:5:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":1378,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1375,"name":"pattern","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1322,"src":"14608:7:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14616:4:1","memberName":"last","nodeType":"MemberAccess","referencedDeclaration":960,"src":"14608:12:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Slice_$74_$returns$_t_uint8_$attached_to$_t_userDefinedValueType$_Slice_$74_$","typeString":"function (Slice) pure returns (uint8)"}},"id":1377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14608:14:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"14592:30:1"},{"assignments":[1380],"declarations":[{"constant":false,"id":1380,"mutability":"mutable","name":"patLastIndex","nameLocation":"14726:12:1","nodeType":"VariableDeclaration","scope":1465,"src":"14718:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1379,"name":"uint256","nodeType":"ElementaryTypeName","src":"14718:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1381,"nodeType":"VariableDeclarationStatement","src":"14718:20:1"},{"id":1388,"nodeType":"UncheckedBlock","src":"14793:52:1","statements":[{"expression":{"id":1386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1382,"name":"patLastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1380,"src":"14813:12:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1383,"name":"patLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1334,"src":"14828:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14837:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14828:10:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14813:25:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1387,"nodeType":"ExpressionStatement","src":"14813:25:1"}]},{"body":{"id":1457,"nodeType":"Block","src":"14864:1395:1","statements":[{"assignments":[1391],"declarations":[{"constant":false,"id":1391,"mutability":"mutable","name":"endIndex","nameLocation":"14882:8:1","nodeType":"VariableDeclaration","scope":1457,"src":"14874:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1390,"name":"uint256","nodeType":"ElementaryTypeName","src":"14874:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1397,"initialValue":{"arguments":[{"id":1393,"name":"selfPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1362,"src":"14901:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1394,"name":"offsetLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1328,"src":"14910:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1395,"name":"patLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1374,"src":"14921:7:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1392,"name":"memrchr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4938,"src":"14893:7:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint8_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint8) pure returns (uint256)"}},"id":1396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14893:36:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14874:55:1"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1398,"name":"endIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1391,"src":"14964:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":1401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14981:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1400,"name":"uint256","nodeType":"ElementaryTypeName","src":"14981:7:1","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":1399,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14976:4:1","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14976:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":1403,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14990:3:1","memberName":"max","nodeType":"MemberAccess","src":"14976:17:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14964:29:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1411,"nodeType":"IfStatement","src":"14960:59:1","trueBody":{"expression":{"expression":{"arguments":[{"id":1407,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15007:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1406,"name":"uint256","nodeType":"ElementaryTypeName","src":"15007:7:1","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":1405,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"15002:4:1","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15002:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":1409,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15016:3:1","memberName":"max","nodeType":"MemberAccess","src":"15002:17:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1326,"id":1410,"nodeType":"Return","src":"14995:24:1"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1412,"name":"patLastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1380,"src":"15086:12:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1413,"name":"endIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1391,"src":"15101:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15086:23:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1421,"nodeType":"IfStatement","src":"15082:53:1","trueBody":{"expression":{"expression":{"arguments":[{"id":1417,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15123:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1416,"name":"uint256","nodeType":"ElementaryTypeName","src":"15123:7:1","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":1415,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"15118:4:1","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15118:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":1419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15132:3:1","memberName":"max","nodeType":"MemberAccess","src":"15118:17:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1326,"id":1420,"nodeType":"Return","src":"15111:24:1"}},{"id":1456,"nodeType":"UncheckedBlock","src":"15361:892:1","statements":[{"assignments":[1423],"declarations":[{"constant":false,"id":1423,"mutability":"mutable","name":"startIndex","nameLocation":"15454:10:1","nodeType":"VariableDeclaration","scope":1456,"src":"15446:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1422,"name":"uint256","nodeType":"ElementaryTypeName","src":"15446:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1427,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1424,"name":"endIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1391,"src":"15467:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1425,"name":"patLastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1380,"src":"15478:12:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15467:23:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15446:44:1"},{"condition":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1429,"name":"selfPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1362,"src":"15515:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1430,"name":"startIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1423,"src":"15525:10:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15515:20:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1432,"name":"patPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1368,"src":"15537:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1433,"name":"patLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1334,"src":"15545:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1428,"name":"memeq","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4569,"src":"15509:5:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256,uint256) pure returns (bool)"}},"id":1434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15509:43:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1438,"name":"endIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1391,"src":"15653:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15664:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15653:12:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1453,"nodeType":"Block","src":"16125:118:1","statements":[{"expression":{"expression":{"arguments":[{"id":1449,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16216:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1448,"name":"uint256","nodeType":"ElementaryTypeName","src":"16216:7:1","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":1447,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"16211:4:1","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16211:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":1451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16225:3:1","memberName":"max","nodeType":"MemberAccess","src":"16211:17:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1326,"id":1452,"nodeType":"Return","src":"16204:24:1"}]},"id":1454,"nodeType":"IfStatement","src":"15649:594:1","trueBody":{"id":1446,"nodeType":"Block","src":"15667:452:1","statements":[{"expression":{"id":1443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1441,"name":"offsetLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1328,"src":"15986:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1442,"name":"endIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1391,"src":"15998:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15986:20:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1444,"nodeType":"ExpressionStatement","src":"15986:20:1"},{"id":1445,"nodeType":"Continue","src":"16096:8:1"}]}},"id":1455,"nodeType":"IfStatement","src":"15505:738:1","trueBody":{"id":1437,"nodeType":"Block","src":"15554:89:1","statements":[{"expression":{"id":1435,"name":"startIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1423,"src":"15618:10:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1326,"id":1436,"nodeType":"Return","src":"15611:17:1"}]}}]}]},"condition":{"hexValue":"74727565","id":1389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14858:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":1458,"nodeType":"WhileStatement","src":"14851:1408:1"},{"expression":{"expression":{"arguments":[{"id":1461,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16276:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1460,"name":"uint256","nodeType":"ElementaryTypeName","src":"16276:7:1","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":1459,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"16271:4:1","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16271:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":1463,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16285:3:1","memberName":"max","nodeType":"MemberAccess","src":"16271:17:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1326,"id":1464,"nodeType":"Return","src":"16264:24:1"}]},"documentation":{"id":1316,"nodeType":"StructuredDocumentation","src":"14028:152:1","text":" @dev Returns the byte index of the last slice of `self` that matches `pattern`.\n Returns type(uint256).max if the `pattern` does not match."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"rfind","nameLocation":"14190:5:1","parameters":{"id":1323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1319,"mutability":"mutable","name":"self","nameLocation":"14202:4:1","nodeType":"VariableDeclaration","scope":1466,"src":"14196:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":1318,"nodeType":"UserDefinedTypeName","pathNode":{"id":1317,"name":"Slice","nameLocations":["14196:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"14196:5:1"},"referencedDeclaration":74,"src":"14196:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"},{"constant":false,"id":1322,"mutability":"mutable","name":"pattern","nameLocation":"14214:7:1","nodeType":"VariableDeclaration","scope":1466,"src":"14208:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":1321,"nodeType":"UserDefinedTypeName","pathNode":{"id":1320,"name":"Slice","nameLocations":["14208:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"14208:5:1"},"referencedDeclaration":74,"src":"14208:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"14195:27:1"},"returnParameters":{"id":1326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1325,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1466,"src":"14237:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1324,"name":"uint256","nodeType":"ElementaryTypeName","src":"14237:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14236:9:1"},"scope":1733,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1490,"nodeType":"FunctionDefinition","src":"16386:120:1","nodes":[],"body":{"id":1489,"nodeType":"Block","src":"16451:55:1","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1480,"name":"pattern","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1473,"src":"16474:7:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}],"expression":{"id":1478,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1470,"src":"16464:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16469:4:1","memberName":"find","nodeType":"MemberAccess","referencedDeclaration":1315,"src":"16464:9:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Slice_$74_$_t_userDefinedValueType$_Slice_$74_$returns$_t_uint256_$attached_to$_t_userDefinedValueType$_Slice_$74_$","typeString":"function (Slice,Slice) pure returns (uint256)"}},"id":1481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16464:18:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":1484,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16491:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1483,"name":"uint256","nodeType":"ElementaryTypeName","src":"16491:7:1","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":1482,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"16486:4:1","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16486:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":1486,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16500:3:1","memberName":"max","nodeType":"MemberAccess","src":"16486:17:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16464:39:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1477,"id":1488,"nodeType":"Return","src":"16457:46:1"}]},"documentation":{"id":1467,"nodeType":"StructuredDocumentation","src":"16293:92:1","text":" @dev Returns true if the given pattern matches a sub-slice of this `bytes` slice."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"contains","nameLocation":"16395:8:1","parameters":{"id":1474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1470,"mutability":"mutable","name":"self","nameLocation":"16410:4:1","nodeType":"VariableDeclaration","scope":1490,"src":"16404:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":1469,"nodeType":"UserDefinedTypeName","pathNode":{"id":1468,"name":"Slice","nameLocations":["16404:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"16404:5:1"},"referencedDeclaration":74,"src":"16404:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"},{"constant":false,"id":1473,"mutability":"mutable","name":"pattern","nameLocation":"16422:7:1","nodeType":"VariableDeclaration","scope":1490,"src":"16416:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":1472,"nodeType":"UserDefinedTypeName","pathNode":{"id":1471,"name":"Slice","nameLocations":["16416:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"16416:5:1"},"referencedDeclaration":74,"src":"16416:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"16403:27:1"},"returnParameters":{"id":1477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1476,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1490,"src":"16445:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1475,"name":"bool","nodeType":"ElementaryTypeName","src":"16445:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16444:6:1"},"scope":1733,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1543,"nodeType":"FunctionDefinition","src":"16590:353:1","nodes":[],"body":{"id":1542,"nodeType":"Block","src":"16657:286:1","nodes":[],"statements":[{"assignments":[1503],"declarations":[{"constant":false,"id":1503,"mutability":"mutable","name":"selfLen","nameLocation":"16671:7:1","nodeType":"VariableDeclaration","scope":1542,"src":"16663:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1502,"name":"uint256","nodeType":"ElementaryTypeName","src":"16663:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1507,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1504,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1494,"src":"16681:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16686:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"16681:8:1","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":1506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16681:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16663:28:1"},{"assignments":[1509],"declarations":[{"constant":false,"id":1509,"mutability":"mutable","name":"patLen","nameLocation":"16705:6:1","nodeType":"VariableDeclaration","scope":1542,"src":"16697:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1508,"name":"uint256","nodeType":"ElementaryTypeName","src":"16697:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1513,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1510,"name":"pattern","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1497,"src":"16714:7:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16722:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"16714:11:1","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":1512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16714:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16697:30:1"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1514,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1503,"src":"16737:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1515,"name":"patLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1509,"src":"16747:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16737:16:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1519,"nodeType":"IfStatement","src":"16733:34:1","trueBody":{"expression":{"hexValue":"66616c7365","id":1517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16762:5:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":1501,"id":1518,"nodeType":"Return","src":"16755:12:1"}},{"assignments":[1522],"declarations":[{"constant":false,"id":1522,"mutability":"mutable","name":"prefix","nameLocation":"16780:6:1","nodeType":"VariableDeclaration","scope":1542,"src":"16774:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":1521,"nodeType":"UserDefinedTypeName","pathNode":{"id":1520,"name":"Slice","nameLocations":["16774:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"16774:5:1"},"referencedDeclaration":74,"src":"16774:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"id":1524,"initialValue":{"id":1523,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1494,"src":"16789:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"nodeType":"VariableDeclarationStatement","src":"16774:19:1"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1525,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1503,"src":"16844:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1526,"name":"patLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1509,"src":"16854:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16844:16:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1536,"nodeType":"IfStatement","src":"16840:70:1","trueBody":{"id":1535,"nodeType":"Block","src":"16862:48:1","statements":[{"expression":{"id":1533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1528,"name":"prefix","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1522,"src":"16872:6:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1531,"name":"patLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1509,"src":"16896:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1529,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1494,"src":"16881:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16886:9:1","memberName":"getBefore","nodeType":"MemberAccess","referencedDeclaration":1088,"src":"16881:14:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Slice_$74_$_t_uint256_$returns$_t_userDefinedValueType$_Slice_$74_$attached_to$_t_userDefinedValueType$_Slice_$74_$","typeString":"function (Slice,uint256) pure returns (Slice)"}},"id":1532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16881:22:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"src":"16872:31:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1534,"nodeType":"ExpressionStatement","src":"16872:31:1"}]}},{"expression":{"arguments":[{"id":1539,"name":"pattern","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1497,"src":"16932:7:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}],"expression":{"id":1537,"name":"prefix","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1522,"src":"16922:6:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16929:2:1","memberName":"eq","nodeType":"MemberAccess","referencedDeclaration":752,"src":"16922:9:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Slice_$74_$_t_userDefinedValueType$_Slice_$74_$returns$_t_bool_$attached_to$_t_userDefinedValueType$_Slice_$74_$","typeString":"function (Slice,Slice) pure returns (bool)"}},"id":1540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16922:18:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1501,"id":1541,"nodeType":"Return","src":"16915:25:1"}]},"documentation":{"id":1491,"nodeType":"StructuredDocumentation","src":"16508:81:1","text":" @dev Returns true if the given pattern matches a prefix of this slice."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"startsWith","nameLocation":"16599:10:1","parameters":{"id":1498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1494,"mutability":"mutable","name":"self","nameLocation":"16616:4:1","nodeType":"VariableDeclaration","scope":1543,"src":"16610:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":1493,"nodeType":"UserDefinedTypeName","pathNode":{"id":1492,"name":"Slice","nameLocations":["16610:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"16610:5:1"},"referencedDeclaration":74,"src":"16610:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"},{"constant":false,"id":1497,"mutability":"mutable","name":"pattern","nameLocation":"16628:7:1","nodeType":"VariableDeclaration","scope":1543,"src":"16622:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":1496,"nodeType":"UserDefinedTypeName","pathNode":{"id":1495,"name":"Slice","nameLocations":["16622:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"16622:5:1"},"referencedDeclaration":74,"src":"16622:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"16609:27:1"},"returnParameters":{"id":1501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1500,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1543,"src":"16651:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1499,"name":"bool","nodeType":"ElementaryTypeName","src":"16651:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16650:6:1"},"scope":1733,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1598,"nodeType":"FunctionDefinition","src":"17027:360:1","nodes":[],"body":{"id":1597,"nodeType":"Block","src":"17092:295:1","nodes":[],"statements":[{"assignments":[1556],"declarations":[{"constant":false,"id":1556,"mutability":"mutable","name":"selfLen","nameLocation":"17106:7:1","nodeType":"VariableDeclaration","scope":1597,"src":"17098:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1555,"name":"uint256","nodeType":"ElementaryTypeName","src":"17098:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1560,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1557,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1547,"src":"17116:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17121:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"17116:8:1","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":1559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17116:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17098:28:1"},{"assignments":[1562],"declarations":[{"constant":false,"id":1562,"mutability":"mutable","name":"patLen","nameLocation":"17140:6:1","nodeType":"VariableDeclaration","scope":1597,"src":"17132:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1561,"name":"uint256","nodeType":"ElementaryTypeName","src":"17132:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1566,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1563,"name":"pattern","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1550,"src":"17149:7:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17157:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"17149:11:1","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":1565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17149:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17132:30:1"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1567,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1556,"src":"17172:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1568,"name":"patLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1562,"src":"17182:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17172:16:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1572,"nodeType":"IfStatement","src":"17168:34:1","trueBody":{"expression":{"hexValue":"66616c7365","id":1570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17197:5:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":1554,"id":1571,"nodeType":"Return","src":"17190:12:1"}},{"assignments":[1575],"declarations":[{"constant":false,"id":1575,"mutability":"mutable","name":"suffix","nameLocation":"17215:6:1","nodeType":"VariableDeclaration","scope":1597,"src":"17209:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":1574,"nodeType":"UserDefinedTypeName","pathNode":{"id":1573,"name":"Slice","nameLocations":["17209:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"17209:5:1"},"referencedDeclaration":74,"src":"17209:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"id":1577,"initialValue":{"id":1576,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1547,"src":"17224:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"nodeType":"VariableDeclarationStatement","src":"17209:19:1"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1578,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1556,"src":"17279:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1579,"name":"patLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1562,"src":"17289:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17279:16:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1591,"nodeType":"IfStatement","src":"17275:79:1","trueBody":{"id":1590,"nodeType":"Block","src":"17297:57:1","statements":[{"expression":{"id":1588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1581,"name":"suffix","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1575,"src":"17307:6:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1584,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1556,"src":"17330:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1585,"name":"patLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1562,"src":"17340:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17330:16:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1582,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1547,"src":"17316:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17321:8:1","memberName":"getAfter","nodeType":"MemberAccess","referencedDeclaration":1127,"src":"17316:13:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Slice_$74_$_t_uint256_$returns$_t_userDefinedValueType$_Slice_$74_$attached_to$_t_userDefinedValueType$_Slice_$74_$","typeString":"function (Slice,uint256) pure returns (Slice)"}},"id":1587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17316:31:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"src":"17307:40:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1589,"nodeType":"ExpressionStatement","src":"17307:40:1"}]}},{"expression":{"arguments":[{"id":1594,"name":"pattern","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1550,"src":"17376:7:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}],"expression":{"id":1592,"name":"suffix","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1575,"src":"17366:6:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17373:2:1","memberName":"eq","nodeType":"MemberAccess","referencedDeclaration":752,"src":"17366:9:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Slice_$74_$_t_userDefinedValueType$_Slice_$74_$returns$_t_bool_$attached_to$_t_userDefinedValueType$_Slice_$74_$","typeString":"function (Slice,Slice) pure returns (bool)"}},"id":1595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17366:18:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1554,"id":1596,"nodeType":"Return","src":"17359:25:1"}]},"documentation":{"id":1544,"nodeType":"StructuredDocumentation","src":"16945:81:1","text":" @dev Returns true if the given pattern matches a suffix of this slice."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"endsWith","nameLocation":"17036:8:1","parameters":{"id":1551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1547,"mutability":"mutable","name":"self","nameLocation":"17051:4:1","nodeType":"VariableDeclaration","scope":1598,"src":"17045:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":1546,"nodeType":"UserDefinedTypeName","pathNode":{"id":1545,"name":"Slice","nameLocations":["17045:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"17045:5:1"},"referencedDeclaration":74,"src":"17045:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"},{"constant":false,"id":1550,"mutability":"mutable","name":"pattern","nameLocation":"17063:7:1","nodeType":"VariableDeclaration","scope":1598,"src":"17057:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":1549,"nodeType":"UserDefinedTypeName","pathNode":{"id":1548,"name":"Slice","nameLocations":["17057:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"17057:5:1"},"referencedDeclaration":74,"src":"17057:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"17044:27:1"},"returnParameters":{"id":1554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1553,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1598,"src":"17086:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1552,"name":"bool","nodeType":"ElementaryTypeName","src":"17086:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17085:6:1"},"scope":1733,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1652,"nodeType":"FunctionDefinition","src":"17515:333:1","nodes":[],"body":{"id":1651,"nodeType":"Block","src":"17584:264:1","nodes":[],"statements":[{"assignments":[1612],"declarations":[{"constant":false,"id":1612,"mutability":"mutable","name":"selfLen","nameLocation":"17598:7:1","nodeType":"VariableDeclaration","scope":1651,"src":"17590:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1611,"name":"uint256","nodeType":"ElementaryTypeName","src":"17590:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1616,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1613,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1602,"src":"17608:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17613:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"17608:8:1","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":1615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17608:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17590:28:1"},{"assignments":[1618],"declarations":[{"constant":false,"id":1618,"mutability":"mutable","name":"patLen","nameLocation":"17632:6:1","nodeType":"VariableDeclaration","scope":1651,"src":"17624:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1617,"name":"uint256","nodeType":"ElementaryTypeName","src":"17624:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1622,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1619,"name":"pattern","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1605,"src":"17641:7:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17649:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"17641:11:1","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":1621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17641:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17624:30:1"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1623,"name":"patLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1618,"src":"17664:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1624,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1612,"src":"17673:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17664:16:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1628,"nodeType":"IfStatement","src":"17660:33:1","trueBody":{"expression":{"id":1626,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1602,"src":"17689:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"functionReturnParameters":1610,"id":1627,"nodeType":"Return","src":"17682:11:1"}},{"assignments":[1631,1634],"declarations":[{"constant":false,"id":1631,"mutability":"mutable","name":"prefix","nameLocation":"17707:6:1","nodeType":"VariableDeclaration","scope":1651,"src":"17701:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":1630,"nodeType":"UserDefinedTypeName","pathNode":{"id":1629,"name":"Slice","nameLocations":["17701:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"17701:5:1"},"referencedDeclaration":74,"src":"17701:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"},{"constant":false,"id":1634,"mutability":"mutable","name":"suffix","nameLocation":"17721:6:1","nodeType":"VariableDeclaration","scope":1651,"src":"17715:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":1633,"nodeType":"UserDefinedTypeName","pathNode":{"id":1632,"name":"Slice","nameLocations":["17715:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"17715:5:1"},"referencedDeclaration":74,"src":"17715:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"id":1639,"initialValue":{"arguments":[{"id":1637,"name":"patLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1618,"src":"17744:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1635,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1602,"src":"17731:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17736:7:1","memberName":"splitAt","nodeType":"MemberAccess","referencedDeclaration":1011,"src":"17731:12:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Slice_$74_$_t_uint256_$returns$_t_userDefinedValueType$_Slice_$74_$_t_userDefinedValueType$_Slice_$74_$attached_to$_t_userDefinedValueType$_Slice_$74_$","typeString":"function (Slice,uint256) pure returns (Slice,Slice)"}},"id":1638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17731:20:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_userDefinedValueType$_Slice_$74_$_t_userDefinedValueType$_Slice_$74_$","typeString":"tuple(Slice,Slice)"}},"nodeType":"VariableDeclarationStatement","src":"17700:51:1"},{"condition":{"arguments":[{"id":1642,"name":"pattern","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1605,"src":"17772:7:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}],"expression":{"id":1640,"name":"prefix","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"17762:6:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17769:2:1","memberName":"eq","nodeType":"MemberAccess","referencedDeclaration":752,"src":"17762:9:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Slice_$74_$_t_userDefinedValueType$_Slice_$74_$returns$_t_bool_$attached_to$_t_userDefinedValueType$_Slice_$74_$","typeString":"function (Slice,Slice) pure returns (bool)"}},"id":1643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17762:18:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1649,"nodeType":"Block","src":"17818:28:1","statements":[{"expression":{"id":1647,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1602,"src":"17835:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"functionReturnParameters":1610,"id":1648,"nodeType":"Return","src":"17828:11:1"}]},"id":1650,"nodeType":"IfStatement","src":"17758:88:1","trueBody":{"id":1646,"nodeType":"Block","src":"17782:30:1","statements":[{"expression":{"id":1644,"name":"suffix","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1634,"src":"17799:6:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"functionReturnParameters":1610,"id":1645,"nodeType":"Return","src":"17792:13:1"}]}}]},"documentation":{"id":1599,"nodeType":"StructuredDocumentation","src":"17389:125:1","text":" @dev Returns a subslice with the prefix removed.\n If it does not start with `prefix`, returns `self` unmodified."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"stripPrefix","nameLocation":"17524:11:1","parameters":{"id":1606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1602,"mutability":"mutable","name":"self","nameLocation":"17542:4:1","nodeType":"VariableDeclaration","scope":1652,"src":"17536:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":1601,"nodeType":"UserDefinedTypeName","pathNode":{"id":1600,"name":"Slice","nameLocations":["17536:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"17536:5:1"},"referencedDeclaration":74,"src":"17536:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"},{"constant":false,"id":1605,"mutability":"mutable","name":"pattern","nameLocation":"17554:7:1","nodeType":"VariableDeclaration","scope":1652,"src":"17548:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":1604,"nodeType":"UserDefinedTypeName","pathNode":{"id":1603,"name":"Slice","nameLocations":["17548:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"17548:5:1"},"referencedDeclaration":74,"src":"17548:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"17535:27:1"},"returnParameters":{"id":1610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1609,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1652,"src":"17577:5:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":1608,"nodeType":"UserDefinedTypeName","pathNode":{"id":1607,"name":"Slice","nameLocations":["17577:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"17577:5:1"},"referencedDeclaration":74,"src":"17577:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"17576:7:1"},"scope":1733,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1716,"nodeType":"FunctionDefinition","src":"17974:445:1","nodes":[],"body":{"id":1715,"nodeType":"Block","src":"18043:376:1","nodes":[],"statements":[{"assignments":[1666],"declarations":[{"constant":false,"id":1666,"mutability":"mutable","name":"selfLen","nameLocation":"18057:7:1","nodeType":"VariableDeclaration","scope":1715,"src":"18049:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1665,"name":"uint256","nodeType":"ElementaryTypeName","src":"18049:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1670,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1667,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1656,"src":"18067:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18072:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"18067:8:1","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":1669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18067:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18049:28:1"},{"assignments":[1672],"declarations":[{"constant":false,"id":1672,"mutability":"mutable","name":"patLen","nameLocation":"18091:6:1","nodeType":"VariableDeclaration","scope":1715,"src":"18083:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1671,"name":"uint256","nodeType":"ElementaryTypeName","src":"18083:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1676,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1673,"name":"pattern","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1659,"src":"18100:7:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18108:3:1","memberName":"len","nodeType":"MemberAccess","referencedDeclaration":233,"src":"18100:11:1","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":1675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18100:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18083:30:1"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1677,"name":"patLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1672,"src":"18123:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1678,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1666,"src":"18132:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18123:16:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1682,"nodeType":"IfStatement","src":"18119:33:1","trueBody":{"expression":{"id":1680,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1656,"src":"18148:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"functionReturnParameters":1664,"id":1681,"nodeType":"Return","src":"18141:11:1"}},{"assignments":[1684],"declarations":[{"constant":false,"id":1684,"mutability":"mutable","name":"index","nameLocation":"18167:5:1","nodeType":"VariableDeclaration","scope":1715,"src":"18159:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1683,"name":"uint256","nodeType":"ElementaryTypeName","src":"18159:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1685,"nodeType":"VariableDeclarationStatement","src":"18159:13:1"},{"id":1692,"nodeType":"UncheckedBlock","src":"18216:51:1","statements":[{"expression":{"id":1690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1686,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1684,"src":"18236:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1687,"name":"selfLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1666,"src":"18244:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1688,"name":"patLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1672,"src":"18254:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18244:16:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18236:24:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1691,"nodeType":"ExpressionStatement","src":"18236:24:1"}]},{"assignments":[1695,1698],"declarations":[{"constant":false,"id":1695,"mutability":"mutable","name":"prefix","nameLocation":"18279:6:1","nodeType":"VariableDeclaration","scope":1715,"src":"18273:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":1694,"nodeType":"UserDefinedTypeName","pathNode":{"id":1693,"name":"Slice","nameLocations":["18273:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"18273:5:1"},"referencedDeclaration":74,"src":"18273:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"},{"constant":false,"id":1698,"mutability":"mutable","name":"suffix","nameLocation":"18293:6:1","nodeType":"VariableDeclaration","scope":1715,"src":"18287:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":1697,"nodeType":"UserDefinedTypeName","pathNode":{"id":1696,"name":"Slice","nameLocations":["18287:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"18287:5:1"},"referencedDeclaration":74,"src":"18287:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"id":1703,"initialValue":{"arguments":[{"id":1701,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1684,"src":"18316:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1699,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1656,"src":"18303:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18308:7:1","memberName":"splitAt","nodeType":"MemberAccess","referencedDeclaration":1011,"src":"18303:12:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Slice_$74_$_t_uint256_$returns$_t_userDefinedValueType$_Slice_$74_$_t_userDefinedValueType$_Slice_$74_$attached_to$_t_userDefinedValueType$_Slice_$74_$","typeString":"function (Slice,uint256) pure returns (Slice,Slice)"}},"id":1702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18303:19:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_userDefinedValueType$_Slice_$74_$_t_userDefinedValueType$_Slice_$74_$","typeString":"tuple(Slice,Slice)"}},"nodeType":"VariableDeclarationStatement","src":"18272:50:1"},{"condition":{"arguments":[{"id":1706,"name":"pattern","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1659,"src":"18343:7:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}],"expression":{"id":1704,"name":"suffix","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1698,"src":"18333:6:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"id":1705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18340:2:1","memberName":"eq","nodeType":"MemberAccess","referencedDeclaration":752,"src":"18333:9:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Slice_$74_$_t_userDefinedValueType$_Slice_$74_$returns$_t_bool_$attached_to$_t_userDefinedValueType$_Slice_$74_$","typeString":"function (Slice,Slice) pure returns (bool)"}},"id":1707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18333:18:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1713,"nodeType":"Block","src":"18389:28:1","statements":[{"expression":{"id":1711,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1656,"src":"18406:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"functionReturnParameters":1664,"id":1712,"nodeType":"Return","src":"18399:11:1"}]},"id":1714,"nodeType":"IfStatement","src":"18329:88:1","trueBody":{"id":1710,"nodeType":"Block","src":"18353:30:1","statements":[{"expression":{"id":1708,"name":"prefix","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1695,"src":"18370:6:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"functionReturnParameters":1664,"id":1709,"nodeType":"Return","src":"18363:13:1"}]}}]},"documentation":{"id":1653,"nodeType":"StructuredDocumentation","src":"17850:123:1","text":" @dev Returns a subslice with the suffix removed.\n If it does not end with `suffix`, returns `self` unmodified."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"stripSuffix","nameLocation":"17983:11:1","parameters":{"id":1660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1656,"mutability":"mutable","name":"self","nameLocation":"18001:4:1","nodeType":"VariableDeclaration","scope":1716,"src":"17995:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":1655,"nodeType":"UserDefinedTypeName","pathNode":{"id":1654,"name":"Slice","nameLocations":["17995:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"17995:5:1"},"referencedDeclaration":74,"src":"17995:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"},{"constant":false,"id":1659,"mutability":"mutable","name":"pattern","nameLocation":"18013:7:1","nodeType":"VariableDeclaration","scope":1716,"src":"18007:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":1658,"nodeType":"UserDefinedTypeName","pathNode":{"id":1657,"name":"Slice","nameLocations":["18007:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"18007:5:1"},"referencedDeclaration":74,"src":"18007:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"17994:27:1"},"returnParameters":{"id":1664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1663,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1716,"src":"18036:5:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":1662,"nodeType":"UserDefinedTypeName","pathNode":{"id":1661,"name":"Slice","nameLocations":["18036:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"18036:5:1"},"referencedDeclaration":74,"src":"18036:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"18035:7:1"},"scope":1733,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1732,"nodeType":"FunctionDefinition","src":"18520:96:1","nodes":[],"body":{"id":1731,"nodeType":"Block","src":"18578:38:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1728,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1720,"src":"18608:4:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}],"expression":{"id":1726,"name":"SliceIter__","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1768,"src":"18591:11:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SliceIter___$1768_$","typeString":"type(library SliceIter__)"}},"id":1727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18603:4:1","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":1767,"src":"18591:16:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Slice_$74_$returns$_t_struct$_SliceIter_$1745_memory_ptr_$","typeString":"function (Slice) pure returns (struct SliceIter memory)"}},"id":1729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18591:22:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SliceIter_$1745_memory_ptr","typeString":"struct SliceIter memory"}},"functionReturnParameters":1725,"id":1730,"nodeType":"Return","src":"18584:29:1"}]},"documentation":{"id":1717,"nodeType":"StructuredDocumentation","src":"18421:98:1","text":" @dev Returns an iterator over the slice.\n The iterator yields items from either side."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"iter","nameLocation":"18529:4:1","parameters":{"id":1721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1720,"mutability":"mutable","name":"self","nameLocation":"18540:4:1","nodeType":"VariableDeclaration","scope":1732,"src":"18534:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"},"typeName":{"id":1719,"nodeType":"UserDefinedTypeName","pathNode":{"id":1718,"name":"Slice","nameLocations":["18534:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":74,"src":"18534:5:1"},"referencedDeclaration":74,"src":"18534:5:1","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$74","typeString":"Slice"}},"visibility":"internal"}],"src":"18533:12:1"},"returnParameters":{"id":1725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1724,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1732,"src":"18560:16:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SliceIter_$1745_memory_ptr","typeString":"struct SliceIter"},"typeName":{"id":1723,"nodeType":"UserDefinedTypeName","pathNode":{"id":1722,"name":"SliceIter","nameLocations":["18560:9:1"],"nodeType":"IdentifierPath","referencedDeclaration":1745,"src":"18560:9:1"},"referencedDeclaration":1745,"src":"18560:9:1","typeDescriptions":{"typeIdentifier":"t_struct$_SliceIter_$1745_storage_ptr","typeString":"struct SliceIter"}},"visibility":"internal"}],"src":"18559:18:1"},"scope":1733,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"license":"MIT"},"id":1}