{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220da0f18242cf5798604087dff9a89ccfa6891d42420bf09d50929e03dd17fc6a764736f6c63430008180033","sourceMap":"2002:23698:45:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220da0f18242cf5798604087dff9a89ccfa6891d42420bf09d50929e03dd17fc6a764736f6c63430008180033","sourceMap":"2002:23698:45:-: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\":{\"lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/src/strings.sol\":\"strings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/src/strings.sol\":{\"keccak256\":\"0x42cad11a7033f2fe05dd68611d2304407a620ac985b91edf29d5868cfe196223\",\"urls\":[\"bzz-raw://3cbc2333234e1f00eab5e57c4bcaf5115661e5e066a17c70af587a0a96f24669\",\"dweb:/ipfs/QmPHvStqcvZL46LW5N2ExTwAaqNhRCcmAX66aR6oE1WDar\"]}},\"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":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/src/strings.sol":"strings"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/src/strings.sol":{"keccak256":"0x42cad11a7033f2fe05dd68611d2304407a620ac985b91edf29d5868cfe196223","urls":["bzz-raw://3cbc2333234e1f00eab5e57c4bcaf5115661e5e066a17c70af587a0a96f24669","dweb:/ipfs/QmPHvStqcvZL46LW5N2ExTwAaqNhRCcmAX66aR6oE1WDar"],"license":null}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/src/strings.sol","id":40972,"exportedSymbols":{"strings":[40971]},"nodeType":"SourceUnit","src":"1977:23724:45","nodes":[{"id":39142,"nodeType":"PragmaDirective","src":"1977:23:45","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":40971,"nodeType":"ContractDefinition","src":"2002:23698:45","nodes":[{"id":39147,"nodeType":"StructDefinition","src":"2024:58:45","nodes":[],"canonicalName":"strings.slice","members":[{"constant":false,"id":39144,"mutability":"mutable","name":"_len","nameLocation":"2052:4:45","nodeType":"VariableDeclaration","scope":39147,"src":"2047:9:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39143,"name":"uint","nodeType":"ElementaryTypeName","src":"2047:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39146,"mutability":"mutable","name":"_ptr","nameLocation":"2071:4:45","nodeType":"VariableDeclaration","scope":39147,"src":"2066:9:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39145,"name":"uint","nodeType":"ElementaryTypeName","src":"2066:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"slice","nameLocation":"2031:5:45","scope":40971,"visibility":"public"},{"id":39200,"nodeType":"FunctionDefinition","src":"2088:631:45","nodes":[],"body":{"id":39199,"nodeType":"Block","src":"2151:568:45","nodes":[],"statements":[{"body":{"id":39172,"nodeType":"Block","src":"2245:136:45","statements":[{"AST":{"nativeSrc":"2268:56:45","nodeType":"YulBlock","src":"2268:56:45","statements":[{"expression":{"arguments":[{"name":"dest","nativeSrc":"2293:4:45","nodeType":"YulIdentifier","src":"2293:4:45"},{"arguments":[{"name":"src","nativeSrc":"2305:3:45","nodeType":"YulIdentifier","src":"2305:3:45"}],"functionName":{"name":"mload","nativeSrc":"2299:5:45","nodeType":"YulIdentifier","src":"2299:5:45"},"nativeSrc":"2299:10:45","nodeType":"YulFunctionCall","src":"2299:10:45"}],"functionName":{"name":"mstore","nativeSrc":"2286:6:45","nodeType":"YulIdentifier","src":"2286:6:45"},"nativeSrc":"2286:24:45","nodeType":"YulFunctionCall","src":"2286:24:45"},"nativeSrc":"2286:24:45","nodeType":"YulExpressionStatement","src":"2286:24:45"}]},"evmVersion":"paris","externalReferences":[{"declaration":39149,"isOffset":false,"isSlot":false,"src":"2293:4:45","valueSize":1},{"declaration":39151,"isOffset":false,"isSlot":false,"src":"2305:3:45","valueSize":1}],"id":39163,"nodeType":"InlineAssembly","src":"2259:65:45"},{"expression":{"id":39166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39164,"name":"dest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39149,"src":"2337:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":39165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2345:2:45","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2337:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39167,"nodeType":"ExpressionStatement","src":"2337:10:45"},{"expression":{"id":39170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39168,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39151,"src":"2361:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":39169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2368:2:45","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2361:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39171,"nodeType":"ExpressionStatement","src":"2361:9:45"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39156,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39153,"src":"2217:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3332","id":39157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2227:2:45","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2217:12:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39173,"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":39161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39159,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39153,"src":"2231:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"3332","id":39160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2241:2:45","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2231:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39162,"nodeType":"ExpressionStatement","src":"2231:12:45"},"nodeType":"ForStatement","src":"2211:170:45"},{"assignments":[39175],"declarations":[{"constant":false,"id":39175,"mutability":"mutable","name":"mask","nameLocation":"2428:4:45","nodeType":"VariableDeclaration","scope":39199,"src":"2423:9:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39174,"name":"uint","nodeType":"ElementaryTypeName","src":"2423:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39181,"initialValue":{"expression":{"arguments":[{"id":39178,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2440:4:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":39177,"name":"uint","nodeType":"ElementaryTypeName","src":"2440:4:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":39176,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2435:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":39179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2435:10:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":39180,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2446:3:45","memberName":"max","nodeType":"MemberAccess","src":"2435:14:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2423:26:45"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39182,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39153,"src":"2463:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":39183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2472:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2463:10:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39197,"nodeType":"IfStatement","src":"2459:72:45","trueBody":{"id":39196,"nodeType":"Block","src":"2475:56:45","statements":[{"expression":{"id":39194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39185,"name":"mask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39175,"src":"2489:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":39186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2496:3:45","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":39187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2504:2:45","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":39188,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39153,"src":"2509:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2504:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":39190,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2503:13:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2496:20:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":39192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2519:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2496:24:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2489:31:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39195,"nodeType":"ExpressionStatement","src":"2489:31:45"}]}},{"AST":{"nativeSrc":"2549:164:45","nodeType":"YulBlock","src":"2549:164:45","statements":[{"nativeSrc":"2563:41:45","nodeType":"YulVariableDeclaration","src":"2563:41:45","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2588:3:45","nodeType":"YulIdentifier","src":"2588:3:45"}],"functionName":{"name":"mload","nativeSrc":"2582:5:45","nodeType":"YulIdentifier","src":"2582:5:45"},"nativeSrc":"2582:10:45","nodeType":"YulFunctionCall","src":"2582:10:45"},{"arguments":[{"name":"mask","nativeSrc":"2598:4:45","nodeType":"YulIdentifier","src":"2598:4:45"}],"functionName":{"name":"not","nativeSrc":"2594:3:45","nodeType":"YulIdentifier","src":"2594:3:45"},"nativeSrc":"2594:9:45","nodeType":"YulFunctionCall","src":"2594:9:45"}],"functionName":{"name":"and","nativeSrc":"2578:3:45","nodeType":"YulIdentifier","src":"2578:3:45"},"nativeSrc":"2578:26:45","nodeType":"YulFunctionCall","src":"2578:26:45"},"variables":[{"name":"srcpart","nativeSrc":"2567:7:45","nodeType":"YulTypedName","src":"2567:7:45","type":""}]},{"nativeSrc":"2617:38:45","nodeType":"YulVariableDeclaration","src":"2617:38:45","value":{"arguments":[{"arguments":[{"name":"dest","nativeSrc":"2643:4:45","nodeType":"YulIdentifier","src":"2643:4:45"}],"functionName":{"name":"mload","nativeSrc":"2637:5:45","nodeType":"YulIdentifier","src":"2637:5:45"},"nativeSrc":"2637:11:45","nodeType":"YulFunctionCall","src":"2637:11:45"},{"name":"mask","nativeSrc":"2650:4:45","nodeType":"YulIdentifier","src":"2650:4:45"}],"functionName":{"name":"and","nativeSrc":"2633:3:45","nodeType":"YulIdentifier","src":"2633:3:45"},"nativeSrc":"2633:22:45","nodeType":"YulFunctionCall","src":"2633:22:45"},"variables":[{"name":"destpart","nativeSrc":"2621:8:45","nodeType":"YulTypedName","src":"2621:8:45","type":""}]},{"expression":{"arguments":[{"name":"dest","nativeSrc":"2675:4:45","nodeType":"YulIdentifier","src":"2675:4:45"},{"arguments":[{"name":"destpart","nativeSrc":"2684:8:45","nodeType":"YulIdentifier","src":"2684:8:45"},{"name":"srcpart","nativeSrc":"2694:7:45","nodeType":"YulIdentifier","src":"2694:7:45"}],"functionName":{"name":"or","nativeSrc":"2681:2:45","nodeType":"YulIdentifier","src":"2681:2:45"},"nativeSrc":"2681:21:45","nodeType":"YulFunctionCall","src":"2681:21:45"}],"functionName":{"name":"mstore","nativeSrc":"2668:6:45","nodeType":"YulIdentifier","src":"2668:6:45"},"nativeSrc":"2668:35:45","nodeType":"YulFunctionCall","src":"2668:35:45"},"nativeSrc":"2668:35:45","nodeType":"YulExpressionStatement","src":"2668:35:45"}]},"evmVersion":"paris","externalReferences":[{"declaration":39149,"isOffset":false,"isSlot":false,"src":"2643:4:45","valueSize":1},{"declaration":39149,"isOffset":false,"isSlot":false,"src":"2675:4:45","valueSize":1},{"declaration":39175,"isOffset":false,"isSlot":false,"src":"2598:4:45","valueSize":1},{"declaration":39175,"isOffset":false,"isSlot":false,"src":"2650:4:45","valueSize":1},{"declaration":39151,"isOffset":false,"isSlot":false,"src":"2588:3:45","valueSize":1}],"id":39198,"nodeType":"InlineAssembly","src":"2540:173:45"}]},"implemented":true,"kind":"function","modifiers":[],"name":"memcpy","nameLocation":"2097:6:45","parameters":{"id":39154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39149,"mutability":"mutable","name":"dest","nameLocation":"2109:4:45","nodeType":"VariableDeclaration","scope":39200,"src":"2104:9:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39148,"name":"uint","nodeType":"ElementaryTypeName","src":"2104:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39151,"mutability":"mutable","name":"src","nameLocation":"2120:3:45","nodeType":"VariableDeclaration","scope":39200,"src":"2115:8:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39150,"name":"uint","nodeType":"ElementaryTypeName","src":"2115:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39153,"mutability":"mutable","name":"length","nameLocation":"2130:6:45","nodeType":"VariableDeclaration","scope":39200,"src":"2125:11:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39152,"name":"uint","nodeType":"ElementaryTypeName","src":"2125:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2103:34:45"},"returnParameters":{"id":39155,"nodeType":"ParameterList","parameters":[],"src":"2151:0:45"},"scope":40971,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":39222,"nodeType":"FunctionDefinition","src":"2919:210:45","nodes":[],"body":{"id":39221,"nodeType":"Block","src":"2993:136:45","nodes":[],"statements":[{"assignments":[39209],"declarations":[{"constant":false,"id":39209,"mutability":"mutable","name":"ptr","nameLocation":"3008:3:45","nodeType":"VariableDeclaration","scope":39221,"src":"3003:8:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39208,"name":"uint","nodeType":"ElementaryTypeName","src":"3003:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39210,"nodeType":"VariableDeclarationStatement","src":"3003:8:45"},{"AST":{"nativeSrc":"3030:46:45","nodeType":"YulBlock","src":"3030:46:45","statements":[{"nativeSrc":"3044:22:45","nodeType":"YulAssignment","src":"3044:22:45","value":{"arguments":[{"name":"self","nativeSrc":"3055:4:45","nodeType":"YulIdentifier","src":"3055:4:45"},{"kind":"number","nativeSrc":"3061:4:45","nodeType":"YulLiteral","src":"3061:4:45","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3051:3:45","nodeType":"YulIdentifier","src":"3051:3:45"},"nativeSrc":"3051:15:45","nodeType":"YulFunctionCall","src":"3051:15:45"},"variableNames":[{"name":"ptr","nativeSrc":"3044:3:45","nodeType":"YulIdentifier","src":"3044:3:45"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":39209,"isOffset":false,"isSlot":false,"src":"3044:3:45","valueSize":1},{"declaration":39202,"isOffset":false,"isSlot":false,"src":"3055:4:45","valueSize":1}],"id":39211,"nodeType":"InlineAssembly","src":"3021:55:45"},{"expression":{"arguments":[{"expression":{"arguments":[{"id":39215,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39202,"src":"3104:4:45","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":39214,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3098:5:45","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":39213,"name":"bytes","nodeType":"ElementaryTypeName","src":"3098:5:45","typeDescriptions":{}}},"id":39216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3098:11:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":39217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3110:6:45","memberName":"length","nodeType":"MemberAccess","src":"3098:18:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39218,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39209,"src":"3118:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39212,"name":"slice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39147,"src":"3092:5:45","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_slice_$39147_storage_ptr_$","typeString":"type(struct strings.slice storage pointer)"}},"id":39219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3092:30:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"functionReturnParameters":39207,"id":39220,"nodeType":"Return","src":"3085:37:45"}]},"implemented":true,"kind":"function","modifiers":[],"name":"toSlice","nameLocation":"2928:7:45","parameters":{"id":39203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39202,"mutability":"mutable","name":"self","nameLocation":"2950:4:45","nodeType":"VariableDeclaration","scope":39222,"src":"2936:18:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":39201,"name":"string","nodeType":"ElementaryTypeName","src":"2936:6:45","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2935:20:45"},"returnParameters":{"id":39207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39206,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":39222,"src":"2979:12:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":39205,"nodeType":"UserDefinedTypeName","pathNode":{"id":39204,"name":"slice","nameLocations":["2979:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"2979:5:45"},"referencedDeclaration":39147,"src":"2979:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"2978:14:45"},"scope":40971,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39381,"nodeType":"FunctionDefinition","src":"3325:806:45","nodes":[],"body":{"id":39380,"nodeType":"Block","src":"3381:750:45","nodes":[],"statements":[{"assignments":[39230],"declarations":[{"constant":false,"id":39230,"mutability":"mutable","name":"ret","nameLocation":"3396:3:45","nodeType":"VariableDeclaration","scope":39380,"src":"3391:8:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39229,"name":"uint","nodeType":"ElementaryTypeName","src":"3391:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39231,"nodeType":"VariableDeclarationStatement","src":"3391:8:45"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":39234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39232,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39224,"src":"3413:4:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":39233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3421:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3413:9:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39237,"nodeType":"IfStatement","src":"3409:35:45","trueBody":{"expression":{"hexValue":"30","id":39235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3443:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":39228,"id":39236,"nodeType":"Return","src":"3436:8:45"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":39240,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39224,"src":"3463:4:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":39239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3458:4:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":39238,"name":"uint","nodeType":"ElementaryTypeName","src":"3458:4:45","typeDescriptions":{}}},"id":39241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3458:10:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"expression":{"arguments":[{"id":39244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3476:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":39243,"name":"uint128","nodeType":"ElementaryTypeName","src":"3476:7:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":39242,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3471:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":39245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3471:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":39246,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3485:3:45","memberName":"max","nodeType":"MemberAccess","src":"3471:17:45","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"3458:30:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":39248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3492:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3458:35:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39267,"nodeType":"IfStatement","src":"3454:153:45","trueBody":{"id":39266,"nodeType":"Block","src":"3495:112:45","statements":[{"expression":{"id":39252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39250,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39230,"src":"3509:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":39251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3516:2:45","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"3509:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39253,"nodeType":"ExpressionStatement","src":"3509:9:45"},{"expression":{"id":39264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39254,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39224,"src":"3532:4:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":39259,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39224,"src":"3552:4:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":39258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3547:4:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":39257,"name":"uint","nodeType":"ElementaryTypeName","src":"3547:4:45","typeDescriptions":{}}},"id":39260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3547:10:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3078313030303030303030303030303030303030303030303030303030303030303030","id":39261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3560:35:45","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"value":"0x100000000000000000000000000000000"},"src":"3547:48:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39256,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3539:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":39255,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3539:7:45","typeDescriptions":{}}},"id":39263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3539:57:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3532:64:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":39265,"nodeType":"ExpressionStatement","src":"3532:64:45"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":39270,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39224,"src":"3625:4:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":39269,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3620:4:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":39268,"name":"uint","nodeType":"ElementaryTypeName","src":"3620:4:45","typeDescriptions":{}}},"id":39271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3620:10:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"expression":{"arguments":[{"id":39274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3638:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":39273,"name":"uint64","nodeType":"ElementaryTypeName","src":"3638:6:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":39272,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3633:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":39275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3633:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":39276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3646:3:45","memberName":"max","nodeType":"MemberAccess","src":"3633:16:45","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3620:29:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":39278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3653:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3620:34:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39297,"nodeType":"IfStatement","src":"3616:135:45","trueBody":{"id":39296,"nodeType":"Block","src":"3656:95:45","statements":[{"expression":{"id":39282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39280,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39230,"src":"3670:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":39281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3677:1:45","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"3670:8:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39283,"nodeType":"ExpressionStatement","src":"3670:8:45"},{"expression":{"id":39294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39284,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39224,"src":"3692:4:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":39289,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39224,"src":"3712:4:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":39288,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3707:4:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":39287,"name":"uint","nodeType":"ElementaryTypeName","src":"3707:4:45","typeDescriptions":{}}},"id":39290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3707:10:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"30783130303030303030303030303030303030","id":39291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3720:19:45","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"value":"0x10000000000000000"},"src":"3707:32:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39286,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3699:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":39285,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3699:7:45","typeDescriptions":{}}},"id":39293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3699:41:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3692:48:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":39295,"nodeType":"ExpressionStatement","src":"3692:48:45"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":39300,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39224,"src":"3769:4:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":39299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3764:4:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":39298,"name":"uint","nodeType":"ElementaryTypeName","src":"3764:4:45","typeDescriptions":{}}},"id":39301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3764:10:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"expression":{"arguments":[{"id":39304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3782:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":39303,"name":"uint32","nodeType":"ElementaryTypeName","src":"3782:6:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"}],"id":39302,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3777:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":39305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3777:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint32","typeString":"type(uint32)"}},"id":39306,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3790:3:45","memberName":"max","nodeType":"MemberAccess","src":"3777:16:45","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"3764:29:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":39308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3797:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3764:34:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39327,"nodeType":"IfStatement","src":"3760:127:45","trueBody":{"id":39326,"nodeType":"Block","src":"3800:87:45","statements":[{"expression":{"id":39312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39310,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39230,"src":"3814:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":39311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3821:1:45","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"3814:8:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39313,"nodeType":"ExpressionStatement","src":"3814:8:45"},{"expression":{"id":39324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39314,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39224,"src":"3836:4:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":39319,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39224,"src":"3856:4:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":39318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3851:4:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":39317,"name":"uint","nodeType":"ElementaryTypeName","src":"3851:4:45","typeDescriptions":{}}},"id":39320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3851:10:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3078313030303030303030","id":39321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3864:11:45","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"},"value":"0x100000000"},"src":"3851:24:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39316,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3843:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":39315,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3843:7:45","typeDescriptions":{}}},"id":39323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3843:33:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3836:40:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":39325,"nodeType":"ExpressionStatement","src":"3836:40:45"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":39330,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39224,"src":"3905:4:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":39329,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3900:4:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":39328,"name":"uint","nodeType":"ElementaryTypeName","src":"3900:4:45","typeDescriptions":{}}},"id":39331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3900:10:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"expression":{"arguments":[{"id":39334,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3918:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":39333,"name":"uint16","nodeType":"ElementaryTypeName","src":"3918:6:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"}],"id":39332,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3913:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":39335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3913:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint16","typeString":"type(uint16)"}},"id":39336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3926:3:45","memberName":"max","nodeType":"MemberAccess","src":"3913:16:45","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"3900:29:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":39338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3933:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3900:34:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39357,"nodeType":"IfStatement","src":"3896:123:45","trueBody":{"id":39356,"nodeType":"Block","src":"3936:83:45","statements":[{"expression":{"id":39342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39340,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39230,"src":"3950:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":39341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3957:1:45","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"3950:8:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39343,"nodeType":"ExpressionStatement","src":"3950:8:45"},{"expression":{"id":39354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39344,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39224,"src":"3972:4:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":39349,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39224,"src":"3992:4:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":39348,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3987:4:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":39347,"name":"uint","nodeType":"ElementaryTypeName","src":"3987:4:45","typeDescriptions":{}}},"id":39350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3987:10:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"30783130303030","id":39351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4000:7:45","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"value":"0x10000"},"src":"3987:20:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39346,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3979:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":39345,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3979:7:45","typeDescriptions":{}}},"id":39353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3979:29:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3972:36:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":39355,"nodeType":"ExpressionStatement","src":"3972:36:45"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":39360,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39224,"src":"4037:4:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":39359,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4032:4:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":39358,"name":"uint","nodeType":"ElementaryTypeName","src":"4032:4:45","typeDescriptions":{}}},"id":39361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4032:10:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"expression":{"arguments":[{"id":39364,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4050:5:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":39363,"name":"uint8","nodeType":"ElementaryTypeName","src":"4050:5:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":39362,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4045:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":39365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4045:11:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":39366,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4057:3:45","memberName":"max","nodeType":"MemberAccess","src":"4045:15:45","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4032:28:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":39368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4064:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4032:33:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39375,"nodeType":"IfStatement","src":"4028:72:45","trueBody":{"id":39374,"nodeType":"Block","src":"4067:33:45","statements":[{"expression":{"id":39372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39370,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39230,"src":"4081:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":39371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4088:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4081:8:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39373,"nodeType":"ExpressionStatement","src":"4081:8:45"}]}},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":39376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4116:2:45","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":39377,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39230,"src":"4121:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4116:8:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":39228,"id":39379,"nodeType":"Return","src":"4109:15:45"}]},"implemented":true,"kind":"function","modifiers":[],"name":"len","nameLocation":"3334:3:45","parameters":{"id":39225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39224,"mutability":"mutable","name":"self","nameLocation":"3346:4:45","nodeType":"VariableDeclaration","scope":39381,"src":"3338:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39223,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3338:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3337:14:45"},"returnParameters":{"id":39228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39227,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":39381,"src":"3375:4:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39226,"name":"uint","nodeType":"ElementaryTypeName","src":"3375:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3374:6:45"},"scope":40971,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39399,"nodeType":"FunctionDefinition","src":"4437:370:45","nodes":[],"body":{"id":39398,"nodeType":"Block","src":"4512:295:45","nodes":[],"statements":[{"AST":{"nativeSrc":"4614:157:45","nodeType":"YulBlock","src":"4614:157:45","statements":[{"nativeSrc":"4628:22:45","nodeType":"YulVariableDeclaration","src":"4628:22:45","value":{"arguments":[{"kind":"number","nativeSrc":"4645:4:45","nodeType":"YulLiteral","src":"4645:4:45","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"4639:5:45","nodeType":"YulIdentifier","src":"4639:5:45"},"nativeSrc":"4639:11:45","nodeType":"YulFunctionCall","src":"4639:11:45"},"variables":[{"name":"ptr","nativeSrc":"4632:3:45","nodeType":"YulTypedName","src":"4632:3:45","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4670:4:45","nodeType":"YulLiteral","src":"4670:4:45","type":"","value":"0x40"},{"arguments":[{"name":"ptr","nativeSrc":"4680:3:45","nodeType":"YulIdentifier","src":"4680:3:45"},{"kind":"number","nativeSrc":"4685:4:45","nodeType":"YulLiteral","src":"4685:4:45","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4676:3:45","nodeType":"YulIdentifier","src":"4676:3:45"},"nativeSrc":"4676:14:45","nodeType":"YulFunctionCall","src":"4676:14:45"}],"functionName":{"name":"mstore","nativeSrc":"4663:6:45","nodeType":"YulIdentifier","src":"4663:6:45"},"nativeSrc":"4663:28:45","nodeType":"YulFunctionCall","src":"4663:28:45"},"nativeSrc":"4663:28:45","nodeType":"YulExpressionStatement","src":"4663:28:45"},{"expression":{"arguments":[{"name":"ptr","nativeSrc":"4711:3:45","nodeType":"YulIdentifier","src":"4711:3:45"},{"name":"self","nativeSrc":"4716:4:45","nodeType":"YulIdentifier","src":"4716:4:45"}],"functionName":{"name":"mstore","nativeSrc":"4704:6:45","nodeType":"YulIdentifier","src":"4704:6:45"},"nativeSrc":"4704:17:45","nodeType":"YulFunctionCall","src":"4704:17:45"},"nativeSrc":"4704:17:45","nodeType":"YulExpressionStatement","src":"4704:17:45"},{"expression":{"arguments":[{"arguments":[{"name":"ret","nativeSrc":"4745:3:45","nodeType":"YulIdentifier","src":"4745:3:45"},{"kind":"number","nativeSrc":"4750:4:45","nodeType":"YulLiteral","src":"4750:4:45","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4741:3:45","nodeType":"YulIdentifier","src":"4741:3:45"},"nativeSrc":"4741:14:45","nodeType":"YulFunctionCall","src":"4741:14:45"},{"name":"ptr","nativeSrc":"4757:3:45","nodeType":"YulIdentifier","src":"4757:3:45"}],"functionName":{"name":"mstore","nativeSrc":"4734:6:45","nodeType":"YulIdentifier","src":"4734:6:45"},"nativeSrc":"4734:27:45","nodeType":"YulFunctionCall","src":"4734:27:45"},"nativeSrc":"4734:27:45","nodeType":"YulExpressionStatement","src":"4734:27:45"}]},"evmVersion":"paris","externalReferences":[{"declaration":39387,"isOffset":false,"isSlot":false,"src":"4745:3:45","valueSize":1},{"declaration":39383,"isOffset":false,"isSlot":false,"src":"4716:4:45","valueSize":1}],"id":39389,"nodeType":"InlineAssembly","src":"4605:166:45"},{"expression":{"id":39396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":39390,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39387,"src":"4780:3:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":39392,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4784:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"4780:8:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":39394,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39383,"src":"4795:4:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":39393,"name":"len","nodeType":"Identifier","overloadedDeclarations":[39381,39536],"referencedDeclaration":39381,"src":"4791:3:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) pure returns (uint256)"}},"id":39395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4791:9:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4780:20:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39397,"nodeType":"ExpressionStatement","src":"4780:20:45"}]},"implemented":true,"kind":"function","modifiers":[],"name":"toSliceB32","nameLocation":"4446:10:45","parameters":{"id":39384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39383,"mutability":"mutable","name":"self","nameLocation":"4465:4:45","nodeType":"VariableDeclaration","scope":39399,"src":"4457:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39382,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4457:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4456:14:45"},"returnParameters":{"id":39388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39387,"mutability":"mutable","name":"ret","nameLocation":"4507:3:45","nodeType":"VariableDeclaration","scope":39399,"src":"4494:16:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":39386,"nodeType":"UserDefinedTypeName","pathNode":{"id":39385,"name":"slice","nameLocations":["4494:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"4494:5:45"},"referencedDeclaration":39147,"src":"4494:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"4493:18:45"},"scope":40971,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39416,"nodeType":"FunctionDefinition","src":"5008:121:45","nodes":[],"body":{"id":39415,"nodeType":"Block","src":"5078:51:45","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":39409,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39402,"src":"5101:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":39410,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5106:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"5101:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":39411,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39402,"src":"5112:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":39412,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5117:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"5112:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39408,"name":"slice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39147,"src":"5095:5:45","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_slice_$39147_storage_ptr_$","typeString":"type(struct strings.slice storage pointer)"}},"id":39413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5095:27:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"functionReturnParameters":39407,"id":39414,"nodeType":"Return","src":"5088:34:45"}]},"implemented":true,"kind":"function","modifiers":[],"name":"copy","nameLocation":"5017:4:45","parameters":{"id":39403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39402,"mutability":"mutable","name":"self","nameLocation":"5035:4:45","nodeType":"VariableDeclaration","scope":39416,"src":"5022:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":39401,"nodeType":"UserDefinedTypeName","pathNode":{"id":39400,"name":"slice","nameLocations":["5022:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"5022:5:45"},"referencedDeclaration":39147,"src":"5022:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"5021:19:45"},"returnParameters":{"id":39407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39406,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":39416,"src":"5064:12:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":39405,"nodeType":"UserDefinedTypeName","pathNode":{"id":39404,"name":"slice","nameLocations":["5064:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"5064:5:45"},"referencedDeclaration":39147,"src":"5064:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"5063:14:45"},"scope":40971,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39447,"nodeType":"FunctionDefinition","src":"5301:265:45","nodes":[],"body":{"id":39446,"nodeType":"Block","src":"5376:190:45","nodes":[],"statements":[{"assignments":[39425],"declarations":[{"constant":false,"id":39425,"mutability":"mutable","name":"ret","nameLocation":"5400:3:45","nodeType":"VariableDeclaration","scope":39446,"src":"5386:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":39424,"name":"string","nodeType":"ElementaryTypeName","src":"5386:6:45","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":39431,"initialValue":{"arguments":[{"expression":{"id":39428,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39419,"src":"5417:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":39429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5422:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"5417:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39427,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5406:10:45","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":39426,"name":"string","nodeType":"ElementaryTypeName","src":"5410:6:45","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":39430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5406:21:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"5386:41:45"},{"assignments":[39433],"declarations":[{"constant":false,"id":39433,"mutability":"mutable","name":"retptr","nameLocation":"5442:6:45","nodeType":"VariableDeclaration","scope":39446,"src":"5437:11:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39432,"name":"uint","nodeType":"ElementaryTypeName","src":"5437:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39434,"nodeType":"VariableDeclarationStatement","src":"5437:11:45"},{"AST":{"nativeSrc":"5467:26:45","nodeType":"YulBlock","src":"5467:26:45","statements":[{"nativeSrc":"5469:22:45","nodeType":"YulAssignment","src":"5469:22:45","value":{"arguments":[{"name":"ret","nativeSrc":"5483:3:45","nodeType":"YulIdentifier","src":"5483:3:45"},{"kind":"number","nativeSrc":"5488:2:45","nodeType":"YulLiteral","src":"5488:2:45","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5479:3:45","nodeType":"YulIdentifier","src":"5479:3:45"},"nativeSrc":"5479:12:45","nodeType":"YulFunctionCall","src":"5479:12:45"},"variableNames":[{"name":"retptr","nativeSrc":"5469:6:45","nodeType":"YulIdentifier","src":"5469:6:45"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":39425,"isOffset":false,"isSlot":false,"src":"5483:3:45","valueSize":1},{"declaration":39433,"isOffset":false,"isSlot":false,"src":"5469:6:45","valueSize":1}],"id":39435,"nodeType":"InlineAssembly","src":"5458:35:45"},{"expression":{"arguments":[{"id":39437,"name":"retptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39433,"src":"5510:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":39438,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39419,"src":"5518:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":39439,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5523:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"5518:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":39440,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39419,"src":"5529:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":39441,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5534:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"5529:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39436,"name":"memcpy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39200,"src":"5503:6:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure"}},"id":39442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5503:36:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39443,"nodeType":"ExpressionStatement","src":"5503:36:45"},{"expression":{"id":39444,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39425,"src":"5556:3:45","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":39423,"id":39445,"nodeType":"Return","src":"5549:10:45"}]},"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"5310:8:45","parameters":{"id":39420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39419,"mutability":"mutable","name":"self","nameLocation":"5332:4:45","nodeType":"VariableDeclaration","scope":39447,"src":"5319:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":39418,"nodeType":"UserDefinedTypeName","pathNode":{"id":39417,"name":"slice","nameLocations":["5319:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"5319:5:45"},"referencedDeclaration":39147,"src":"5319:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"5318:19:45"},"returnParameters":{"id":39423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39422,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":39447,"src":"5361:13:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":39421,"name":"string","nodeType":"ElementaryTypeName","src":"5361:6:45","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5360:15:45"},"scope":40971,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39536,"nodeType":"FunctionDefinition","src":"5957:692:45","nodes":[],"body":{"id":39535,"nodeType":"Block","src":"6020:629:45","nodes":[],"statements":[{"assignments":[39456],"declarations":[{"constant":false,"id":39456,"mutability":"mutable","name":"ptr","nameLocation":"6110:3:45","nodeType":"VariableDeclaration","scope":39535,"src":"6105:8:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39455,"name":"uint","nodeType":"ElementaryTypeName","src":"6105:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39461,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":39457,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39450,"src":"6116:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":39458,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6121:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"6116:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3331","id":39459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6128:2:45","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"src":"6116:14:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6105:25:45"},{"assignments":[39463],"declarations":[{"constant":false,"id":39463,"mutability":"mutable","name":"end","nameLocation":"6145:3:45","nodeType":"VariableDeclaration","scope":39535,"src":"6140:8:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39462,"name":"uint","nodeType":"ElementaryTypeName","src":"6140:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39468,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39464,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39456,"src":"6151:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":39465,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39450,"src":"6157:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":39466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6162:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"6157:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6151:15:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6140:26:45"},{"body":{"id":39533,"nodeType":"Block","src":"6204:439:45","statements":[{"assignments":[39480],"declarations":[{"constant":false,"id":39480,"mutability":"mutable","name":"b","nameLocation":"6224:1:45","nodeType":"VariableDeclaration","scope":39533,"src":"6218:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":39479,"name":"uint8","nodeType":"ElementaryTypeName","src":"6218:5:45","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":39481,"nodeType":"VariableDeclarationStatement","src":"6218:7:45"},{"AST":{"nativeSrc":"6248:30:45","nodeType":"YulBlock","src":"6248:30:45","statements":[{"nativeSrc":"6250:26:45","nodeType":"YulAssignment","src":"6250:26:45","value":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"6265:3:45","nodeType":"YulIdentifier","src":"6265:3:45"}],"functionName":{"name":"mload","nativeSrc":"6259:5:45","nodeType":"YulIdentifier","src":"6259:5:45"},"nativeSrc":"6259:10:45","nodeType":"YulFunctionCall","src":"6259:10:45"},{"kind":"number","nativeSrc":"6271:4:45","nodeType":"YulLiteral","src":"6271:4:45","type":"","value":"0xFF"}],"functionName":{"name":"and","nativeSrc":"6255:3:45","nodeType":"YulIdentifier","src":"6255:3:45"},"nativeSrc":"6255:21:45","nodeType":"YulFunctionCall","src":"6255:21:45"},"variableNames":[{"name":"b","nativeSrc":"6250:1:45","nodeType":"YulIdentifier","src":"6250:1:45"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":39480,"isOffset":false,"isSlot":false,"src":"6250:1:45","valueSize":1},{"declaration":39456,"isOffset":false,"isSlot":false,"src":"6265:3:45","valueSize":1}],"id":39482,"nodeType":"InlineAssembly","src":"6239:39:45"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":39485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39483,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39480,"src":"6295:1:45","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30783830","id":39484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6299:4:45","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"0x80"},"src":"6295:8:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":39493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39491,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39480,"src":"6355:1:45","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30784530","id":39492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6359:4:45","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"value":"0xE0"},"src":"6355:8:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":39501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39499,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39480,"src":"6415:1:45","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30784630","id":39500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6419:4:45","typeDescriptions":{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},"value":"0xF0"},"src":"6415:8:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":39509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39507,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39480,"src":"6475:1:45","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30784638","id":39508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6479:4:45","typeDescriptions":{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},"value":"0xF8"},"src":"6475:8:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":39517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39515,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39480,"src":"6535:1:45","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30784643","id":39516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6539:4:45","typeDescriptions":{"typeIdentifier":"t_rational_252_by_1","typeString":"int_const 252"},"value":"0xFC"},"src":"6535:8:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":39527,"nodeType":"Block","src":"6592:41:45","statements":[{"expression":{"id":39525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39523,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39456,"src":"6610:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"36","id":39524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6617:1:45","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"6610:8:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39526,"nodeType":"ExpressionStatement","src":"6610:8:45"}]},"id":39528,"nodeType":"IfStatement","src":"6532:101:45","trueBody":{"id":39522,"nodeType":"Block","src":"6545:41:45","statements":[{"expression":{"id":39520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39518,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39456,"src":"6563:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"35","id":39519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6570:1:45","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"6563:8:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39521,"nodeType":"ExpressionStatement","src":"6563:8:45"}]}},"id":39529,"nodeType":"IfStatement","src":"6472:161:45","trueBody":{"id":39514,"nodeType":"Block","src":"6485:41:45","statements":[{"expression":{"id":39512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39510,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39456,"src":"6503:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":39511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6510:1:45","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"6503:8:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39513,"nodeType":"ExpressionStatement","src":"6503:8:45"}]}},"id":39530,"nodeType":"IfStatement","src":"6412:221:45","trueBody":{"id":39506,"nodeType":"Block","src":"6425:41:45","statements":[{"expression":{"id":39504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39502,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39456,"src":"6443:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"33","id":39503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6450:1:45","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"6443:8:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39505,"nodeType":"ExpressionStatement","src":"6443:8:45"}]}},"id":39531,"nodeType":"IfStatement","src":"6352:281:45","trueBody":{"id":39498,"nodeType":"Block","src":"6365:41:45","statements":[{"expression":{"id":39496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39494,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39456,"src":"6383:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":39495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6390:1:45","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"6383:8:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39497,"nodeType":"ExpressionStatement","src":"6383:8:45"}]}},"id":39532,"nodeType":"IfStatement","src":"6291:342:45","trueBody":{"id":39490,"nodeType":"Block","src":"6305:41:45","statements":[{"expression":{"id":39488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39486,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39456,"src":"6323:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":39487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6330:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6323:8:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39489,"nodeType":"ExpressionStatement","src":"6323:8:45"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39473,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39456,"src":"6188:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":39474,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39463,"src":"6194:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6188:9:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39534,"initializationExpression":{"expression":{"id":39471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39469,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39453,"src":"6181:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":39470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6185:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6181:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39472,"nodeType":"ExpressionStatement","src":"6181:5:45"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":39477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6199:3:45","subExpression":{"id":39476,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39453,"src":"6199:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39478,"nodeType":"ExpressionStatement","src":"6199:3:45"},"nodeType":"ForStatement","src":"6176:467:45"}]},"implemented":true,"kind":"function","modifiers":[],"name":"len","nameLocation":"5966:3:45","parameters":{"id":39451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39450,"mutability":"mutable","name":"self","nameLocation":"5983:4:45","nodeType":"VariableDeclaration","scope":39536,"src":"5970:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":39449,"nodeType":"UserDefinedTypeName","pathNode":{"id":39448,"name":"slice","nameLocations":["5970:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"5970:5:45"},"referencedDeclaration":39147,"src":"5970:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"5969:19:45"},"returnParameters":{"id":39454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39453,"mutability":"mutable","name":"l","nameLocation":"6017:1:45","nodeType":"VariableDeclaration","scope":39536,"src":"6012:6:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39452,"name":"uint","nodeType":"ElementaryTypeName","src":"6012:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6011:8:45"},"scope":40971,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39550,"nodeType":"FunctionDefinition","src":"6842:101:45","nodes":[],"body":{"id":39549,"nodeType":"Block","src":"6905:38:45","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":39544,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39539,"src":"6922:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":39545,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6927:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"6922:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":39546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6935:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6922:14:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":39543,"id":39548,"nodeType":"Return","src":"6915:21:45"}]},"implemented":true,"kind":"function","modifiers":[],"name":"empty","nameLocation":"6851:5:45","parameters":{"id":39540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39539,"mutability":"mutable","name":"self","nameLocation":"6870:4:45","nodeType":"VariableDeclaration","scope":39550,"src":"6857:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":39538,"nodeType":"UserDefinedTypeName","pathNode":{"id":39537,"name":"slice","nameLocations":["6857:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"6857:5:45"},"referencedDeclaration":39147,"src":"6857:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"6856:19:45"},"returnParameters":{"id":39543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39542,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":39550,"src":"6899:4:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39541,"name":"bool","nodeType":"ElementaryTypeName","src":"6899:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6898:6:45"},"scope":40971,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39686,"nodeType":"FunctionDefinition","src":"7371:1046:45","nodes":[],"body":{"id":39685,"nodeType":"Block","src":"7455:962:45","nodes":[],"statements":[{"assignments":[39562],"declarations":[{"constant":false,"id":39562,"mutability":"mutable","name":"shortest","nameLocation":"7470:8:45","nodeType":"VariableDeclaration","scope":39685,"src":"7465:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39561,"name":"uint","nodeType":"ElementaryTypeName","src":"7465:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39565,"initialValue":{"expression":{"id":39563,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39553,"src":"7481:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":39564,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7486:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"7481:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7465:25:45"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":39566,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39556,"src":"7504:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":39567,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7510:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"7504:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":39568,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39553,"src":"7517:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":39569,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7522:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"7517:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7504:22:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39576,"nodeType":"IfStatement","src":"7500:61:45","trueBody":{"expression":{"id":39574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39571,"name":"shortest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39562,"src":"7540:8:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":39572,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39556,"src":"7551:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":39573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7557:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"7551:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7540:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39575,"nodeType":"ExpressionStatement","src":"7540:21:45"}},{"assignments":[39578],"declarations":[{"constant":false,"id":39578,"mutability":"mutable","name":"selfptr","nameLocation":"7577:7:45","nodeType":"VariableDeclaration","scope":39685,"src":"7572:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39577,"name":"uint","nodeType":"ElementaryTypeName","src":"7572:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39581,"initialValue":{"expression":{"id":39579,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39553,"src":"7587:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":39580,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7592:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"7587:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7572:24:45"},{"assignments":[39583],"declarations":[{"constant":false,"id":39583,"mutability":"mutable","name":"otherptr","nameLocation":"7611:8:45","nodeType":"VariableDeclaration","scope":39685,"src":"7606:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39582,"name":"uint","nodeType":"ElementaryTypeName","src":"7606:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39586,"initialValue":{"expression":{"id":39584,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39556,"src":"7622:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":39585,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7628:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"7622:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7606:26:45"},{"body":{"id":39671,"nodeType":"Block","src":"7688:674:45","statements":[{"assignments":[39599],"declarations":[{"constant":false,"id":39599,"mutability":"mutable","name":"a","nameLocation":"7707:1:45","nodeType":"VariableDeclaration","scope":39671,"src":"7702:6:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39598,"name":"uint","nodeType":"ElementaryTypeName","src":"7702:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39600,"nodeType":"VariableDeclarationStatement","src":"7702:6:45"},{"assignments":[39602],"declarations":[{"constant":false,"id":39602,"mutability":"mutable","name":"b","nameLocation":"7727:1:45","nodeType":"VariableDeclaration","scope":39671,"src":"7722:6:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39601,"name":"uint","nodeType":"ElementaryTypeName","src":"7722:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39603,"nodeType":"VariableDeclarationStatement","src":"7722:6:45"},{"AST":{"nativeSrc":"7751:88:45","nodeType":"YulBlock","src":"7751:88:45","statements":[{"nativeSrc":"7769:19:45","nodeType":"YulAssignment","src":"7769:19:45","value":{"arguments":[{"name":"selfptr","nativeSrc":"7780:7:45","nodeType":"YulIdentifier","src":"7780:7:45"}],"functionName":{"name":"mload","nativeSrc":"7774:5:45","nodeType":"YulIdentifier","src":"7774:5:45"},"nativeSrc":"7774:14:45","nodeType":"YulFunctionCall","src":"7774:14:45"},"variableNames":[{"name":"a","nativeSrc":"7769:1:45","nodeType":"YulIdentifier","src":"7769:1:45"}]},{"nativeSrc":"7805:20:45","nodeType":"YulAssignment","src":"7805:20:45","value":{"arguments":[{"name":"otherptr","nativeSrc":"7816:8:45","nodeType":"YulIdentifier","src":"7816:8:45"}],"functionName":{"name":"mload","nativeSrc":"7810:5:45","nodeType":"YulIdentifier","src":"7810:5:45"},"nativeSrc":"7810:15:45","nodeType":"YulFunctionCall","src":"7810:15:45"},"variableNames":[{"name":"b","nativeSrc":"7805:1:45","nodeType":"YulIdentifier","src":"7805:1:45"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":39599,"isOffset":false,"isSlot":false,"src":"7769:1:45","valueSize":1},{"declaration":39602,"isOffset":false,"isSlot":false,"src":"7805:1:45","valueSize":1},{"declaration":39583,"isOffset":false,"isSlot":false,"src":"7816:8:45","valueSize":1},{"declaration":39578,"isOffset":false,"isSlot":false,"src":"7780:7:45","valueSize":1}],"id":39604,"nodeType":"InlineAssembly","src":"7742:97:45"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39605,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39599,"src":"7856:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":39606,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39602,"src":"7861:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7856:6:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39662,"nodeType":"IfStatement","src":"7852:445:45","trueBody":{"id":39661,"nodeType":"Block","src":"7864:433:45","statements":[{"assignments":[39609],"declarations":[{"constant":false,"id":39609,"mutability":"mutable","name":"mask","nameLocation":"7948:4:45","nodeType":"VariableDeclaration","scope":39661,"src":"7943:9:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39608,"name":"uint","nodeType":"ElementaryTypeName","src":"7943:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39615,"initialValue":{"expression":{"arguments":[{"id":39612,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7960:4:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":39611,"name":"uint","nodeType":"ElementaryTypeName","src":"7960:4:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":39610,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"7955:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":39613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7955:10:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":39614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7966:3:45","memberName":"max","nodeType":"MemberAccess","src":"7955:14:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7943:26:45"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39616,"name":"shortest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39562,"src":"8003:8:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3332","id":39617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8014:2:45","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"8003:13:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39638,"nodeType":"IfStatement","src":"8000:103:45","trueBody":{"id":39637,"nodeType":"Block","src":"8018:85:45","statements":[{"expression":{"id":39635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39619,"name":"mask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39609,"src":"8038:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":39634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"8045:39:45","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":39620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8047:1:45","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"38","id":39621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8053:1:45","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":39622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8058:2:45","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":39623,"name":"shortest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39562,"src":"8063:8:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8058:13:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":39625,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39588,"src":"8074:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8058:19:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":39627,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8057:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8053:25:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":39629,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8052:27:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8047:32:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":39631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8082:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8047:36:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":39633,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8046:38:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8038:46:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39636,"nodeType":"ExpressionStatement","src":"8038:46:45"}]}},{"id":39660,"nodeType":"UncheckedBlock","src":"8120:163:45","statements":[{"assignments":[39640],"declarations":[{"constant":false,"id":39640,"mutability":"mutable","name":"diff","nameLocation":"8157:4:45","nodeType":"VariableDeclaration","scope":39660,"src":"8152:9:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39639,"name":"uint","nodeType":"ElementaryTypeName","src":"8152:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39650,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39641,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39599,"src":"8165:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":39642,"name":"mask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39609,"src":"8169:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8165:8:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":39644,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8164:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39645,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39602,"src":"8178:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":39646,"name":"mask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39609,"src":"8182:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8178:8:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":39648,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8177:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8164:23:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8152:35:45"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39651,"name":"diff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39640,"src":"8213:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":39652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8221:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8213:9:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39659,"nodeType":"IfStatement","src":"8209:55:45","trueBody":{"expression":{"arguments":[{"id":39656,"name":"diff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39640,"src":"8259:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39655,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8255:3:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":39654,"name":"int","nodeType":"ElementaryTypeName","src":"8255:3:45","typeDescriptions":{}}},"id":39657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8255:9:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":39560,"id":39658,"nodeType":"Return","src":"8248:16:45"}}]}]}},{"expression":{"id":39665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39663,"name":"selfptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39578,"src":"8310:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":39664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8321:2:45","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"8310:13:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39666,"nodeType":"ExpressionStatement","src":"8310:13:45"},{"expression":{"id":39669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39667,"name":"otherptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39583,"src":"8337:8:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":39668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8349:2:45","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"8337:14:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39670,"nodeType":"ExpressionStatement","src":"8337:14:45"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39591,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39588,"src":"7661:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":39592,"name":"shortest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39562,"src":"7667:8:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7661:14:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39672,"initializationExpression":{"assignments":[39588],"declarations":[{"constant":false,"id":39588,"mutability":"mutable","name":"idx","nameLocation":"7652:3:45","nodeType":"VariableDeclaration","scope":39672,"src":"7647:8:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39587,"name":"uint","nodeType":"ElementaryTypeName","src":"7647:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39590,"initialValue":{"hexValue":"30","id":39589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7658:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7647:12:45"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":39596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39594,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39588,"src":"7677:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":39595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7684:2:45","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"7677:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39597,"nodeType":"ExpressionStatement","src":"7677:9:45"},"nodeType":"ForStatement","src":"7642:720:45"},{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":39683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":39675,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39553,"src":"8382:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":39676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8387:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"8382:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39674,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8378:3:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":39673,"name":"int","nodeType":"ElementaryTypeName","src":"8378:3:45","typeDescriptions":{}}},"id":39677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8378:14:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"expression":{"id":39680,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39556,"src":"8399:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":39681,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8405:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"8399:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8395:3:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":39678,"name":"int","nodeType":"ElementaryTypeName","src":"8395:3:45","typeDescriptions":{}}},"id":39682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8395:15:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"8378:32:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":39560,"id":39684,"nodeType":"Return","src":"8371:39:45"}]},"implemented":true,"kind":"function","modifiers":[],"name":"compare","nameLocation":"7380:7:45","parameters":{"id":39557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39553,"mutability":"mutable","name":"self","nameLocation":"7401:4:45","nodeType":"VariableDeclaration","scope":39686,"src":"7388:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":39552,"nodeType":"UserDefinedTypeName","pathNode":{"id":39551,"name":"slice","nameLocations":["7388:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"7388:5:45"},"referencedDeclaration":39147,"src":"7388:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"},{"constant":false,"id":39556,"mutability":"mutable","name":"other","nameLocation":"7420:5:45","nodeType":"VariableDeclaration","scope":39686,"src":"7407:18:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":39555,"nodeType":"UserDefinedTypeName","pathNode":{"id":39554,"name":"slice","nameLocations":["7407:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"7407:5:45"},"referencedDeclaration":39147,"src":"7407:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"7387:39:45"},"returnParameters":{"id":39560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39559,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":39686,"src":"7450:3:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":39558,"name":"int","nodeType":"ElementaryTypeName","src":"7450:3:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"7449:5:45"},"scope":40971,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39705,"nodeType":"FunctionDefinition","src":"8661:133:45","nodes":[],"body":{"id":39704,"nodeType":"Block","src":"8745:49:45","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":39702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":39698,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39689,"src":"8770:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},{"id":39699,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39692,"src":"8776:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}],"id":39697,"name":"compare","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39686,"src":"8762:7:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$39147_memory_ptr_$_t_struct$_slice_$39147_memory_ptr_$returns$_t_int256_$","typeString":"function (struct strings.slice memory,struct strings.slice memory) pure returns (int256)"}},"id":39700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8762:20:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":39701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8786:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8762:25:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":39696,"id":39703,"nodeType":"Return","src":"8755:32:45"}]},"implemented":true,"kind":"function","modifiers":[],"name":"equals","nameLocation":"8670:6:45","parameters":{"id":39693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39689,"mutability":"mutable","name":"self","nameLocation":"8690:4:45","nodeType":"VariableDeclaration","scope":39705,"src":"8677:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":39688,"nodeType":"UserDefinedTypeName","pathNode":{"id":39687,"name":"slice","nameLocations":["8677:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"8677:5:45"},"referencedDeclaration":39147,"src":"8677:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"},{"constant":false,"id":39692,"mutability":"mutable","name":"other","nameLocation":"8709:5:45","nodeType":"VariableDeclaration","scope":39705,"src":"8696:18:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":39691,"nodeType":"UserDefinedTypeName","pathNode":{"id":39690,"name":"slice","nameLocations":["8696:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"8696:5:45"},"referencedDeclaration":39147,"src":"8696:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"8676:39:45"},"returnParameters":{"id":39696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39695,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":39705,"src":"8739:4:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39694,"name":"bool","nodeType":"ElementaryTypeName","src":"8739:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8738:6:45"},"scope":40971,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39826,"nodeType":"FunctionDefinition","src":"9087:878:45","nodes":[],"body":{"id":39825,"nodeType":"Block","src":"9180:785:45","nodes":[],"statements":[{"expression":{"id":39722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":39717,"name":"rune","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39711,"src":"9190:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":39719,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9195:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"9190:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":39720,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39708,"src":"9202:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":39721,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9207:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"9202:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9190:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39723,"nodeType":"ExpressionStatement","src":"9190:21:45"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":39724,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39708,"src":"9226:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":39725,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9231:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"9226:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":39726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9239:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9226:14:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39737,"nodeType":"IfStatement","src":"9222:83:45","trueBody":{"id":39736,"nodeType":"Block","src":"9242:63:45","statements":[{"expression":{"id":39732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":39728,"name":"rune","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39711,"src":"9256:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":39730,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9261:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"9256:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":39731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9268:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9256:13:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39733,"nodeType":"ExpressionStatement","src":"9256:13:45"},{"expression":{"id":39734,"name":"rune","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39711,"src":"9290:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"functionReturnParameters":39716,"id":39735,"nodeType":"Return","src":"9283:11:45"}]}},{"assignments":[39739],"declarations":[{"constant":false,"id":39739,"mutability":"mutable","name":"l","nameLocation":"9320:1:45","nodeType":"VariableDeclaration","scope":39825,"src":"9315:6:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39738,"name":"uint","nodeType":"ElementaryTypeName","src":"9315:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39740,"nodeType":"VariableDeclarationStatement","src":"9315:6:45"},{"assignments":[39742],"declarations":[{"constant":false,"id":39742,"mutability":"mutable","name":"b","nameLocation":"9336:1:45","nodeType":"VariableDeclaration","scope":39825,"src":"9331:6:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39741,"name":"uint","nodeType":"ElementaryTypeName","src":"9331:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39743,"nodeType":"VariableDeclarationStatement","src":"9331:6:45"},{"AST":{"nativeSrc":"9418:56:45","nodeType":"YulBlock","src":"9418:56:45","statements":[{"nativeSrc":"9420:52:45","nodeType":"YulAssignment","src":"9420:52:45","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"self","nativeSrc":"9449:4:45","nodeType":"YulIdentifier","src":"9449:4:45"},{"kind":"number","nativeSrc":"9455:2:45","nodeType":"YulLiteral","src":"9455:2:45","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9445:3:45","nodeType":"YulIdentifier","src":"9445:3:45"},"nativeSrc":"9445:13:45","nodeType":"YulFunctionCall","src":"9445:13:45"}],"functionName":{"name":"mload","nativeSrc":"9439:5:45","nodeType":"YulIdentifier","src":"9439:5:45"},"nativeSrc":"9439:20:45","nodeType":"YulFunctionCall","src":"9439:20:45"},{"kind":"number","nativeSrc":"9461:2:45","nodeType":"YulLiteral","src":"9461:2:45","type":"","value":"31"}],"functionName":{"name":"sub","nativeSrc":"9435:3:45","nodeType":"YulIdentifier","src":"9435:3:45"},"nativeSrc":"9435:29:45","nodeType":"YulFunctionCall","src":"9435:29:45"}],"functionName":{"name":"mload","nativeSrc":"9429:5:45","nodeType":"YulIdentifier","src":"9429:5:45"},"nativeSrc":"9429:36:45","nodeType":"YulFunctionCall","src":"9429:36:45"},{"kind":"number","nativeSrc":"9467:4:45","nodeType":"YulLiteral","src":"9467:4:45","type":"","value":"0xFF"}],"functionName":{"name":"and","nativeSrc":"9425:3:45","nodeType":"YulIdentifier","src":"9425:3:45"},"nativeSrc":"9425:47:45","nodeType":"YulFunctionCall","src":"9425:47:45"},"variableNames":[{"name":"b","nativeSrc":"9420:1:45","nodeType":"YulIdentifier","src":"9420:1:45"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":39742,"isOffset":false,"isSlot":false,"src":"9420:1:45","valueSize":1},{"declaration":39708,"isOffset":false,"isSlot":false,"src":"9449:4:45","valueSize":1}],"id":39744,"nodeType":"InlineAssembly","src":"9409:65:45"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39745,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39742,"src":"9487:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30783830","id":39746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9491:4:45","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"0x80"},"src":"9487:8:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39753,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39742,"src":"9536:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30784530","id":39754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9540:4:45","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"value":"0xE0"},"src":"9536:8:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39761,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39742,"src":"9585:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30784630","id":39762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9589:4:45","typeDescriptions":{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},"value":"0xF0"},"src":"9585:8:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":39773,"nodeType":"Block","src":"9631:30:45","statements":[{"expression":{"id":39771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39769,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39739,"src":"9645:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"34","id":39770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9649:1:45","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9645:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39772,"nodeType":"ExpressionStatement","src":"9645:5:45"}]},"id":39774,"nodeType":"IfStatement","src":"9582:79:45","trueBody":{"id":39768,"nodeType":"Block","src":"9595:30:45","statements":[{"expression":{"id":39766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39764,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39739,"src":"9609:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"33","id":39765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9613:1:45","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"9609:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39767,"nodeType":"ExpressionStatement","src":"9609:5:45"}]}},"id":39775,"nodeType":"IfStatement","src":"9533:128:45","trueBody":{"id":39760,"nodeType":"Block","src":"9546:30:45","statements":[{"expression":{"id":39758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39756,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39739,"src":"9560:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"32","id":39757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9564:1:45","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9560:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39759,"nodeType":"ExpressionStatement","src":"9560:5:45"}]}},"id":39776,"nodeType":"IfStatement","src":"9483:178:45","trueBody":{"id":39752,"nodeType":"Block","src":"9497:30:45","statements":[{"expression":{"id":39750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39748,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39739,"src":"9511:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":39749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9515:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9511:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39751,"nodeType":"ExpressionStatement","src":"9511:5:45"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39777,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39739,"src":"9717:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":39778,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39708,"src":"9721:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":39779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9726:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"9721:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9717:13:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39804,"nodeType":"IfStatement","src":"9713:153:45","trueBody":{"id":39803,"nodeType":"Block","src":"9732:134:45","statements":[{"expression":{"id":39786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":39781,"name":"rune","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39711,"src":"9746:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":39783,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9751:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"9746:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":39784,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39708,"src":"9758:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":39785,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9763:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"9758:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9746:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39787,"nodeType":"ExpressionStatement","src":"9746:21:45"},{"expression":{"id":39793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":39788,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39708,"src":"9781:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":39790,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9786:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"9781:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":39791,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39708,"src":"9794:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":39792,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9799:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"9794:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9781:22:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39794,"nodeType":"ExpressionStatement","src":"9781:22:45"},{"expression":{"id":39799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":39795,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39708,"src":"9817:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":39797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9822:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"9817:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":39798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9829:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9817:13:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39800,"nodeType":"ExpressionStatement","src":"9817:13:45"},{"expression":{"id":39801,"name":"rune","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39711,"src":"9851:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"functionReturnParameters":39716,"id":39802,"nodeType":"Return","src":"9844:11:45"}]}},{"expression":{"id":39809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":39805,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39708,"src":"9876:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":39807,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9881:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"9876:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":39808,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39739,"src":"9889:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9876:14:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39810,"nodeType":"ExpressionStatement","src":"9876:14:45"},{"expression":{"id":39815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":39811,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39708,"src":"9900:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":39813,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9905:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"9900:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":39814,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39739,"src":"9913:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9900:14:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39816,"nodeType":"ExpressionStatement","src":"9900:14:45"},{"expression":{"id":39821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":39817,"name":"rune","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39711,"src":"9924:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":39819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9929:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"9924:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":39820,"name":"l","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39739,"src":"9936:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9924:13:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39822,"nodeType":"ExpressionStatement","src":"9924:13:45"},{"expression":{"id":39823,"name":"rune","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39711,"src":"9954:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"functionReturnParameters":39716,"id":39824,"nodeType":"Return","src":"9947:11:45"}]},"implemented":true,"kind":"function","modifiers":[],"name":"nextRune","nameLocation":"9096:8:45","parameters":{"id":39712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39708,"mutability":"mutable","name":"self","nameLocation":"9118:4:45","nodeType":"VariableDeclaration","scope":39826,"src":"9105:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":39707,"nodeType":"UserDefinedTypeName","pathNode":{"id":39706,"name":"slice","nameLocations":["9105:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"9105:5:45"},"referencedDeclaration":39147,"src":"9105:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"},{"constant":false,"id":39711,"mutability":"mutable","name":"rune","nameLocation":"9137:4:45","nodeType":"VariableDeclaration","scope":39826,"src":"9124:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":39710,"nodeType":"UserDefinedTypeName","pathNode":{"id":39709,"name":"slice","nameLocations":["9124:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"9124:5:45"},"referencedDeclaration":39147,"src":"9124:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"9104:38:45"},"returnParameters":{"id":39716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39715,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":39826,"src":"9166:12:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":39714,"nodeType":"UserDefinedTypeName","pathNode":{"id":39713,"name":"slice","nameLocations":["9166:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"9166:5:45"},"referencedDeclaration":39147,"src":"9166:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"9165:14:45"},"scope":40971,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39841,"nodeType":"FunctionDefinition","src":"10205:114:45","nodes":[],"body":{"id":39840,"nodeType":"Block","src":"10283:36:45","nodes":[],"statements":[{"expression":{"arguments":[{"id":39836,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39829,"src":"10302:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},{"id":39837,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39833,"src":"10308:3:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}],"id":39835,"name":"nextRune","nodeType":"Identifier","overloadedDeclarations":[39826,39841],"referencedDeclaration":39826,"src":"10293:8:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$39147_memory_ptr_$_t_struct$_slice_$39147_memory_ptr_$returns$_t_struct$_slice_$39147_memory_ptr_$","typeString":"function (struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)"}},"id":39838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10293:19:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":39839,"nodeType":"ExpressionStatement","src":"10293:19:45"}]},"implemented":true,"kind":"function","modifiers":[],"name":"nextRune","nameLocation":"10214:8:45","parameters":{"id":39830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39829,"mutability":"mutable","name":"self","nameLocation":"10236:4:45","nodeType":"VariableDeclaration","scope":39841,"src":"10223:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":39828,"nodeType":"UserDefinedTypeName","pathNode":{"id":39827,"name":"slice","nameLocations":["10223:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"10223:5:45"},"referencedDeclaration":39147,"src":"10223:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"10222:19:45"},"returnParameters":{"id":39834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39833,"mutability":"mutable","name":"ret","nameLocation":"10278:3:45","nodeType":"VariableDeclaration","scope":39841,"src":"10265:16:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":39832,"nodeType":"UserDefinedTypeName","pathNode":{"id":39831,"name":"slice","nameLocations":["10265:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"10265:5:45"},"referencedDeclaration":39147,"src":"10265:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"10264:18:45"},"scope":40971,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39989,"nodeType":"FunctionDefinition","src":"10515:1078:45","nodes":[],"body":{"id":39988,"nodeType":"Block","src":"10580:1013:45","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":39849,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39844,"src":"10594:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":39850,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10599:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"10594:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":39851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10607:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10594:14:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39856,"nodeType":"IfStatement","src":"10590:53:45","trueBody":{"id":39855,"nodeType":"Block","src":"10610:33:45","statements":[{"expression":{"hexValue":"30","id":39853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10631:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":39848,"id":39854,"nodeType":"Return","src":"10624:8:45"}]}},{"assignments":[39858],"declarations":[{"constant":false,"id":39858,"mutability":"mutable","name":"word","nameLocation":"10658:4:45","nodeType":"VariableDeclaration","scope":39988,"src":"10653:9:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39857,"name":"uint","nodeType":"ElementaryTypeName","src":"10653:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39859,"nodeType":"VariableDeclarationStatement","src":"10653:9:45"},{"assignments":[39861],"declarations":[{"constant":false,"id":39861,"mutability":"mutable","name":"length","nameLocation":"10677:6:45","nodeType":"VariableDeclaration","scope":39988,"src":"10672:11:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39860,"name":"uint","nodeType":"ElementaryTypeName","src":"10672:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39862,"nodeType":"VariableDeclarationStatement","src":"10672:11:45"},{"assignments":[39864],"declarations":[{"constant":false,"id":39864,"mutability":"mutable","name":"divisor","nameLocation":"10698:7:45","nodeType":"VariableDeclaration","scope":39988,"src":"10693:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39863,"name":"uint","nodeType":"ElementaryTypeName","src":"10693:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39868,"initialValue":{"commonType":{"typeIdentifier":"t_rational_452312848583266388373324160190187140051835877600158453279131187530910662656_by_1","typeString":"int_const 4523...(67 digits omitted)...2656"},"id":39867,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":39865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10708:1:45","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"323438","id":39866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10713:3:45","typeDescriptions":{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},"value":"248"},"src":"10708:8:45","typeDescriptions":{"typeIdentifier":"t_rational_452312848583266388373324160190187140051835877600158453279131187530910662656_by_1","typeString":"int_const 4523...(67 digits omitted)...2656"}},"nodeType":"VariableDeclarationStatement","src":"10693:23:45"},{"AST":{"nativeSrc":"10780:38:45","nodeType":"YulBlock","src":"10780:38:45","statements":[{"nativeSrc":"10782:34:45","nodeType":"YulAssignment","src":"10782:34:45","value":{"arguments":[{"arguments":[{"arguments":[{"name":"self","nativeSrc":"10805:4:45","nodeType":"YulIdentifier","src":"10805:4:45"},{"kind":"number","nativeSrc":"10811:2:45","nodeType":"YulLiteral","src":"10811:2:45","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10801:3:45","nodeType":"YulIdentifier","src":"10801:3:45"},"nativeSrc":"10801:13:45","nodeType":"YulFunctionCall","src":"10801:13:45"}],"functionName":{"name":"mload","nativeSrc":"10795:5:45","nodeType":"YulIdentifier","src":"10795:5:45"},"nativeSrc":"10795:20:45","nodeType":"YulFunctionCall","src":"10795:20:45"}],"functionName":{"name":"mload","nativeSrc":"10789:5:45","nodeType":"YulIdentifier","src":"10789:5:45"},"nativeSrc":"10789:27:45","nodeType":"YulFunctionCall","src":"10789:27:45"},"variableNames":[{"name":"word","nativeSrc":"10782:4:45","nodeType":"YulIdentifier","src":"10782:4:45"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":39844,"isOffset":false,"isSlot":false,"src":"10805:4:45","valueSize":1},{"declaration":39858,"isOffset":false,"isSlot":false,"src":"10782:4:45","valueSize":1}],"id":39869,"nodeType":"InlineAssembly","src":"10771:47:45"},{"assignments":[39871],"declarations":[{"constant":false,"id":39871,"mutability":"mutable","name":"b","nameLocation":"10832:1:45","nodeType":"VariableDeclaration","scope":39988,"src":"10827:6:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39870,"name":"uint","nodeType":"ElementaryTypeName","src":"10827:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39875,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39872,"name":"word","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39858,"src":"10836:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":39873,"name":"divisor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39864,"src":"10843:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10836:14:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10827:23:45"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39876,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39871,"src":"10864:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30783830","id":39877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10868:4:45","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"0x80"},"src":"10864:8:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39888,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39871,"src":"10939:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30784530","id":39889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10943:4:45","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"value":"0xE0"},"src":"10939:8:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39902,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39871,"src":"11021:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30784630","id":39903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11025:4:45","typeDescriptions":{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},"value":"0xF0"},"src":"11021:8:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":39926,"nodeType":"Block","src":"11100:63:45","statements":[{"expression":{"id":39920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39916,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39847,"src":"11114:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39917,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39871,"src":"11120:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30783037","id":39918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11124:4:45","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"0x07"},"src":"11120:8:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11114:14:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39921,"nodeType":"ExpressionStatement","src":"11114:14:45"},{"expression":{"id":39924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39922,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39861,"src":"11142:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"34","id":39923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11151:1:45","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"11142:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39925,"nodeType":"ExpressionStatement","src":"11142:10:45"}]},"id":39927,"nodeType":"IfStatement","src":"11018:145:45","trueBody":{"id":39915,"nodeType":"Block","src":"11031:63:45","statements":[{"expression":{"id":39909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39905,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39847,"src":"11045:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39906,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39871,"src":"11051:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30783046","id":39907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11055:4:45","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0x0F"},"src":"11051:8:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11045:14:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39910,"nodeType":"ExpressionStatement","src":"11045:14:45"},{"expression":{"id":39913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39911,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39861,"src":"11073:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"33","id":39912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11082:1:45","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"11073:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39914,"nodeType":"ExpressionStatement","src":"11073:10:45"}]}},"id":39928,"nodeType":"IfStatement","src":"10936:227:45","trueBody":{"id":39901,"nodeType":"Block","src":"10949:63:45","statements":[{"expression":{"id":39895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39891,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39847,"src":"10963:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39892,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39871,"src":"10969:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30783146","id":39893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10973:4:45","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"0x1F"},"src":"10969:8:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10963:14:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39896,"nodeType":"ExpressionStatement","src":"10963:14:45"},{"expression":{"id":39899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39897,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39861,"src":"10991:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"32","id":39898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11000:1:45","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10991:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39900,"nodeType":"ExpressionStatement","src":"10991:10:45"}]}},"id":39929,"nodeType":"IfStatement","src":"10860:303:45","trueBody":{"id":39887,"nodeType":"Block","src":"10874:56:45","statements":[{"expression":{"id":39881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39879,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39847,"src":"10888:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":39880,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39871,"src":"10894:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10888:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39882,"nodeType":"ExpressionStatement","src":"10888:7:45"},{"expression":{"id":39885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39883,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39861,"src":"10909:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":39884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10918:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10909:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39886,"nodeType":"ExpressionStatement","src":"10909:10:45"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39930,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39861,"src":"11219:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":39931,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39844,"src":"11228:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":39932,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11233:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"11228:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11219:18:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39937,"nodeType":"IfStatement","src":"11215:57:45","trueBody":{"id":39936,"nodeType":"Block","src":"11239:33:45","statements":[{"expression":{"hexValue":"30","id":39934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11260:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":39848,"id":39935,"nodeType":"Return","src":"11253:8:45"}]}},{"body":{"id":39984,"nodeType":"Block","src":"11316:250:45","statements":[{"expression":{"id":39952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39948,"name":"divisor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39864,"src":"11330:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39949,"name":"divisor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39864,"src":"11340:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"323536","id":39950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11350:3:45","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"src":"11340:13:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11330:23:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39953,"nodeType":"ExpressionStatement","src":"11330:23:45"},{"expression":{"id":39961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39954,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39871,"src":"11367:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39955,"name":"word","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39858,"src":"11372:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":39956,"name":"divisor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39864,"src":"11379:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11372:14:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":39958,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11371:16:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30784646","id":39959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11390:4:45","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"0xFF"},"src":"11371:23:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11367:27:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39962,"nodeType":"ExpressionStatement","src":"11367:27:45"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39963,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39871,"src":"11412:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30784330","id":39964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11416:4:45","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"0xC0"},"src":"11412:8:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30783830","id":39966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11424:4:45","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"0x80"},"src":"11412:16:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39971,"nodeType":"IfStatement","src":"11408:105:45","trueBody":{"id":39970,"nodeType":"Block","src":"11430:83:45","statements":[{"expression":{"hexValue":"30","id":39968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11497:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":39848,"id":39969,"nodeType":"Return","src":"11490:8:45"}]}},{"expression":{"id":39982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39972,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39847,"src":"11526:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39973,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39847,"src":"11533:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3634","id":39974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11539:2:45","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11533:8:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":39976,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11532:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39977,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39871,"src":"11546:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30783346","id":39978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11550:4:45","typeDescriptions":{"typeIdentifier":"t_rational_63_by_1","typeString":"int_const 63"},"value":"0x3F"},"src":"11546:8:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":39980,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11545:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11532:23:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11526:29:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39983,"nodeType":"ExpressionStatement","src":"11526:29:45"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39942,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39939,"src":"11299:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":39943,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39861,"src":"11303:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11299:10:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39985,"initializationExpression":{"assignments":[39939],"declarations":[{"constant":false,"id":39939,"mutability":"mutable","name":"i","nameLocation":"11292:1:45","nodeType":"VariableDeclaration","scope":39985,"src":"11287:6:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39938,"name":"uint","nodeType":"ElementaryTypeName","src":"11287:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39941,"initialValue":{"hexValue":"31","id":39940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11296:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"11287:10:45"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":39946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11311:3:45","subExpression":{"id":39945,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39939,"src":"11311:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39947,"nodeType":"ExpressionStatement","src":"11311:3:45"},"nodeType":"ForStatement","src":"11282:284:45"},{"expression":{"id":39986,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39847,"src":"11583:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":39848,"id":39987,"nodeType":"Return","src":"11576:10:45"}]},"implemented":true,"kind":"function","modifiers":[],"name":"ord","nameLocation":"10524:3:45","parameters":{"id":39845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39844,"mutability":"mutable","name":"self","nameLocation":"10541:4:45","nodeType":"VariableDeclaration","scope":39989,"src":"10528:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":39843,"nodeType":"UserDefinedTypeName","pathNode":{"id":39842,"name":"slice","nameLocations":["10528:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"10528:5:45"},"referencedDeclaration":39147,"src":"10528:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"10527:19:45"},"returnParameters":{"id":39848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39847,"mutability":"mutable","name":"ret","nameLocation":"10575:3:45","nodeType":"VariableDeclaration","scope":39989,"src":"10570:8:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39846,"name":"uint","nodeType":"ElementaryTypeName","src":"10570:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10569:10:45"},"scope":40971,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39999,"nodeType":"FunctionDefinition","src":"11744:171:45","nodes":[],"body":{"id":39998,"nodeType":"Block","src":"11815:100:45","nodes":[],"statements":[{"AST":{"nativeSrc":"11834:75:45","nodeType":"YulBlock","src":"11834:75:45","statements":[{"nativeSrc":"11848:51:45","nodeType":"YulAssignment","src":"11848:51:45","value":{"arguments":[{"arguments":[{"arguments":[{"name":"self","nativeSrc":"11875:4:45","nodeType":"YulIdentifier","src":"11875:4:45"},{"kind":"number","nativeSrc":"11881:2:45","nodeType":"YulLiteral","src":"11881:2:45","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11871:3:45","nodeType":"YulIdentifier","src":"11871:3:45"},"nativeSrc":"11871:13:45","nodeType":"YulFunctionCall","src":"11871:13:45"}],"functionName":{"name":"mload","nativeSrc":"11865:5:45","nodeType":"YulIdentifier","src":"11865:5:45"},"nativeSrc":"11865:20:45","nodeType":"YulFunctionCall","src":"11865:20:45"},{"arguments":[{"name":"self","nativeSrc":"11893:4:45","nodeType":"YulIdentifier","src":"11893:4:45"}],"functionName":{"name":"mload","nativeSrc":"11887:5:45","nodeType":"YulIdentifier","src":"11887:5:45"},"nativeSrc":"11887:11:45","nodeType":"YulFunctionCall","src":"11887:11:45"}],"functionName":{"name":"keccak256","nativeSrc":"11855:9:45","nodeType":"YulIdentifier","src":"11855:9:45"},"nativeSrc":"11855:44:45","nodeType":"YulFunctionCall","src":"11855:44:45"},"variableNames":[{"name":"ret","nativeSrc":"11848:3:45","nodeType":"YulIdentifier","src":"11848:3:45"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":39995,"isOffset":false,"isSlot":false,"src":"11848:3:45","valueSize":1},{"declaration":39992,"isOffset":false,"isSlot":false,"src":"11875:4:45","valueSize":1},{"declaration":39992,"isOffset":false,"isSlot":false,"src":"11893:4:45","valueSize":1}],"id":39997,"nodeType":"InlineAssembly","src":"11825:84:45"}]},"implemented":true,"kind":"function","modifiers":[],"name":"keccak","nameLocation":"11753:6:45","parameters":{"id":39993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39992,"mutability":"mutable","name":"self","nameLocation":"11773:4:45","nodeType":"VariableDeclaration","scope":39999,"src":"11760:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":39991,"nodeType":"UserDefinedTypeName","pathNode":{"id":39990,"name":"slice","nameLocations":["11760:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"11760:5:45"},"referencedDeclaration":39147,"src":"11760:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"11759:19:45"},"returnParameters":{"id":39996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39995,"mutability":"mutable","name":"ret","nameLocation":"11810:3:45","nodeType":"VariableDeclaration","scope":39999,"src":"11802:11:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39994,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11802:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11801:13:45"},"scope":40971,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40035,"nodeType":"FunctionDefinition","src":"12164:545:45","nodes":[],"body":{"id":40034,"nodeType":"Block","src":"12253:456:45","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40010,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40002,"src":"12267:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12272:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"12267:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":40012,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40005,"src":"12279:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40013,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12286:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"12279:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12267:23:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40018,"nodeType":"IfStatement","src":"12263:66:45","trueBody":{"id":40017,"nodeType":"Block","src":"12292:37:45","statements":[{"expression":{"hexValue":"66616c7365","id":40015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12313:5:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":40009,"id":40016,"nodeType":"Return","src":"12306:12:45"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40019,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40002,"src":"12343:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40020,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12348:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"12343:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":40021,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40005,"src":"12356:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12363:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"12356:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12343:24:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40027,"nodeType":"IfStatement","src":"12339:66:45","trueBody":{"id":40026,"nodeType":"Block","src":"12369:36:45","statements":[{"expression":{"hexValue":"74727565","id":40024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12390:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":40009,"id":40025,"nodeType":"Return","src":"12383:11:45"}]}},{"assignments":[40029],"declarations":[{"constant":false,"id":40029,"mutability":"mutable","name":"equal","nameLocation":"12420:5:45","nodeType":"VariableDeclaration","scope":40034,"src":"12415:10:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40028,"name":"bool","nodeType":"ElementaryTypeName","src":"12415:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":40030,"nodeType":"VariableDeclarationStatement","src":"12415:10:45"},{"AST":{"nativeSrc":"12444:237:45","nodeType":"YulBlock","src":"12444:237:45","statements":[{"nativeSrc":"12458:27:45","nodeType":"YulVariableDeclaration","src":"12458:27:45","value":{"arguments":[{"name":"needle","nativeSrc":"12478:6:45","nodeType":"YulIdentifier","src":"12478:6:45"}],"functionName":{"name":"mload","nativeSrc":"12472:5:45","nodeType":"YulIdentifier","src":"12472:5:45"},"nativeSrc":"12472:13:45","nodeType":"YulFunctionCall","src":"12472:13:45"},"variables":[{"name":"length","nativeSrc":"12462:6:45","nodeType":"YulTypedName","src":"12462:6:45","type":""}]},{"nativeSrc":"12498:37:45","nodeType":"YulVariableDeclaration","src":"12498:37:45","value":{"arguments":[{"arguments":[{"name":"self","nativeSrc":"12523:4:45","nodeType":"YulIdentifier","src":"12523:4:45"},{"kind":"number","nativeSrc":"12529:4:45","nodeType":"YulLiteral","src":"12529:4:45","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12519:3:45","nodeType":"YulIdentifier","src":"12519:3:45"},"nativeSrc":"12519:15:45","nodeType":"YulFunctionCall","src":"12519:15:45"}],"functionName":{"name":"mload","nativeSrc":"12513:5:45","nodeType":"YulIdentifier","src":"12513:5:45"},"nativeSrc":"12513:22:45","nodeType":"YulFunctionCall","src":"12513:22:45"},"variables":[{"name":"selfptr","nativeSrc":"12502:7:45","nodeType":"YulTypedName","src":"12502:7:45","type":""}]},{"nativeSrc":"12548:41:45","nodeType":"YulVariableDeclaration","src":"12548:41:45","value":{"arguments":[{"arguments":[{"name":"needle","nativeSrc":"12575:6:45","nodeType":"YulIdentifier","src":"12575:6:45"},{"kind":"number","nativeSrc":"12583:4:45","nodeType":"YulLiteral","src":"12583:4:45","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12571:3:45","nodeType":"YulIdentifier","src":"12571:3:45"},"nativeSrc":"12571:17:45","nodeType":"YulFunctionCall","src":"12571:17:45"}],"functionName":{"name":"mload","nativeSrc":"12565:5:45","nodeType":"YulIdentifier","src":"12565:5:45"},"nativeSrc":"12565:24:45","nodeType":"YulFunctionCall","src":"12565:24:45"},"variables":[{"name":"needleptr","nativeSrc":"12552:9:45","nodeType":"YulTypedName","src":"12552:9:45","type":""}]},{"nativeSrc":"12602:69:45","nodeType":"YulAssignment","src":"12602:69:45","value":{"arguments":[{"arguments":[{"name":"selfptr","nativeSrc":"12624:7:45","nodeType":"YulIdentifier","src":"12624:7:45"},{"name":"length","nativeSrc":"12633:6:45","nodeType":"YulIdentifier","src":"12633:6:45"}],"functionName":{"name":"keccak256","nativeSrc":"12614:9:45","nodeType":"YulIdentifier","src":"12614:9:45"},"nativeSrc":"12614:26:45","nodeType":"YulFunctionCall","src":"12614:26:45"},{"arguments":[{"name":"needleptr","nativeSrc":"12652:9:45","nodeType":"YulIdentifier","src":"12652:9:45"},{"name":"length","nativeSrc":"12663:6:45","nodeType":"YulIdentifier","src":"12663:6:45"}],"functionName":{"name":"keccak256","nativeSrc":"12642:9:45","nodeType":"YulIdentifier","src":"12642:9:45"},"nativeSrc":"12642:28:45","nodeType":"YulFunctionCall","src":"12642:28:45"}],"functionName":{"name":"eq","nativeSrc":"12611:2:45","nodeType":"YulIdentifier","src":"12611:2:45"},"nativeSrc":"12611:60:45","nodeType":"YulFunctionCall","src":"12611:60:45"},"variableNames":[{"name":"equal","nativeSrc":"12602:5:45","nodeType":"YulIdentifier","src":"12602:5:45"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":40029,"isOffset":false,"isSlot":false,"src":"12602:5:45","valueSize":1},{"declaration":40005,"isOffset":false,"isSlot":false,"src":"12478:6:45","valueSize":1},{"declaration":40005,"isOffset":false,"isSlot":false,"src":"12575:6:45","valueSize":1},{"declaration":40002,"isOffset":false,"isSlot":false,"src":"12523:4:45","valueSize":1}],"id":40031,"nodeType":"InlineAssembly","src":"12435:246:45"},{"expression":{"id":40032,"name":"equal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40029,"src":"12697:5:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":40009,"id":40033,"nodeType":"Return","src":"12690:12:45"}]},"implemented":true,"kind":"function","modifiers":[],"name":"startsWith","nameLocation":"12173:10:45","parameters":{"id":40006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40002,"mutability":"mutable","name":"self","nameLocation":"12197:4:45","nodeType":"VariableDeclaration","scope":40035,"src":"12184:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40001,"nodeType":"UserDefinedTypeName","pathNode":{"id":40000,"name":"slice","nameLocations":["12184:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"12184:5:45"},"referencedDeclaration":39147,"src":"12184:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"},{"constant":false,"id":40005,"mutability":"mutable","name":"needle","nameLocation":"12216:6:45","nodeType":"VariableDeclaration","scope":40035,"src":"12203:19:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40004,"nodeType":"UserDefinedTypeName","pathNode":{"id":40003,"name":"slice","nameLocations":["12203:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"12203:5:45"},"referencedDeclaration":39147,"src":"12203:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"12183:40:45"},"returnParameters":{"id":40009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40008,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40035,"src":"12247:4:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40007,"name":"bool","nodeType":"ElementaryTypeName","src":"12247:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12246:6:45"},"scope":40971,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40088,"nodeType":"FunctionDefinition","src":"12981:661:45","nodes":[],"body":{"id":40087,"nodeType":"Block","src":"13074:568:45","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40047,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40038,"src":"13088:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40048,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13093:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"13088:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":40049,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40041,"src":"13100:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40050,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13107:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"13100:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13088:23:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40055,"nodeType":"IfStatement","src":"13084:65:45","trueBody":{"id":40054,"nodeType":"Block","src":"13113:36:45","statements":[{"expression":{"id":40052,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40038,"src":"13134:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"functionReturnParameters":40046,"id":40053,"nodeType":"Return","src":"13127:11:45"}]}},{"assignments":[40057],"declarations":[{"constant":false,"id":40057,"mutability":"mutable","name":"equal","nameLocation":"13164:5:45","nodeType":"VariableDeclaration","scope":40087,"src":"13159:10:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40056,"name":"bool","nodeType":"ElementaryTypeName","src":"13159:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":40059,"initialValue":{"hexValue":"74727565","id":40058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13172:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"13159:17:45"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40060,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40038,"src":"13190:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40061,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13195:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"13190:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":40062,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40041,"src":"13203:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13210:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"13203:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13190:24:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40067,"nodeType":"IfStatement","src":"13186:320:45","trueBody":{"id":40066,"nodeType":"Block","src":"13216:290:45","statements":[{"AST":{"nativeSrc":"13239:257:45","nodeType":"YulBlock","src":"13239:257:45","statements":[{"nativeSrc":"13257:27:45","nodeType":"YulVariableDeclaration","src":"13257:27:45","value":{"arguments":[{"name":"needle","nativeSrc":"13277:6:45","nodeType":"YulIdentifier","src":"13277:6:45"}],"functionName":{"name":"mload","nativeSrc":"13271:5:45","nodeType":"YulIdentifier","src":"13271:5:45"},"nativeSrc":"13271:13:45","nodeType":"YulFunctionCall","src":"13271:13:45"},"variables":[{"name":"length","nativeSrc":"13261:6:45","nodeType":"YulTypedName","src":"13261:6:45","type":""}]},{"nativeSrc":"13301:37:45","nodeType":"YulVariableDeclaration","src":"13301:37:45","value":{"arguments":[{"arguments":[{"name":"self","nativeSrc":"13326:4:45","nodeType":"YulIdentifier","src":"13326:4:45"},{"kind":"number","nativeSrc":"13332:4:45","nodeType":"YulLiteral","src":"13332:4:45","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13322:3:45","nodeType":"YulIdentifier","src":"13322:3:45"},"nativeSrc":"13322:15:45","nodeType":"YulFunctionCall","src":"13322:15:45"}],"functionName":{"name":"mload","nativeSrc":"13316:5:45","nodeType":"YulIdentifier","src":"13316:5:45"},"nativeSrc":"13316:22:45","nodeType":"YulFunctionCall","src":"13316:22:45"},"variables":[{"name":"selfptr","nativeSrc":"13305:7:45","nodeType":"YulTypedName","src":"13305:7:45","type":""}]},{"nativeSrc":"13355:41:45","nodeType":"YulVariableDeclaration","src":"13355:41:45","value":{"arguments":[{"arguments":[{"name":"needle","nativeSrc":"13382:6:45","nodeType":"YulIdentifier","src":"13382:6:45"},{"kind":"number","nativeSrc":"13390:4:45","nodeType":"YulLiteral","src":"13390:4:45","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13378:3:45","nodeType":"YulIdentifier","src":"13378:3:45"},"nativeSrc":"13378:17:45","nodeType":"YulFunctionCall","src":"13378:17:45"}],"functionName":{"name":"mload","nativeSrc":"13372:5:45","nodeType":"YulIdentifier","src":"13372:5:45"},"nativeSrc":"13372:24:45","nodeType":"YulFunctionCall","src":"13372:24:45"},"variables":[{"name":"needleptr","nativeSrc":"13359:9:45","nodeType":"YulTypedName","src":"13359:9:45","type":""}]},{"nativeSrc":"13413:69:45","nodeType":"YulAssignment","src":"13413:69:45","value":{"arguments":[{"arguments":[{"name":"selfptr","nativeSrc":"13435:7:45","nodeType":"YulIdentifier","src":"13435:7:45"},{"name":"length","nativeSrc":"13444:6:45","nodeType":"YulIdentifier","src":"13444:6:45"}],"functionName":{"name":"keccak256","nativeSrc":"13425:9:45","nodeType":"YulIdentifier","src":"13425:9:45"},"nativeSrc":"13425:26:45","nodeType":"YulFunctionCall","src":"13425:26:45"},{"arguments":[{"name":"needleptr","nativeSrc":"13463:9:45","nodeType":"YulIdentifier","src":"13463:9:45"},{"name":"length","nativeSrc":"13474:6:45","nodeType":"YulIdentifier","src":"13474:6:45"}],"functionName":{"name":"keccak256","nativeSrc":"13453:9:45","nodeType":"YulIdentifier","src":"13453:9:45"},"nativeSrc":"13453:28:45","nodeType":"YulFunctionCall","src":"13453:28:45"}],"functionName":{"name":"eq","nativeSrc":"13422:2:45","nodeType":"YulIdentifier","src":"13422:2:45"},"nativeSrc":"13422:60:45","nodeType":"YulFunctionCall","src":"13422:60:45"},"variableNames":[{"name":"equal","nativeSrc":"13413:5:45","nodeType":"YulIdentifier","src":"13413:5:45"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":40057,"isOffset":false,"isSlot":false,"src":"13413:5:45","valueSize":1},{"declaration":40041,"isOffset":false,"isSlot":false,"src":"13277:6:45","valueSize":1},{"declaration":40041,"isOffset":false,"isSlot":false,"src":"13382:6:45","valueSize":1},{"declaration":40038,"isOffset":false,"isSlot":false,"src":"13326:4:45","valueSize":1}],"id":40065,"nodeType":"InlineAssembly","src":"13230:266:45"}]}},{"condition":{"id":40068,"name":"equal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40057,"src":"13520:5:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40084,"nodeType":"IfStatement","src":"13516:98:45","trueBody":{"id":40083,"nodeType":"Block","src":"13527:87:45","statements":[{"expression":{"id":40074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":40069,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40038,"src":"13541:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40071,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13546:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"13541:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"expression":{"id":40072,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40041,"src":"13554:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13561:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"13554:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13541:24:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40075,"nodeType":"ExpressionStatement","src":"13541:24:45"},{"expression":{"id":40081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":40076,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40038,"src":"13579:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40078,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13584:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"13579:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":40079,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40041,"src":"13592:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13599:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"13592:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13579:24:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40082,"nodeType":"ExpressionStatement","src":"13579:24:45"}]}},{"expression":{"id":40085,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40038,"src":"13631:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"functionReturnParameters":40046,"id":40086,"nodeType":"Return","src":"13624:11:45"}]},"implemented":true,"kind":"function","modifiers":[],"name":"beyond","nameLocation":"12990:6:45","parameters":{"id":40042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40038,"mutability":"mutable","name":"self","nameLocation":"13010:4:45","nodeType":"VariableDeclaration","scope":40088,"src":"12997:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40037,"nodeType":"UserDefinedTypeName","pathNode":{"id":40036,"name":"slice","nameLocations":["12997:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"12997:5:45"},"referencedDeclaration":39147,"src":"12997:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"},{"constant":false,"id":40041,"mutability":"mutable","name":"needle","nameLocation":"13029:6:45","nodeType":"VariableDeclaration","scope":40088,"src":"13016:19:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40040,"nodeType":"UserDefinedTypeName","pathNode":{"id":40039,"name":"slice","nameLocations":["13016:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"13016:5:45"},"referencedDeclaration":39147,"src":"13016:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"12996:40:45"},"returnParameters":{"id":40046,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40045,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40088,"src":"13060:12:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40044,"nodeType":"UserDefinedTypeName","pathNode":{"id":40043,"name":"slice","nameLocations":["13060:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"13060:5:45"},"referencedDeclaration":39147,"src":"13060:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"13059:14:45"},"scope":40971,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40134,"nodeType":"FunctionDefinition","src":"13892:553:45","nodes":[],"body":{"id":40133,"nodeType":"Block","src":"13979:466:45","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40099,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40091,"src":"13993:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40100,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13998:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"13993:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":40101,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40094,"src":"14005:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40102,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14012:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"14005:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13993:23:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40107,"nodeType":"IfStatement","src":"13989:66:45","trueBody":{"id":40106,"nodeType":"Block","src":"14018:37:45","statements":[{"expression":{"hexValue":"66616c7365","id":40104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14039:5:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":40098,"id":40105,"nodeType":"Return","src":"14032:12:45"}]}},{"assignments":[40109],"declarations":[{"constant":false,"id":40109,"mutability":"mutable","name":"selfptr","nameLocation":"14070:7:45","nodeType":"VariableDeclaration","scope":40133,"src":"14065:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40108,"name":"uint","nodeType":"ElementaryTypeName","src":"14065:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40118,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40110,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40091,"src":"14080:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14085:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"14080:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":40112,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40091,"src":"14092:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40113,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14097:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"14092:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14080:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":40115,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40094,"src":"14104:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40116,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14111:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"14104:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14080:35:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14065:50:45"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40119,"name":"selfptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40109,"src":"14130:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":40120,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40094,"src":"14141:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40121,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14148:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"14141:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14130:22:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40126,"nodeType":"IfStatement","src":"14126:64:45","trueBody":{"id":40125,"nodeType":"Block","src":"14154:36:45","statements":[{"expression":{"hexValue":"74727565","id":40123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14175:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":40098,"id":40124,"nodeType":"Return","src":"14168:11:45"}]}},{"assignments":[40128],"declarations":[{"constant":false,"id":40128,"mutability":"mutable","name":"equal","nameLocation":"14205:5:45","nodeType":"VariableDeclaration","scope":40133,"src":"14200:10:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40127,"name":"bool","nodeType":"ElementaryTypeName","src":"14200:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":40129,"nodeType":"VariableDeclarationStatement","src":"14200:10:45"},{"AST":{"nativeSrc":"14229:187:45","nodeType":"YulBlock","src":"14229:187:45","statements":[{"nativeSrc":"14243:27:45","nodeType":"YulVariableDeclaration","src":"14243:27:45","value":{"arguments":[{"name":"needle","nativeSrc":"14263:6:45","nodeType":"YulIdentifier","src":"14263:6:45"}],"functionName":{"name":"mload","nativeSrc":"14257:5:45","nodeType":"YulIdentifier","src":"14257:5:45"},"nativeSrc":"14257:13:45","nodeType":"YulFunctionCall","src":"14257:13:45"},"variables":[{"name":"length","nativeSrc":"14247:6:45","nodeType":"YulTypedName","src":"14247:6:45","type":""}]},{"nativeSrc":"14283:41:45","nodeType":"YulVariableDeclaration","src":"14283:41:45","value":{"arguments":[{"arguments":[{"name":"needle","nativeSrc":"14310:6:45","nodeType":"YulIdentifier","src":"14310:6:45"},{"kind":"number","nativeSrc":"14318:4:45","nodeType":"YulLiteral","src":"14318:4:45","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14306:3:45","nodeType":"YulIdentifier","src":"14306:3:45"},"nativeSrc":"14306:17:45","nodeType":"YulFunctionCall","src":"14306:17:45"}],"functionName":{"name":"mload","nativeSrc":"14300:5:45","nodeType":"YulIdentifier","src":"14300:5:45"},"nativeSrc":"14300:24:45","nodeType":"YulFunctionCall","src":"14300:24:45"},"variables":[{"name":"needleptr","nativeSrc":"14287:9:45","nodeType":"YulTypedName","src":"14287:9:45","type":""}]},{"nativeSrc":"14337:69:45","nodeType":"YulAssignment","src":"14337:69:45","value":{"arguments":[{"arguments":[{"name":"selfptr","nativeSrc":"14359:7:45","nodeType":"YulIdentifier","src":"14359:7:45"},{"name":"length","nativeSrc":"14368:6:45","nodeType":"YulIdentifier","src":"14368:6:45"}],"functionName":{"name":"keccak256","nativeSrc":"14349:9:45","nodeType":"YulIdentifier","src":"14349:9:45"},"nativeSrc":"14349:26:45","nodeType":"YulFunctionCall","src":"14349:26:45"},{"arguments":[{"name":"needleptr","nativeSrc":"14387:9:45","nodeType":"YulIdentifier","src":"14387:9:45"},{"name":"length","nativeSrc":"14398:6:45","nodeType":"YulIdentifier","src":"14398:6:45"}],"functionName":{"name":"keccak256","nativeSrc":"14377:9:45","nodeType":"YulIdentifier","src":"14377:9:45"},"nativeSrc":"14377:28:45","nodeType":"YulFunctionCall","src":"14377:28:45"}],"functionName":{"name":"eq","nativeSrc":"14346:2:45","nodeType":"YulIdentifier","src":"14346:2:45"},"nativeSrc":"14346:60:45","nodeType":"YulFunctionCall","src":"14346:60:45"},"variableNames":[{"name":"equal","nativeSrc":"14337:5:45","nodeType":"YulIdentifier","src":"14337:5:45"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":40128,"isOffset":false,"isSlot":false,"src":"14337:5:45","valueSize":1},{"declaration":40094,"isOffset":false,"isSlot":false,"src":"14263:6:45","valueSize":1},{"declaration":40094,"isOffset":false,"isSlot":false,"src":"14310:6:45","valueSize":1},{"declaration":40109,"isOffset":false,"isSlot":false,"src":"14359:7:45","valueSize":1}],"id":40130,"nodeType":"InlineAssembly","src":"14220:196:45"},{"expression":{"id":40131,"name":"equal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40128,"src":"14433:5:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":40098,"id":40132,"nodeType":"Return","src":"14426:12:45"}]},"implemented":true,"kind":"function","modifiers":[],"name":"endsWith","nameLocation":"13901:8:45","parameters":{"id":40095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40091,"mutability":"mutable","name":"self","nameLocation":"13923:4:45","nodeType":"VariableDeclaration","scope":40134,"src":"13910:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40090,"nodeType":"UserDefinedTypeName","pathNode":{"id":40089,"name":"slice","nameLocations":["13910:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"13910:5:45"},"referencedDeclaration":39147,"src":"13910:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"},{"constant":false,"id":40094,"mutability":"mutable","name":"needle","nameLocation":"13942:6:45","nodeType":"VariableDeclaration","scope":40134,"src":"13929:19:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40093,"nodeType":"UserDefinedTypeName","pathNode":{"id":40092,"name":"slice","nameLocations":["13929:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"13929:5:45"},"referencedDeclaration":39147,"src":"13929:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"13909:40:45"},"returnParameters":{"id":40098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40097,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40134,"src":"13973:4:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40096,"name":"bool","nodeType":"ElementaryTypeName","src":"13973:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13972:6:45"},"scope":40971,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40190,"nodeType":"FunctionDefinition","src":"14709:626:45","nodes":[],"body":{"id":40189,"nodeType":"Block","src":"14801:534:45","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40146,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40137,"src":"14815:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14820:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"14815:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":40148,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40140,"src":"14827:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40149,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14834:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"14827:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14815:23:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40154,"nodeType":"IfStatement","src":"14811:65:45","trueBody":{"id":40153,"nodeType":"Block","src":"14840:36:45","statements":[{"expression":{"id":40151,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40137,"src":"14861:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"functionReturnParameters":40145,"id":40152,"nodeType":"Return","src":"14854:11:45"}]}},{"assignments":[40156],"declarations":[{"constant":false,"id":40156,"mutability":"mutable","name":"selfptr","nameLocation":"14891:7:45","nodeType":"VariableDeclaration","scope":40189,"src":"14886:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40155,"name":"uint","nodeType":"ElementaryTypeName","src":"14886:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40165,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40157,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40137,"src":"14901:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40158,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14906:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"14901:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":40159,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40137,"src":"14913:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14918:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"14913:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14901:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":40162,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40140,"src":"14925:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40163,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14932:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"14925:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14901:35:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14886:50:45"},{"assignments":[40167],"declarations":[{"constant":false,"id":40167,"mutability":"mutable","name":"equal","nameLocation":"14951:5:45","nodeType":"VariableDeclaration","scope":40189,"src":"14946:10:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40166,"name":"bool","nodeType":"ElementaryTypeName","src":"14946:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":40169,"initialValue":{"hexValue":"74727565","id":40168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14959:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"14946:17:45"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40170,"name":"selfptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40156,"src":"14977:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":40171,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40140,"src":"14988:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14995:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"14988:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14977:22:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40176,"nodeType":"IfStatement","src":"14973:264:45","trueBody":{"id":40175,"nodeType":"Block","src":"15001:236:45","statements":[{"AST":{"nativeSrc":"15024:203:45","nodeType":"YulBlock","src":"15024:203:45","statements":[{"nativeSrc":"15042:27:45","nodeType":"YulVariableDeclaration","src":"15042:27:45","value":{"arguments":[{"name":"needle","nativeSrc":"15062:6:45","nodeType":"YulIdentifier","src":"15062:6:45"}],"functionName":{"name":"mload","nativeSrc":"15056:5:45","nodeType":"YulIdentifier","src":"15056:5:45"},"nativeSrc":"15056:13:45","nodeType":"YulFunctionCall","src":"15056:13:45"},"variables":[{"name":"length","nativeSrc":"15046:6:45","nodeType":"YulTypedName","src":"15046:6:45","type":""}]},{"nativeSrc":"15086:41:45","nodeType":"YulVariableDeclaration","src":"15086:41:45","value":{"arguments":[{"arguments":[{"name":"needle","nativeSrc":"15113:6:45","nodeType":"YulIdentifier","src":"15113:6:45"},{"kind":"number","nativeSrc":"15121:4:45","nodeType":"YulLiteral","src":"15121:4:45","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15109:3:45","nodeType":"YulIdentifier","src":"15109:3:45"},"nativeSrc":"15109:17:45","nodeType":"YulFunctionCall","src":"15109:17:45"}],"functionName":{"name":"mload","nativeSrc":"15103:5:45","nodeType":"YulIdentifier","src":"15103:5:45"},"nativeSrc":"15103:24:45","nodeType":"YulFunctionCall","src":"15103:24:45"},"variables":[{"name":"needleptr","nativeSrc":"15090:9:45","nodeType":"YulTypedName","src":"15090:9:45","type":""}]},{"nativeSrc":"15144:69:45","nodeType":"YulAssignment","src":"15144:69:45","value":{"arguments":[{"arguments":[{"name":"selfptr","nativeSrc":"15166:7:45","nodeType":"YulIdentifier","src":"15166:7:45"},{"name":"length","nativeSrc":"15175:6:45","nodeType":"YulIdentifier","src":"15175:6:45"}],"functionName":{"name":"keccak256","nativeSrc":"15156:9:45","nodeType":"YulIdentifier","src":"15156:9:45"},"nativeSrc":"15156:26:45","nodeType":"YulFunctionCall","src":"15156:26:45"},{"arguments":[{"name":"needleptr","nativeSrc":"15194:9:45","nodeType":"YulIdentifier","src":"15194:9:45"},{"name":"length","nativeSrc":"15205:6:45","nodeType":"YulIdentifier","src":"15205:6:45"}],"functionName":{"name":"keccak256","nativeSrc":"15184:9:45","nodeType":"YulIdentifier","src":"15184:9:45"},"nativeSrc":"15184:28:45","nodeType":"YulFunctionCall","src":"15184:28:45"}],"functionName":{"name":"eq","nativeSrc":"15153:2:45","nodeType":"YulIdentifier","src":"15153:2:45"},"nativeSrc":"15153:60:45","nodeType":"YulFunctionCall","src":"15153:60:45"},"variableNames":[{"name":"equal","nativeSrc":"15144:5:45","nodeType":"YulIdentifier","src":"15144:5:45"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":40167,"isOffset":false,"isSlot":false,"src":"15144:5:45","valueSize":1},{"declaration":40140,"isOffset":false,"isSlot":false,"src":"15062:6:45","valueSize":1},{"declaration":40140,"isOffset":false,"isSlot":false,"src":"15113:6:45","valueSize":1},{"declaration":40156,"isOffset":false,"isSlot":false,"src":"15166:7:45","valueSize":1}],"id":40174,"nodeType":"InlineAssembly","src":"15015:212:45"}]}},{"condition":{"id":40177,"name":"equal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40167,"src":"15251:5:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40186,"nodeType":"IfStatement","src":"15247:60:45","trueBody":{"id":40185,"nodeType":"Block","src":"15258:49:45","statements":[{"expression":{"id":40183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":40178,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40137,"src":"15272:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"15277:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"15272:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"expression":{"id":40181,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40140,"src":"15285:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15292:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"15285:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15272:24:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40184,"nodeType":"ExpressionStatement","src":"15272:24:45"}]}},{"expression":{"id":40187,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40137,"src":"15324:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"functionReturnParameters":40145,"id":40188,"nodeType":"Return","src":"15317:11:45"}]},"implemented":true,"kind":"function","modifiers":[],"name":"until","nameLocation":"14718:5:45","parameters":{"id":40141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40137,"mutability":"mutable","name":"self","nameLocation":"14737:4:45","nodeType":"VariableDeclaration","scope":40190,"src":"14724:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40136,"nodeType":"UserDefinedTypeName","pathNode":{"id":40135,"name":"slice","nameLocations":["14724:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"14724:5:45"},"referencedDeclaration":39147,"src":"14724:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"},{"constant":false,"id":40140,"mutability":"mutable","name":"needle","nameLocation":"14756:6:45","nodeType":"VariableDeclaration","scope":40190,"src":"14743:19:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40139,"nodeType":"UserDefinedTypeName","pathNode":{"id":40138,"name":"slice","nameLocations":["14743:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"14743:5:45"},"referencedDeclaration":39147,"src":"14743:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"14723:40:45"},"returnParameters":{"id":40145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40144,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40190,"src":"14787:12:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40143,"nodeType":"UserDefinedTypeName","pathNode":{"id":40142,"name":"slice","nameLocations":["14787:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"14787:5:45"},"referencedDeclaration":39147,"src":"14787:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"14786:14:45"},"scope":40971,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40320,"nodeType":"FunctionDefinition","src":"15492:1453:45","nodes":[],"body":{"id":40319,"nodeType":"Block","src":"15597:1348:45","nodes":[],"statements":[{"assignments":[40204],"declarations":[{"constant":false,"id":40204,"mutability":"mutable","name":"ptr","nameLocation":"15612:3:45","nodeType":"VariableDeclaration","scope":40319,"src":"15607:8:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40203,"name":"uint","nodeType":"ElementaryTypeName","src":"15607:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40206,"initialValue":{"id":40205,"name":"selfptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40194,"src":"15618:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15607:18:45"},{"assignments":[40208],"declarations":[{"constant":false,"id":40208,"mutability":"mutable","name":"idx","nameLocation":"15640:3:45","nodeType":"VariableDeclaration","scope":40319,"src":"15635:8:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40207,"name":"uint","nodeType":"ElementaryTypeName","src":"15635:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40209,"nodeType":"VariableDeclarationStatement","src":"15635:8:45"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40210,"name":"needlelen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40196,"src":"15658:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":40211,"name":"selflen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40192,"src":"15671:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15658:20:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40314,"nodeType":"IfStatement","src":"15654:1251:45","trueBody":{"id":40313,"nodeType":"Block","src":"15680:1225:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40213,"name":"needlelen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40196,"src":"15698:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"3332","id":40214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15711:2:45","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"15698:15:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":40311,"nodeType":"Block","src":"16429:466:45","statements":[{"assignments":[40280],"declarations":[{"constant":false,"id":40280,"mutability":"mutable","name":"hash","nameLocation":"16504:4:45","nodeType":"VariableDeclaration","scope":40311,"src":"16496:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40279,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16496:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40281,"nodeType":"VariableDeclarationStatement","src":"16496:12:45"},{"AST":{"nativeSrc":"16535:43:45","nodeType":"YulBlock","src":"16535:43:45","statements":[{"nativeSrc":"16537:39:45","nodeType":"YulAssignment","src":"16537:39:45","value":{"arguments":[{"name":"needleptr","nativeSrc":"16555:9:45","nodeType":"YulIdentifier","src":"16555:9:45"},{"name":"needlelen","nativeSrc":"16566:9:45","nodeType":"YulIdentifier","src":"16566:9:45"}],"functionName":{"name":"keccak256","nativeSrc":"16545:9:45","nodeType":"YulIdentifier","src":"16545:9:45"},"nativeSrc":"16545:31:45","nodeType":"YulFunctionCall","src":"16545:31:45"},"variableNames":[{"name":"hash","nativeSrc":"16537:4:45","nodeType":"YulIdentifier","src":"16537:4:45"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":40280,"isOffset":false,"isSlot":false,"src":"16537:4:45","valueSize":1},{"declaration":40196,"isOffset":false,"isSlot":false,"src":"16566:9:45","valueSize":1},{"declaration":40198,"isOffset":false,"isSlot":false,"src":"16555:9:45","valueSize":1}],"id":40282,"nodeType":"InlineAssembly","src":"16526:52:45"},{"body":{"id":40309,"nodeType":"Block","src":"16645:236:45","statements":[{"assignments":[40296],"declarations":[{"constant":false,"id":40296,"mutability":"mutable","name":"testHash","nameLocation":"16675:8:45","nodeType":"VariableDeclaration","scope":40309,"src":"16667:16:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40295,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16667:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40297,"nodeType":"VariableDeclarationStatement","src":"16667:16:45"},{"AST":{"nativeSrc":"16714:41:45","nodeType":"YulBlock","src":"16714:41:45","statements":[{"nativeSrc":"16716:37:45","nodeType":"YulAssignment","src":"16716:37:45","value":{"arguments":[{"name":"ptr","nativeSrc":"16738:3:45","nodeType":"YulIdentifier","src":"16738:3:45"},{"name":"needlelen","nativeSrc":"16743:9:45","nodeType":"YulIdentifier","src":"16743:9:45"}],"functionName":{"name":"keccak256","nativeSrc":"16728:9:45","nodeType":"YulIdentifier","src":"16728:9:45"},"nativeSrc":"16728:25:45","nodeType":"YulFunctionCall","src":"16728:25:45"},"variableNames":[{"name":"testHash","nativeSrc":"16716:8:45","nodeType":"YulIdentifier","src":"16716:8:45"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":40196,"isOffset":false,"isSlot":false,"src":"16743:9:45","valueSize":1},{"declaration":40204,"isOffset":false,"isSlot":false,"src":"16738:3:45","valueSize":1},{"declaration":40296,"isOffset":false,"isSlot":false,"src":"16716:8:45","valueSize":1}],"id":40298,"nodeType":"InlineAssembly","src":"16705:50:45"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":40301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40299,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40280,"src":"16780:4:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":40300,"name":"testHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40296,"src":"16788:8:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16780:16:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40304,"nodeType":"IfStatement","src":"16776:56:45","trueBody":{"expression":{"id":40302,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40204,"src":"16829:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":40202,"id":40303,"nodeType":"Return","src":"16822:10:45"}},{"expression":{"id":40307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":40305,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40204,"src":"16854:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":40306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16861:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"16854:8:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40308,"nodeType":"ExpressionStatement","src":"16854:8:45"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40287,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40208,"src":"16610:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40288,"name":"selflen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40192,"src":"16617:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":40289,"name":"needlelen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40196,"src":"16627:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16617:19:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16610:26:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40310,"initializationExpression":{"expression":{"id":40285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":40283,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40208,"src":"16601:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":40284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16607:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16601:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40286,"nodeType":"ExpressionStatement","src":"16601:7:45"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":40293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"16638:5:45","subExpression":{"id":40292,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40208,"src":"16638:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40294,"nodeType":"ExpressionStatement","src":"16638:5:45"},"nodeType":"ForStatement","src":"16596:285:45"}]},"id":40312,"nodeType":"IfStatement","src":"15694:1201:45","trueBody":{"id":40278,"nodeType":"Block","src":"15715:708:45","statements":[{"assignments":[40217],"declarations":[{"constant":false,"id":40217,"mutability":"mutable","name":"mask","nameLocation":"15741:4:45","nodeType":"VariableDeclaration","scope":40278,"src":"15733:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40216,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15733:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40218,"nodeType":"VariableDeclarationStatement","src":"15733:12:45"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40219,"name":"needlelen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40196,"src":"15767:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":40220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15779:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15767:13:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40242,"nodeType":"IfStatement","src":"15763:110:45","trueBody":{"id":40241,"nodeType":"Block","src":"15782:91:45","statements":[{"expression":{"id":40239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":40222,"name":"mask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40217,"src":"15804:4:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":40237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"15819:34:45","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":40225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15821:1:45","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"38","id":40226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15827:1:45","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":40227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15832:2:45","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":40228,"name":"needlelen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40196,"src":"15837:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15832:14:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":40230,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15831:16:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15827:20:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":40232,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15826:22:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15821:27:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":40234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15851:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"15821:31:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":40236,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15820:33:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":40224,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15811:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":40223,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15811:7:45","typeDescriptions":{}}},"id":40238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15811:43:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15804:50:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":40240,"nodeType":"ExpressionStatement","src":"15804:50:45"}]}},{"assignments":[40244],"declarations":[{"constant":false,"id":40244,"mutability":"mutable","name":"needledata","nameLocation":"15899:10:45","nodeType":"VariableDeclaration","scope":40278,"src":"15891:18:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40243,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15891:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40245,"nodeType":"VariableDeclarationStatement","src":"15891:18:45"},{"AST":{"nativeSrc":"15936:45:45","nodeType":"YulBlock","src":"15936:45:45","statements":[{"nativeSrc":"15938:41:45","nodeType":"YulAssignment","src":"15938:41:45","value":{"arguments":[{"arguments":[{"name":"needleptr","nativeSrc":"15962:9:45","nodeType":"YulIdentifier","src":"15962:9:45"}],"functionName":{"name":"mload","nativeSrc":"15956:5:45","nodeType":"YulIdentifier","src":"15956:5:45"},"nativeSrc":"15956:16:45","nodeType":"YulFunctionCall","src":"15956:16:45"},{"name":"mask","nativeSrc":"15974:4:45","nodeType":"YulIdentifier","src":"15974:4:45"}],"functionName":{"name":"and","nativeSrc":"15952:3:45","nodeType":"YulIdentifier","src":"15952:3:45"},"nativeSrc":"15952:27:45","nodeType":"YulFunctionCall","src":"15952:27:45"},"variableNames":[{"name":"needledata","nativeSrc":"15938:10:45","nodeType":"YulIdentifier","src":"15938:10:45"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":40217,"isOffset":false,"isSlot":false,"src":"15974:4:45","valueSize":1},{"declaration":40244,"isOffset":false,"isSlot":false,"src":"15938:10:45","valueSize":1},{"declaration":40198,"isOffset":false,"isSlot":false,"src":"15962:9:45","valueSize":1}],"id":40246,"nodeType":"InlineAssembly","src":"15927:54:45"},{"assignments":[40248],"declarations":[{"constant":false,"id":40248,"mutability":"mutable","name":"end","nameLocation":"16004:3:45","nodeType":"VariableDeclaration","scope":40278,"src":"15999:8:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40247,"name":"uint","nodeType":"ElementaryTypeName","src":"15999:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40254,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40249,"name":"selfptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40194,"src":"16010:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":40250,"name":"selflen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40192,"src":"16020:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16010:17:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":40252,"name":"needlelen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40196,"src":"16030:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16010:29:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15999:40:45"},{"assignments":[40256],"declarations":[{"constant":false,"id":40256,"mutability":"mutable","name":"ptrdata","nameLocation":"16065:7:45","nodeType":"VariableDeclaration","scope":40278,"src":"16057:15:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40255,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16057:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40257,"nodeType":"VariableDeclarationStatement","src":"16057:15:45"},{"AST":{"nativeSrc":"16099:36:45","nodeType":"YulBlock","src":"16099:36:45","statements":[{"nativeSrc":"16101:32:45","nodeType":"YulAssignment","src":"16101:32:45","value":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"16122:3:45","nodeType":"YulIdentifier","src":"16122:3:45"}],"functionName":{"name":"mload","nativeSrc":"16116:5:45","nodeType":"YulIdentifier","src":"16116:5:45"},"nativeSrc":"16116:10:45","nodeType":"YulFunctionCall","src":"16116:10:45"},{"name":"mask","nativeSrc":"16128:4:45","nodeType":"YulIdentifier","src":"16128:4:45"}],"functionName":{"name":"and","nativeSrc":"16112:3:45","nodeType":"YulIdentifier","src":"16112:3:45"},"nativeSrc":"16112:21:45","nodeType":"YulFunctionCall","src":"16112:21:45"},"variableNames":[{"name":"ptrdata","nativeSrc":"16101:7:45","nodeType":"YulIdentifier","src":"16101:7:45"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":40217,"isOffset":false,"isSlot":false,"src":"16128:4:45","valueSize":1},{"declaration":40204,"isOffset":false,"isSlot":false,"src":"16122:3:45","valueSize":1},{"declaration":40256,"isOffset":false,"isSlot":false,"src":"16101:7:45","valueSize":1}],"id":40258,"nodeType":"InlineAssembly","src":"16090:45:45"},{"body":{"id":40274,"nodeType":"Block","src":"16183:198:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40262,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40204,"src":"16209:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":40263,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40248,"src":"16216:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16209:10:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40269,"nodeType":"IfStatement","src":"16205:64:45","trueBody":{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40265,"name":"selfptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40194,"src":"16252:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":40266,"name":"selflen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40192,"src":"16262:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16252:17:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":40202,"id":40268,"nodeType":"Return","src":"16245:24:45"}},{"expression":{"id":40271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"16291:5:45","subExpression":{"id":40270,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40204,"src":"16291:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40272,"nodeType":"ExpressionStatement","src":"16291:5:45"},{"AST":{"nativeSrc":"16327:36:45","nodeType":"YulBlock","src":"16327:36:45","statements":[{"nativeSrc":"16329:32:45","nodeType":"YulAssignment","src":"16329:32:45","value":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"16350:3:45","nodeType":"YulIdentifier","src":"16350:3:45"}],"functionName":{"name":"mload","nativeSrc":"16344:5:45","nodeType":"YulIdentifier","src":"16344:5:45"},"nativeSrc":"16344:10:45","nodeType":"YulFunctionCall","src":"16344:10:45"},{"name":"mask","nativeSrc":"16356:4:45","nodeType":"YulIdentifier","src":"16356:4:45"}],"functionName":{"name":"and","nativeSrc":"16340:3:45","nodeType":"YulIdentifier","src":"16340:3:45"},"nativeSrc":"16340:21:45","nodeType":"YulFunctionCall","src":"16340:21:45"},"variableNames":[{"name":"ptrdata","nativeSrc":"16329:7:45","nodeType":"YulIdentifier","src":"16329:7:45"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":40217,"isOffset":false,"isSlot":false,"src":"16356:4:45","valueSize":1},{"declaration":40204,"isOffset":false,"isSlot":false,"src":"16350:3:45","valueSize":1},{"declaration":40256,"isOffset":false,"isSlot":false,"src":"16329:7:45","valueSize":1}],"id":40273,"nodeType":"InlineAssembly","src":"16318:45:45"}]},"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":40261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40259,"name":"ptrdata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40256,"src":"16160:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":40260,"name":"needledata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40244,"src":"16171:10:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16160:21:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40275,"nodeType":"WhileStatement","src":"16153:228:45"},{"expression":{"id":40276,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40204,"src":"16405:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":40202,"id":40277,"nodeType":"Return","src":"16398:10:45"}]}}]}},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40315,"name":"selfptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40194,"src":"16921:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":40316,"name":"selflen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40192,"src":"16931:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16921:17:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":40202,"id":40318,"nodeType":"Return","src":"16914:24:45"}]},"implemented":true,"kind":"function","modifiers":[],"name":"findPtr","nameLocation":"15501:7:45","parameters":{"id":40199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40192,"mutability":"mutable","name":"selflen","nameLocation":"15514:7:45","nodeType":"VariableDeclaration","scope":40320,"src":"15509:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40191,"name":"uint","nodeType":"ElementaryTypeName","src":"15509:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40194,"mutability":"mutable","name":"selfptr","nameLocation":"15528:7:45","nodeType":"VariableDeclaration","scope":40320,"src":"15523:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40193,"name":"uint","nodeType":"ElementaryTypeName","src":"15523:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40196,"mutability":"mutable","name":"needlelen","nameLocation":"15542:9:45","nodeType":"VariableDeclaration","scope":40320,"src":"15537:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40195,"name":"uint","nodeType":"ElementaryTypeName","src":"15537:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40198,"mutability":"mutable","name":"needleptr","nameLocation":"15558:9:45","nodeType":"VariableDeclaration","scope":40320,"src":"15553:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40197,"name":"uint","nodeType":"ElementaryTypeName","src":"15553:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15508:60:45"},"returnParameters":{"id":40202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40201,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40320,"src":"15591:4:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40200,"name":"uint","nodeType":"ElementaryTypeName","src":"15591:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15590:6:45"},"scope":40971,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":40446,"nodeType":"FunctionDefinition","src":"17098:1457:45","nodes":[],"body":{"id":40445,"nodeType":"Block","src":"17204:1351:45","nodes":[],"statements":[{"assignments":[40334],"declarations":[{"constant":false,"id":40334,"mutability":"mutable","name":"ptr","nameLocation":"17219:3:45","nodeType":"VariableDeclaration","scope":40445,"src":"17214:8:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40333,"name":"uint","nodeType":"ElementaryTypeName","src":"17214:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40335,"nodeType":"VariableDeclarationStatement","src":"17214:8:45"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40336,"name":"needlelen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40326,"src":"17237:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":40337,"name":"selflen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40322,"src":"17250:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17237:20:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40442,"nodeType":"IfStatement","src":"17233:1292:45","trueBody":{"id":40441,"nodeType":"Block","src":"17259:1266:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40339,"name":"needlelen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40326,"src":"17277:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"3332","id":40340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17290:2:45","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"17277:15:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":40439,"nodeType":"Block","src":"18009:506:45","statements":[{"assignments":[40406],"declarations":[{"constant":false,"id":40406,"mutability":"mutable","name":"hash","nameLocation":"18084:4:45","nodeType":"VariableDeclaration","scope":40439,"src":"18076:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40405,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18076:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40407,"nodeType":"VariableDeclarationStatement","src":"18076:12:45"},{"AST":{"nativeSrc":"18115:43:45","nodeType":"YulBlock","src":"18115:43:45","statements":[{"nativeSrc":"18117:39:45","nodeType":"YulAssignment","src":"18117:39:45","value":{"arguments":[{"name":"needleptr","nativeSrc":"18135:9:45","nodeType":"YulIdentifier","src":"18135:9:45"},{"name":"needlelen","nativeSrc":"18146:9:45","nodeType":"YulIdentifier","src":"18146:9:45"}],"functionName":{"name":"keccak256","nativeSrc":"18125:9:45","nodeType":"YulIdentifier","src":"18125:9:45"},"nativeSrc":"18125:31:45","nodeType":"YulFunctionCall","src":"18125:31:45"},"variableNames":[{"name":"hash","nativeSrc":"18117:4:45","nodeType":"YulIdentifier","src":"18117:4:45"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":40406,"isOffset":false,"isSlot":false,"src":"18117:4:45","valueSize":1},{"declaration":40326,"isOffset":false,"isSlot":false,"src":"18146:9:45","valueSize":1},{"declaration":40328,"isOffset":false,"isSlot":false,"src":"18135:9:45","valueSize":1}],"id":40408,"nodeType":"InlineAssembly","src":"18106:52:45"},{"expression":{"id":40416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":40409,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40334,"src":"18175:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40410,"name":"selfptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40324,"src":"18181:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40411,"name":"selflen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40322,"src":"18192:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":40412,"name":"needlelen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40326,"src":"18202:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18192:19:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":40414,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18191:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18181:31:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18175:37:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40417,"nodeType":"ExpressionStatement","src":"18175:37:45"},{"body":{"id":40437,"nodeType":"Block","src":"18253:248:45","statements":[{"assignments":[40422],"declarations":[{"constant":false,"id":40422,"mutability":"mutable","name":"testHash","nameLocation":"18283:8:45","nodeType":"VariableDeclaration","scope":40437,"src":"18275:16:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40421,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18275:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40423,"nodeType":"VariableDeclarationStatement","src":"18275:16:45"},{"AST":{"nativeSrc":"18322:41:45","nodeType":"YulBlock","src":"18322:41:45","statements":[{"nativeSrc":"18324:37:45","nodeType":"YulAssignment","src":"18324:37:45","value":{"arguments":[{"name":"ptr","nativeSrc":"18346:3:45","nodeType":"YulIdentifier","src":"18346:3:45"},{"name":"needlelen","nativeSrc":"18351:9:45","nodeType":"YulIdentifier","src":"18351:9:45"}],"functionName":{"name":"keccak256","nativeSrc":"18336:9:45","nodeType":"YulIdentifier","src":"18336:9:45"},"nativeSrc":"18336:25:45","nodeType":"YulFunctionCall","src":"18336:25:45"},"variableNames":[{"name":"testHash","nativeSrc":"18324:8:45","nodeType":"YulIdentifier","src":"18324:8:45"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":40326,"isOffset":false,"isSlot":false,"src":"18351:9:45","valueSize":1},{"declaration":40334,"isOffset":false,"isSlot":false,"src":"18346:3:45","valueSize":1},{"declaration":40422,"isOffset":false,"isSlot":false,"src":"18324:8:45","valueSize":1}],"id":40424,"nodeType":"InlineAssembly","src":"18313:50:45"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":40427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40425,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40406,"src":"18388:4:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":40426,"name":"testHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40422,"src":"18396:8:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"18388:16:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40432,"nodeType":"IfStatement","src":"18384:68:45","trueBody":{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40428,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40334,"src":"18437:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":40429,"name":"needlelen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40326,"src":"18443:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18437:15:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":40332,"id":40431,"nodeType":"Return","src":"18430:22:45"}},{"expression":{"id":40435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":40433,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40334,"src":"18474:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":40434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18481:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"18474:8:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40436,"nodeType":"ExpressionStatement","src":"18474:8:45"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40418,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40334,"src":"18237:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":40419,"name":"selfptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40324,"src":"18244:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18237:14:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40438,"nodeType":"WhileStatement","src":"18230:271:45"}]},"id":40440,"nodeType":"IfStatement","src":"17273:1242:45","trueBody":{"id":40404,"nodeType":"Block","src":"17294:709:45","statements":[{"assignments":[40343],"declarations":[{"constant":false,"id":40343,"mutability":"mutable","name":"mask","nameLocation":"17320:4:45","nodeType":"VariableDeclaration","scope":40404,"src":"17312:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40342,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17312:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40344,"nodeType":"VariableDeclarationStatement","src":"17312:12:45"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40345,"name":"needlelen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40326,"src":"17346:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":40346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17358:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17346:13:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40368,"nodeType":"IfStatement","src":"17342:110:45","trueBody":{"id":40367,"nodeType":"Block","src":"17361:91:45","statements":[{"expression":{"id":40365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":40348,"name":"mask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40343,"src":"17383:4:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":40363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"17398:34:45","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":40351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17400:1:45","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"38","id":40352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17406:1:45","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":40353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17411:2:45","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":40354,"name":"needlelen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40326,"src":"17416:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17411:14:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":40356,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17410:16:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17406:20:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":40358,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17405:22:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17400:27:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":40360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17430:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"17400:31:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":40362,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17399:33:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":40350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17390:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":40349,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17390:7:45","typeDescriptions":{}}},"id":40364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17390:43:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"17383:50:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":40366,"nodeType":"ExpressionStatement","src":"17383:50:45"}]}},{"assignments":[40370],"declarations":[{"constant":false,"id":40370,"mutability":"mutable","name":"needledata","nameLocation":"17478:10:45","nodeType":"VariableDeclaration","scope":40404,"src":"17470:18:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40369,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17470:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40371,"nodeType":"VariableDeclarationStatement","src":"17470:18:45"},{"AST":{"nativeSrc":"17515:45:45","nodeType":"YulBlock","src":"17515:45:45","statements":[{"nativeSrc":"17517:41:45","nodeType":"YulAssignment","src":"17517:41:45","value":{"arguments":[{"arguments":[{"name":"needleptr","nativeSrc":"17541:9:45","nodeType":"YulIdentifier","src":"17541:9:45"}],"functionName":{"name":"mload","nativeSrc":"17535:5:45","nodeType":"YulIdentifier","src":"17535:5:45"},"nativeSrc":"17535:16:45","nodeType":"YulFunctionCall","src":"17535:16:45"},{"name":"mask","nativeSrc":"17553:4:45","nodeType":"YulIdentifier","src":"17553:4:45"}],"functionName":{"name":"and","nativeSrc":"17531:3:45","nodeType":"YulIdentifier","src":"17531:3:45"},"nativeSrc":"17531:27:45","nodeType":"YulFunctionCall","src":"17531:27:45"},"variableNames":[{"name":"needledata","nativeSrc":"17517:10:45","nodeType":"YulIdentifier","src":"17517:10:45"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":40343,"isOffset":false,"isSlot":false,"src":"17553:4:45","valueSize":1},{"declaration":40370,"isOffset":false,"isSlot":false,"src":"17517:10:45","valueSize":1},{"declaration":40328,"isOffset":false,"isSlot":false,"src":"17541:9:45","valueSize":1}],"id":40372,"nodeType":"InlineAssembly","src":"17506:54:45"},{"expression":{"id":40379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":40373,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40334,"src":"17578:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40374,"name":"selfptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40324,"src":"17584:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":40375,"name":"selflen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40322,"src":"17594:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17584:17:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":40377,"name":"needlelen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40326,"src":"17604:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17584:29:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17578:35:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40380,"nodeType":"ExpressionStatement","src":"17578:35:45"},{"assignments":[40382],"declarations":[{"constant":false,"id":40382,"mutability":"mutable","name":"ptrdata","nameLocation":"17639:7:45","nodeType":"VariableDeclaration","scope":40404,"src":"17631:15:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40381,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17631:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40383,"nodeType":"VariableDeclarationStatement","src":"17631:15:45"},{"AST":{"nativeSrc":"17673:36:45","nodeType":"YulBlock","src":"17673:36:45","statements":[{"nativeSrc":"17675:32:45","nodeType":"YulAssignment","src":"17675:32:45","value":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"17696:3:45","nodeType":"YulIdentifier","src":"17696:3:45"}],"functionName":{"name":"mload","nativeSrc":"17690:5:45","nodeType":"YulIdentifier","src":"17690:5:45"},"nativeSrc":"17690:10:45","nodeType":"YulFunctionCall","src":"17690:10:45"},{"name":"mask","nativeSrc":"17702:4:45","nodeType":"YulIdentifier","src":"17702:4:45"}],"functionName":{"name":"and","nativeSrc":"17686:3:45","nodeType":"YulIdentifier","src":"17686:3:45"},"nativeSrc":"17686:21:45","nodeType":"YulFunctionCall","src":"17686:21:45"},"variableNames":[{"name":"ptrdata","nativeSrc":"17675:7:45","nodeType":"YulIdentifier","src":"17675:7:45"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":40343,"isOffset":false,"isSlot":false,"src":"17702:4:45","valueSize":1},{"declaration":40334,"isOffset":false,"isSlot":false,"src":"17696:3:45","valueSize":1},{"declaration":40382,"isOffset":false,"isSlot":false,"src":"17675:7:45","valueSize":1}],"id":40384,"nodeType":"InlineAssembly","src":"17664:45:45"},{"body":{"id":40398,"nodeType":"Block","src":"17757:192:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40388,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40334,"src":"17783:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":40389,"name":"selfptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40324,"src":"17790:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17783:14:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40393,"nodeType":"IfStatement","src":"17779:58:45","trueBody":{"expression":{"id":40391,"name":"selfptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40324,"src":"17830:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":40332,"id":40392,"nodeType":"Return","src":"17823:14:45"}},{"expression":{"id":40395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"17859:5:45","subExpression":{"id":40394,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40334,"src":"17859:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40396,"nodeType":"ExpressionStatement","src":"17859:5:45"},{"AST":{"nativeSrc":"17895:36:45","nodeType":"YulBlock","src":"17895:36:45","statements":[{"nativeSrc":"17897:32:45","nodeType":"YulAssignment","src":"17897:32:45","value":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"17918:3:45","nodeType":"YulIdentifier","src":"17918:3:45"}],"functionName":{"name":"mload","nativeSrc":"17912:5:45","nodeType":"YulIdentifier","src":"17912:5:45"},"nativeSrc":"17912:10:45","nodeType":"YulFunctionCall","src":"17912:10:45"},{"name":"mask","nativeSrc":"17924:4:45","nodeType":"YulIdentifier","src":"17924:4:45"}],"functionName":{"name":"and","nativeSrc":"17908:3:45","nodeType":"YulIdentifier","src":"17908:3:45"},"nativeSrc":"17908:21:45","nodeType":"YulFunctionCall","src":"17908:21:45"},"variableNames":[{"name":"ptrdata","nativeSrc":"17897:7:45","nodeType":"YulIdentifier","src":"17897:7:45"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":40343,"isOffset":false,"isSlot":false,"src":"17924:4:45","valueSize":1},{"declaration":40334,"isOffset":false,"isSlot":false,"src":"17918:3:45","valueSize":1},{"declaration":40382,"isOffset":false,"isSlot":false,"src":"17897:7:45","valueSize":1}],"id":40397,"nodeType":"InlineAssembly","src":"17886:45:45"}]},"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":40387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40385,"name":"ptrdata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40382,"src":"17734:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":40386,"name":"needledata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40370,"src":"17745:10:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"17734:21:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40399,"nodeType":"WhileStatement","src":"17727:222:45"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40400,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40334,"src":"17973:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":40401,"name":"needlelen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40326,"src":"17979:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17973:15:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":40332,"id":40403,"nodeType":"Return","src":"17966:22:45"}]}}]}},{"expression":{"id":40443,"name":"selfptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40324,"src":"18541:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":40332,"id":40444,"nodeType":"Return","src":"18534:14:45"}]},"implemented":true,"kind":"function","modifiers":[],"name":"rfindPtr","nameLocation":"17107:8:45","parameters":{"id":40329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40322,"mutability":"mutable","name":"selflen","nameLocation":"17121:7:45","nodeType":"VariableDeclaration","scope":40446,"src":"17116:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40321,"name":"uint","nodeType":"ElementaryTypeName","src":"17116:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40324,"mutability":"mutable","name":"selfptr","nameLocation":"17135:7:45","nodeType":"VariableDeclaration","scope":40446,"src":"17130:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40323,"name":"uint","nodeType":"ElementaryTypeName","src":"17130:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40326,"mutability":"mutable","name":"needlelen","nameLocation":"17149:9:45","nodeType":"VariableDeclaration","scope":40446,"src":"17144:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40325,"name":"uint","nodeType":"ElementaryTypeName","src":"17144:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40328,"mutability":"mutable","name":"needleptr","nameLocation":"17165:9:45","nodeType":"VariableDeclaration","scope":40446,"src":"17160:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40327,"name":"uint","nodeType":"ElementaryTypeName","src":"17160:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17115:60:45"},"returnParameters":{"id":40332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40331,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40446,"src":"17198:4:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40330,"name":"uint","nodeType":"ElementaryTypeName","src":"17198:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17197:6:45"},"scope":40971,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":40489,"nodeType":"FunctionDefinition","src":"18891:258:45","nodes":[],"body":{"id":40488,"nodeType":"Block","src":"18982:167:45","nodes":[],"statements":[{"assignments":[40459],"declarations":[{"constant":false,"id":40459,"mutability":"mutable","name":"ptr","nameLocation":"18997:3:45","nodeType":"VariableDeclaration","scope":40488,"src":"18992:8:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40458,"name":"uint","nodeType":"ElementaryTypeName","src":"18992:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40470,"initialValue":{"arguments":[{"expression":{"id":40461,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40449,"src":"19011:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40462,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19016:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"19011:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":40463,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40449,"src":"19022:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40464,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19027:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"19022:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":40465,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40452,"src":"19033:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19040:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"19033:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":40467,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40452,"src":"19046:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19053:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"19046:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":40460,"name":"findPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40320,"src":"19003:7:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256) pure returns (uint256)"}},"id":40469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19003:55:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18992:66:45"},{"expression":{"id":40478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":40471,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40449,"src":"19068:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"19073:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"19068:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40474,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40459,"src":"19081:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":40475,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40449,"src":"19087:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40476,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19092:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"19087:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19081:15:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19068:28:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40479,"nodeType":"ExpressionStatement","src":"19068:28:45"},{"expression":{"id":40484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":40480,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40449,"src":"19106:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"19111:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"19106:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":40483,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40459,"src":"19118:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19106:15:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40485,"nodeType":"ExpressionStatement","src":"19106:15:45"},{"expression":{"id":40486,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40449,"src":"19138:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"functionReturnParameters":40457,"id":40487,"nodeType":"Return","src":"19131:11:45"}]},"implemented":true,"kind":"function","modifiers":[],"name":"find","nameLocation":"18900:4:45","parameters":{"id":40453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40449,"mutability":"mutable","name":"self","nameLocation":"18918:4:45","nodeType":"VariableDeclaration","scope":40489,"src":"18905:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40448,"nodeType":"UserDefinedTypeName","pathNode":{"id":40447,"name":"slice","nameLocations":["18905:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"18905:5:45"},"referencedDeclaration":39147,"src":"18905:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"},{"constant":false,"id":40452,"mutability":"mutable","name":"needle","nameLocation":"18937:6:45","nodeType":"VariableDeclaration","scope":40489,"src":"18924:19:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40451,"nodeType":"UserDefinedTypeName","pathNode":{"id":40450,"name":"slice","nameLocations":["18924:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"18924:5:45"},"referencedDeclaration":39147,"src":"18924:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"18904:40:45"},"returnParameters":{"id":40457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40456,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40489,"src":"18968:12:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40455,"nodeType":"UserDefinedTypeName","pathNode":{"id":40454,"name":"slice","nameLocations":["18968:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"18968:5:45"},"referencedDeclaration":39147,"src":"18968:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"18967:14:45"},"scope":40971,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40526,"nodeType":"FunctionDefinition","src":"19508:234:45","nodes":[],"body":{"id":40525,"nodeType":"Block","src":"19600:142:45","nodes":[],"statements":[{"assignments":[40502],"declarations":[{"constant":false,"id":40502,"mutability":"mutable","name":"ptr","nameLocation":"19615:3:45","nodeType":"VariableDeclaration","scope":40525,"src":"19610:8:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40501,"name":"uint","nodeType":"ElementaryTypeName","src":"19610:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40513,"initialValue":{"arguments":[{"expression":{"id":40504,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40492,"src":"19630:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40505,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19635:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"19630:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":40506,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40492,"src":"19641:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40507,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19646:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"19641:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":40508,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40495,"src":"19652:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40509,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19659:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"19652:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":40510,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40495,"src":"19665:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40511,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19672:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"19665:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":40503,"name":"rfindPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40446,"src":"19621:8:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256) pure returns (uint256)"}},"id":40512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19621:56:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19610:67:45"},{"expression":{"id":40521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":40514,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40492,"src":"19687:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40516,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"19692:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"19687:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40517,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40502,"src":"19699:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":40518,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40492,"src":"19705:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40519,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19710:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"19705:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19699:15:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19687:27:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40522,"nodeType":"ExpressionStatement","src":"19687:27:45"},{"expression":{"id":40523,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40492,"src":"19731:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"functionReturnParameters":40500,"id":40524,"nodeType":"Return","src":"19724:11:45"}]},"implemented":true,"kind":"function","modifiers":[],"name":"rfind","nameLocation":"19517:5:45","parameters":{"id":40496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40492,"mutability":"mutable","name":"self","nameLocation":"19536:4:45","nodeType":"VariableDeclaration","scope":40526,"src":"19523:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40491,"nodeType":"UserDefinedTypeName","pathNode":{"id":40490,"name":"slice","nameLocations":["19523:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"19523:5:45"},"referencedDeclaration":39147,"src":"19523:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"},{"constant":false,"id":40495,"mutability":"mutable","name":"needle","nameLocation":"19555:6:45","nodeType":"VariableDeclaration","scope":40526,"src":"19542:19:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40494,"nodeType":"UserDefinedTypeName","pathNode":{"id":40493,"name":"slice","nameLocations":["19542:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"19542:5:45"},"referencedDeclaration":39147,"src":"19542:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"19522:40:45"},"returnParameters":{"id":40500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40499,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40526,"src":"19586:12:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40498,"nodeType":"UserDefinedTypeName","pathNode":{"id":40497,"name":"slice","nameLocations":["19586:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"19586:5:45"},"referencedDeclaration":39147,"src":"19586:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"19585:14:45"},"scope":40971,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40608,"nodeType":"FunctionDefinition","src":"20248:504:45","nodes":[],"body":{"id":40607,"nodeType":"Block","src":"20360:392:45","nodes":[],"statements":[{"assignments":[40542],"declarations":[{"constant":false,"id":40542,"mutability":"mutable","name":"ptr","nameLocation":"20375:3:45","nodeType":"VariableDeclaration","scope":40607,"src":"20370:8:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40541,"name":"uint","nodeType":"ElementaryTypeName","src":"20370:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40553,"initialValue":{"arguments":[{"expression":{"id":40544,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40529,"src":"20389:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40545,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20394:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"20389:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":40546,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40529,"src":"20400:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20405:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"20400:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":40548,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40532,"src":"20411:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40549,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20418:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"20411:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":40550,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40532,"src":"20424:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40551,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20431:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"20424:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":40543,"name":"findPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40320,"src":"20381:7:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256) pure returns (uint256)"}},"id":40552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20381:55:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20370:66:45"},{"expression":{"id":40559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":40554,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40535,"src":"20446:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40556,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"20452:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"20446:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":40557,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40529,"src":"20459:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40558,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20464:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"20459:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20446:22:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40560,"nodeType":"ExpressionStatement","src":"20446:22:45"},{"expression":{"id":40568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":40561,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40535,"src":"20478:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40563,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"20484:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"20478:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40564,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40542,"src":"20491:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":40565,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40529,"src":"20497:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40566,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20502:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"20497:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20491:15:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20478:28:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40569,"nodeType":"ExpressionStatement","src":"20478:28:45"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40570,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40542,"src":"20520:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40571,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40529,"src":"20527:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40572,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20532:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"20527:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":40573,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40529,"src":"20539:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40574,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20544:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"20539:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20527:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20520:28:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":40603,"nodeType":"Block","src":"20619:105:45","statements":[{"expression":{"id":40592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":40584,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40529,"src":"20633:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40586,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"20638:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"20633:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40587,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40535,"src":"20646:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40588,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20652:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"20646:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":40589,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40532,"src":"20659:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40590,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20666:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"20659:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20646:24:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20633:37:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40593,"nodeType":"ExpressionStatement","src":"20633:37:45"},{"expression":{"id":40601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":40594,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40529,"src":"20684:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40596,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"20689:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"20684:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40597,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40542,"src":"20696:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":40598,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40532,"src":"20702:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40599,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20709:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"20702:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20696:17:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20684:29:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40602,"nodeType":"ExpressionStatement","src":"20684:29:45"}]},"id":40604,"nodeType":"IfStatement","src":"20516:208:45","trueBody":{"id":40583,"nodeType":"Block","src":"20550:63:45","statements":[{"expression":{"id":40581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":40577,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40529,"src":"20589:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40579,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"20594:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"20589:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":40580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20601:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20589:13:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40582,"nodeType":"ExpressionStatement","src":"20589:13:45"}]}},{"expression":{"id":40605,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40535,"src":"20740:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"functionReturnParameters":40540,"id":40606,"nodeType":"Return","src":"20733:12:45"}]},"implemented":true,"kind":"function","modifiers":[],"name":"split","nameLocation":"20257:5:45","parameters":{"id":40536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40529,"mutability":"mutable","name":"self","nameLocation":"20276:4:45","nodeType":"VariableDeclaration","scope":40608,"src":"20263:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40528,"nodeType":"UserDefinedTypeName","pathNode":{"id":40527,"name":"slice","nameLocations":["20263:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"20263:5:45"},"referencedDeclaration":39147,"src":"20263:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"},{"constant":false,"id":40532,"mutability":"mutable","name":"needle","nameLocation":"20295:6:45","nodeType":"VariableDeclaration","scope":40608,"src":"20282:19:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40531,"nodeType":"UserDefinedTypeName","pathNode":{"id":40530,"name":"slice","nameLocations":["20282:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"20282:5:45"},"referencedDeclaration":39147,"src":"20282:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"},{"constant":false,"id":40535,"mutability":"mutable","name":"token","nameLocation":"20316:5:45","nodeType":"VariableDeclaration","scope":40608,"src":"20303:18:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40534,"nodeType":"UserDefinedTypeName","pathNode":{"id":40533,"name":"slice","nameLocations":["20303:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"20303:5:45"},"referencedDeclaration":39147,"src":"20303:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"20262:60:45"},"returnParameters":{"id":40540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40539,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40608,"src":"20346:12:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40538,"nodeType":"UserDefinedTypeName","pathNode":{"id":40537,"name":"slice","nameLocations":["20346:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"20346:5:45"},"referencedDeclaration":39147,"src":"20346:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"20345:14:45"},"scope":40971,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40627,"nodeType":"FunctionDefinition","src":"21223:141:45","nodes":[],"body":{"id":40626,"nodeType":"Block","src":"21321:43:45","nodes":[],"statements":[{"expression":{"arguments":[{"id":40621,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40611,"src":"21337:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},{"id":40622,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40614,"src":"21343:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},{"id":40623,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40618,"src":"21351:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}],"id":40620,"name":"split","nodeType":"Identifier","overloadedDeclarations":[40608,40627],"referencedDeclaration":40608,"src":"21331:5:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$39147_memory_ptr_$_t_struct$_slice_$39147_memory_ptr_$_t_struct$_slice_$39147_memory_ptr_$returns$_t_struct$_slice_$39147_memory_ptr_$","typeString":"function (struct strings.slice memory,struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)"}},"id":40624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21331:26:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40625,"nodeType":"ExpressionStatement","src":"21331:26:45"}]},"implemented":true,"kind":"function","modifiers":[],"name":"split","nameLocation":"21232:5:45","parameters":{"id":40615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40611,"mutability":"mutable","name":"self","nameLocation":"21251:4:45","nodeType":"VariableDeclaration","scope":40627,"src":"21238:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40610,"nodeType":"UserDefinedTypeName","pathNode":{"id":40609,"name":"slice","nameLocations":["21238:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"21238:5:45"},"referencedDeclaration":39147,"src":"21238:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"},{"constant":false,"id":40614,"mutability":"mutable","name":"needle","nameLocation":"21270:6:45","nodeType":"VariableDeclaration","scope":40627,"src":"21257:19:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40613,"nodeType":"UserDefinedTypeName","pathNode":{"id":40612,"name":"slice","nameLocations":["21257:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"21257:5:45"},"referencedDeclaration":39147,"src":"21257:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"21237:40:45"},"returnParameters":{"id":40619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40618,"mutability":"mutable","name":"token","nameLocation":"21314:5:45","nodeType":"VariableDeclaration","scope":40627,"src":"21301:18:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40617,"nodeType":"UserDefinedTypeName","pathNode":{"id":40616,"name":"slice","nameLocations":["21301:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"21301:5:45"},"referencedDeclaration":39147,"src":"21301:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"21300:20:45"},"scope":40971,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40700,"nodeType":"FunctionDefinition","src":"21869:459:45","nodes":[],"body":{"id":40699,"nodeType":"Block","src":"21982:346:45","nodes":[],"statements":[{"assignments":[40643],"declarations":[{"constant":false,"id":40643,"mutability":"mutable","name":"ptr","nameLocation":"21997:3:45","nodeType":"VariableDeclaration","scope":40699,"src":"21992:8:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40642,"name":"uint","nodeType":"ElementaryTypeName","src":"21992:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40654,"initialValue":{"arguments":[{"expression":{"id":40645,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40630,"src":"22012:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22017:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"22012:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":40647,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40630,"src":"22023:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40648,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22028:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"22023:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":40649,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40633,"src":"22034:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40650,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22041:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"22034:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":40651,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40633,"src":"22047:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40652,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22054:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"22047:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":40644,"name":"rfindPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40446,"src":"22003:8:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256) pure returns (uint256)"}},"id":40653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22003:56:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21992:67:45"},{"expression":{"id":40659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":40655,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40636,"src":"22069:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40657,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"22075:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"22069:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":40658,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40643,"src":"22082:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22069:16:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40660,"nodeType":"ExpressionStatement","src":"22069:16:45"},{"expression":{"id":40672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":40661,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40636,"src":"22095:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40663,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"22101:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"22095:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40664,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40630,"src":"22108:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40665,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22113:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"22108:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40666,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40643,"src":"22121:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":40667,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40630,"src":"22127:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22132:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"22127:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22121:15:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":40670,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"22120:17:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22108:29:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22095:42:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40673,"nodeType":"ExpressionStatement","src":"22095:42:45"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40674,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40643,"src":"22151:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":40675,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40630,"src":"22158:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22163:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"22158:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22151:16:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":40695,"nodeType":"Block","src":"22238:62:45","statements":[{"expression":{"id":40693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":40685,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40630,"src":"22252:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"22257:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"22252:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40688,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40636,"src":"22265:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40689,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22271:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"22265:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":40690,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40633,"src":"22278:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22285:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"22278:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22265:24:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22252:37:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40694,"nodeType":"ExpressionStatement","src":"22252:37:45"}]},"id":40696,"nodeType":"IfStatement","src":"22147:153:45","trueBody":{"id":40684,"nodeType":"Block","src":"22169:63:45","statements":[{"expression":{"id":40682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":40678,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40630,"src":"22208:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"22213:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"22208:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":40681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22220:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22208:13:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40683,"nodeType":"ExpressionStatement","src":"22208:13:45"}]}},{"expression":{"id":40697,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40636,"src":"22316:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"functionReturnParameters":40641,"id":40698,"nodeType":"Return","src":"22309:12:45"}]},"implemented":true,"kind":"function","modifiers":[],"name":"rsplit","nameLocation":"21878:6:45","parameters":{"id":40637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40630,"mutability":"mutable","name":"self","nameLocation":"21898:4:45","nodeType":"VariableDeclaration","scope":40700,"src":"21885:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40629,"nodeType":"UserDefinedTypeName","pathNode":{"id":40628,"name":"slice","nameLocations":["21885:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"21885:5:45"},"referencedDeclaration":39147,"src":"21885:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"},{"constant":false,"id":40633,"mutability":"mutable","name":"needle","nameLocation":"21917:6:45","nodeType":"VariableDeclaration","scope":40700,"src":"21904:19:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40632,"nodeType":"UserDefinedTypeName","pathNode":{"id":40631,"name":"slice","nameLocations":["21904:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"21904:5:45"},"referencedDeclaration":39147,"src":"21904:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"},{"constant":false,"id":40636,"mutability":"mutable","name":"token","nameLocation":"21938:5:45","nodeType":"VariableDeclaration","scope":40700,"src":"21925:18:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40635,"nodeType":"UserDefinedTypeName","pathNode":{"id":40634,"name":"slice","nameLocations":["21925:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"21925:5:45"},"referencedDeclaration":39147,"src":"21925:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"21884:60:45"},"returnParameters":{"id":40641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40640,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40700,"src":"21968:12:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40639,"nodeType":"UserDefinedTypeName","pathNode":{"id":40638,"name":"slice","nameLocations":["21968:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"21968:5:45"},"referencedDeclaration":39147,"src":"21968:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"21967:14:45"},"scope":40971,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40719,"nodeType":"FunctionDefinition","src":"22797:143:45","nodes":[],"body":{"id":40718,"nodeType":"Block","src":"22896:44:45","nodes":[],"statements":[{"expression":{"arguments":[{"id":40713,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40703,"src":"22913:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},{"id":40714,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40706,"src":"22919:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},{"id":40715,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40710,"src":"22927:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"},{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}],"id":40712,"name":"rsplit","nodeType":"Identifier","overloadedDeclarations":[40700,40719],"referencedDeclaration":40700,"src":"22906:6:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_slice_$39147_memory_ptr_$_t_struct$_slice_$39147_memory_ptr_$_t_struct$_slice_$39147_memory_ptr_$returns$_t_struct$_slice_$39147_memory_ptr_$","typeString":"function (struct strings.slice memory,struct strings.slice memory,struct strings.slice memory) pure returns (struct strings.slice memory)"}},"id":40716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22906:27:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40717,"nodeType":"ExpressionStatement","src":"22906:27:45"}]},"implemented":true,"kind":"function","modifiers":[],"name":"rsplit","nameLocation":"22806:6:45","parameters":{"id":40707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40703,"mutability":"mutable","name":"self","nameLocation":"22826:4:45","nodeType":"VariableDeclaration","scope":40719,"src":"22813:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40702,"nodeType":"UserDefinedTypeName","pathNode":{"id":40701,"name":"slice","nameLocations":["22813:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"22813:5:45"},"referencedDeclaration":39147,"src":"22813:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"},{"constant":false,"id":40706,"mutability":"mutable","name":"needle","nameLocation":"22845:6:45","nodeType":"VariableDeclaration","scope":40719,"src":"22832:19:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40705,"nodeType":"UserDefinedTypeName","pathNode":{"id":40704,"name":"slice","nameLocations":["22832:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"22832:5:45"},"referencedDeclaration":39147,"src":"22832:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"22812:40:45"},"returnParameters":{"id":40711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40710,"mutability":"mutable","name":"token","nameLocation":"22889:5:45","nodeType":"VariableDeclaration","scope":40719,"src":"22876:18:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40709,"nodeType":"UserDefinedTypeName","pathNode":{"id":40708,"name":"slice","nameLocations":["22876:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"22876:5:45"},"referencedDeclaration":39147,"src":"22876:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"22875:20:45"},"scope":40971,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40780,"nodeType":"FunctionDefinition","src":"23209:364:45","nodes":[],"body":{"id":40779,"nodeType":"Block","src":"23297:276:45","nodes":[],"statements":[{"assignments":[40731],"declarations":[{"constant":false,"id":40731,"mutability":"mutable","name":"ptr","nameLocation":"23312:3:45","nodeType":"VariableDeclaration","scope":40779,"src":"23307:8:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40730,"name":"uint","nodeType":"ElementaryTypeName","src":"23307:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40745,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":40733,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40722,"src":"23326:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23331:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"23326:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":40735,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40722,"src":"23337:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40736,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23342:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"23337:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":40737,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40725,"src":"23348:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40738,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23355:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"23348:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":40739,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40725,"src":"23361:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40740,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23368:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"23361:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":40732,"name":"findPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40320,"src":"23318:7:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256) pure returns (uint256)"}},"id":40741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23318:55:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":40742,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40725,"src":"23376:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40743,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23383:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"23376:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23318:69:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23307:80:45"},{"body":{"id":40777,"nodeType":"Block","src":"23434:133:45","statements":[{"expression":{"id":40754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"23448:5:45","subExpression":{"id":40753,"name":"cnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40728,"src":"23448:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40755,"nodeType":"ExpressionStatement","src":"23448:5:45"},{"expression":{"id":40775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":40756,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40731,"src":"23467:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40758,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40722,"src":"23481:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23486:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"23481:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40760,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40731,"src":"23494:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":40761,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40722,"src":"23500:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40762,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23505:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"23500:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23494:15:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":40764,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23493:17:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23481:29:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":40766,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40731,"src":"23512:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":40767,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40725,"src":"23517:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40768,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23524:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"23517:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":40769,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40725,"src":"23530:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40770,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23537:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"23530:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":40757,"name":"findPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40320,"src":"23473:7:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256) pure returns (uint256)"}},"id":40771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23473:69:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":40772,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40725,"src":"23545:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40773,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23552:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"23545:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23473:83:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23467:89:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40776,"nodeType":"ExpressionStatement","src":"23467:89:45"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40746,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40731,"src":"23404:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40747,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40722,"src":"23411:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40748,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23416:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"23411:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":40749,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40722,"src":"23423:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40750,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23428:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"23423:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23411:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23404:28:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40778,"nodeType":"WhileStatement","src":"23397:170:45"}]},"implemented":true,"kind":"function","modifiers":[],"name":"count","nameLocation":"23218:5:45","parameters":{"id":40726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40722,"mutability":"mutable","name":"self","nameLocation":"23237:4:45","nodeType":"VariableDeclaration","scope":40780,"src":"23224:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40721,"nodeType":"UserDefinedTypeName","pathNode":{"id":40720,"name":"slice","nameLocations":["23224:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"23224:5:45"},"referencedDeclaration":39147,"src":"23224:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"},{"constant":false,"id":40725,"mutability":"mutable","name":"needle","nameLocation":"23256:6:45","nodeType":"VariableDeclaration","scope":40780,"src":"23243:19:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40724,"nodeType":"UserDefinedTypeName","pathNode":{"id":40723,"name":"slice","nameLocations":["23243:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"23243:5:45"},"referencedDeclaration":39147,"src":"23243:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"23223:40:45"},"returnParameters":{"id":40729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40728,"mutability":"mutable","name":"cnt","nameLocation":"23292:3:45","nodeType":"VariableDeclaration","scope":40780,"src":"23287:8:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40727,"name":"uint","nodeType":"ElementaryTypeName","src":"23287:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23286:10:45"},"scope":40971,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40806,"nodeType":"FunctionDefinition","src":"23812:180:45","nodes":[],"body":{"id":40805,"nodeType":"Block","src":"23899:93:45","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":40792,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40783,"src":"23925:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40793,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23930:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"23925:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":40794,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40783,"src":"23936:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40795,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23941:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"23936:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":40796,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40786,"src":"23947:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23954:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"23947:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":40798,"name":"needle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40786,"src":"23960:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40799,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23967:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"23960:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":40791,"name":"rfindPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40446,"src":"23916:8:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256) pure returns (uint256)"}},"id":40800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23916:56:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":40801,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40783,"src":"23976:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40802,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23981:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"23976:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23916:69:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":40790,"id":40804,"nodeType":"Return","src":"23909:76:45"}]},"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"23821:8:45","parameters":{"id":40787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40783,"mutability":"mutable","name":"self","nameLocation":"23843:4:45","nodeType":"VariableDeclaration","scope":40806,"src":"23830:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40782,"nodeType":"UserDefinedTypeName","pathNode":{"id":40781,"name":"slice","nameLocations":["23830:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"23830:5:45"},"referencedDeclaration":39147,"src":"23830:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"},{"constant":false,"id":40786,"mutability":"mutable","name":"needle","nameLocation":"23862:6:45","nodeType":"VariableDeclaration","scope":40806,"src":"23849:19:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40785,"nodeType":"UserDefinedTypeName","pathNode":{"id":40784,"name":"slice","nameLocations":["23849:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"23849:5:45"},"referencedDeclaration":39147,"src":"23849:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"23829:40:45"},"returnParameters":{"id":40790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40789,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40806,"src":"23893:4:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40788,"name":"bool","nodeType":"ElementaryTypeName","src":"23893:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"23892:6:45"},"scope":40971,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40854,"nodeType":"FunctionDefinition","src":"24279:355:45","nodes":[],"body":{"id":40853,"nodeType":"Block","src":"24372:262:45","nodes":[],"statements":[{"assignments":[40818],"declarations":[{"constant":false,"id":40818,"mutability":"mutable","name":"ret","nameLocation":"24396:3:45","nodeType":"VariableDeclaration","scope":40853,"src":"24382:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":40817,"name":"string","nodeType":"ElementaryTypeName","src":"24382:6:45","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":40827,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40821,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40809,"src":"24413:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24418:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"24413:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":40823,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40812,"src":"24425:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24431:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"24425:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24413:22:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":40820,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24402:10:45","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":40819,"name":"string","nodeType":"ElementaryTypeName","src":"24406:6:45","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":40826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24402:34:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"24382:54:45"},{"assignments":[40829],"declarations":[{"constant":false,"id":40829,"mutability":"mutable","name":"retptr","nameLocation":"24451:6:45","nodeType":"VariableDeclaration","scope":40853,"src":"24446:11:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40828,"name":"uint","nodeType":"ElementaryTypeName","src":"24446:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40830,"nodeType":"VariableDeclarationStatement","src":"24446:11:45"},{"AST":{"nativeSrc":"24476:26:45","nodeType":"YulBlock","src":"24476:26:45","statements":[{"nativeSrc":"24478:22:45","nodeType":"YulAssignment","src":"24478:22:45","value":{"arguments":[{"name":"ret","nativeSrc":"24492:3:45","nodeType":"YulIdentifier","src":"24492:3:45"},{"kind":"number","nativeSrc":"24497:2:45","nodeType":"YulLiteral","src":"24497:2:45","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24488:3:45","nodeType":"YulIdentifier","src":"24488:3:45"},"nativeSrc":"24488:12:45","nodeType":"YulFunctionCall","src":"24488:12:45"},"variableNames":[{"name":"retptr","nativeSrc":"24478:6:45","nodeType":"YulIdentifier","src":"24478:6:45"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":40818,"isOffset":false,"isSlot":false,"src":"24492:3:45","valueSize":1},{"declaration":40829,"isOffset":false,"isSlot":false,"src":"24478:6:45","valueSize":1}],"id":40831,"nodeType":"InlineAssembly","src":"24467:35:45"},{"expression":{"arguments":[{"id":40833,"name":"retptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40829,"src":"24518:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":40834,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40809,"src":"24526:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40835,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24531:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"24526:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":40836,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40809,"src":"24537:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40837,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24542:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"24537:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":40832,"name":"memcpy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39200,"src":"24511:6:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure"}},"id":40838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24511:36:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40839,"nodeType":"ExpressionStatement","src":"24511:36:45"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40841,"name":"retptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40829,"src":"24564:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":40842,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40809,"src":"24573:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40843,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24578:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"24573:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24564:18:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":40845,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40812,"src":"24584:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40846,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24590:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"24584:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":40847,"name":"other","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40812,"src":"24596:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24602:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"24596:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":40840,"name":"memcpy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39200,"src":"24557:6:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure"}},"id":40849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24557:50:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40850,"nodeType":"ExpressionStatement","src":"24557:50:45"},{"expression":{"id":40851,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40818,"src":"24624:3:45","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":40816,"id":40852,"nodeType":"Return","src":"24617:10:45"}]},"implemented":true,"kind":"function","modifiers":[],"name":"concat","nameLocation":"24288:6:45","parameters":{"id":40813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40809,"mutability":"mutable","name":"self","nameLocation":"24308:4:45","nodeType":"VariableDeclaration","scope":40854,"src":"24295:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40808,"nodeType":"UserDefinedTypeName","pathNode":{"id":40807,"name":"slice","nameLocations":["24295:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"24295:5:45"},"referencedDeclaration":39147,"src":"24295:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"},{"constant":false,"id":40812,"mutability":"mutable","name":"other","nameLocation":"24327:5:45","nodeType":"VariableDeclaration","scope":40854,"src":"24314:18:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40811,"nodeType":"UserDefinedTypeName","pathNode":{"id":40810,"name":"slice","nameLocations":["24314:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"24314:5:45"},"referencedDeclaration":39147,"src":"24314:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"src":"24294:39:45"},"returnParameters":{"id":40816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40815,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40854,"src":"24357:13:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":40814,"name":"string","nodeType":"ElementaryTypeName","src":"24357:6:45","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"24356:15:45"},"scope":40971,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40970,"nodeType":"FunctionDefinition","src":"24970:728:45","nodes":[],"body":{"id":40969,"nodeType":"Block","src":"25063:635:45","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40866,"name":"parts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40861,"src":"25077:5:45","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_slice_$39147_memory_ptr_$dyn_memory_ptr","typeString":"struct strings.slice memory[] memory"}},"id":40867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25083:6:45","memberName":"length","nodeType":"MemberAccess","src":"25077:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":40868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25093:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"25077:17:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40872,"nodeType":"IfStatement","src":"25073:44:45","trueBody":{"expression":{"hexValue":"","id":40870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25115:2:45","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":40865,"id":40871,"nodeType":"Return","src":"25108:9:45"}},{"assignments":[40874],"declarations":[{"constant":false,"id":40874,"mutability":"mutable","name":"length","nameLocation":"25133:6:45","nodeType":"VariableDeclaration","scope":40969,"src":"25128:11:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40873,"name":"uint","nodeType":"ElementaryTypeName","src":"25128:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40883,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40875,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40857,"src":"25142:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25147:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"25142:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40877,"name":"parts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40861,"src":"25155:5:45","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_slice_$39147_memory_ptr_$dyn_memory_ptr","typeString":"struct strings.slice memory[] memory"}},"id":40878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25161:6:45","memberName":"length","nodeType":"MemberAccess","src":"25155:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":40879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25170:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25155:16:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":40881,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25154:18:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25142:30:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25128:44:45"},{"body":{"expression":{"id":40900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":40895,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40874,"src":"25233:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"baseExpression":{"id":40896,"name":"parts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40861,"src":"25243:5:45","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_slice_$39147_memory_ptr_$dyn_memory_ptr","typeString":"struct strings.slice memory[] memory"}},"id":40898,"indexExpression":{"id":40897,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40885,"src":"25249:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25243:8:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40899,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25252:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"25243:13:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25233:23:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40901,"nodeType":"ExpressionStatement","src":"25233:23:45"},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40888,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40885,"src":"25198:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":40889,"name":"parts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40861,"src":"25202:5:45","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_slice_$39147_memory_ptr_$dyn_memory_ptr","typeString":"struct strings.slice memory[] memory"}},"id":40890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25208:6:45","memberName":"length","nodeType":"MemberAccess","src":"25202:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25198:16:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40902,"initializationExpression":{"assignments":[40885],"declarations":[{"constant":false,"id":40885,"mutability":"mutable","name":"i","nameLocation":"25191:1:45","nodeType":"VariableDeclaration","scope":40902,"src":"25186:6:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40884,"name":"uint","nodeType":"ElementaryTypeName","src":"25186:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40887,"initialValue":{"hexValue":"30","id":40886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25195:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"25186:10:45"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":40893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"25216:3:45","subExpression":{"id":40892,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40885,"src":"25216:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40894,"nodeType":"ExpressionStatement","src":"25216:3:45"},"nodeType":"ForStatement","src":"25182:74:45"},{"assignments":[40904],"declarations":[{"constant":false,"id":40904,"mutability":"mutable","name":"ret","nameLocation":"25281:3:45","nodeType":"VariableDeclaration","scope":40969,"src":"25267:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":40903,"name":"string","nodeType":"ElementaryTypeName","src":"25267:6:45","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":40909,"initialValue":{"arguments":[{"id":40907,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40874,"src":"25298:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":40906,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"25287:10:45","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":40905,"name":"string","nodeType":"ElementaryTypeName","src":"25291:6:45","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":40908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25287:18:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"25267:38:45"},{"assignments":[40911],"declarations":[{"constant":false,"id":40911,"mutability":"mutable","name":"retptr","nameLocation":"25320:6:45","nodeType":"VariableDeclaration","scope":40969,"src":"25315:11:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40910,"name":"uint","nodeType":"ElementaryTypeName","src":"25315:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40912,"nodeType":"VariableDeclarationStatement","src":"25315:11:45"},{"AST":{"nativeSrc":"25345:26:45","nodeType":"YulBlock","src":"25345:26:45","statements":[{"nativeSrc":"25347:22:45","nodeType":"YulAssignment","src":"25347:22:45","value":{"arguments":[{"name":"ret","nativeSrc":"25361:3:45","nodeType":"YulIdentifier","src":"25361:3:45"},{"kind":"number","nativeSrc":"25366:2:45","nodeType":"YulLiteral","src":"25366:2:45","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25357:3:45","nodeType":"YulIdentifier","src":"25357:3:45"},"nativeSrc":"25357:12:45","nodeType":"YulFunctionCall","src":"25357:12:45"},"variableNames":[{"name":"retptr","nativeSrc":"25347:6:45","nodeType":"YulIdentifier","src":"25347:6:45"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":40904,"isOffset":false,"isSlot":false,"src":"25361:3:45","valueSize":1},{"declaration":40911,"isOffset":false,"isSlot":false,"src":"25347:6:45","valueSize":1}],"id":40913,"nodeType":"InlineAssembly","src":"25336:35:45"},{"body":{"id":40965,"nodeType":"Block","src":"25420:251:45","statements":[{"expression":{"arguments":[{"id":40926,"name":"retptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40911,"src":"25441:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"id":40927,"name":"parts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40861,"src":"25449:5:45","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_slice_$39147_memory_ptr_$dyn_memory_ptr","typeString":"struct strings.slice memory[] memory"}},"id":40929,"indexExpression":{"id":40928,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40915,"src":"25455:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25449:8:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40930,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25458:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"25449:13:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"id":40931,"name":"parts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40861,"src":"25464:5:45","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_slice_$39147_memory_ptr_$dyn_memory_ptr","typeString":"struct strings.slice memory[] memory"}},"id":40933,"indexExpression":{"id":40932,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40915,"src":"25470:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25464:8:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40934,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25473:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"25464:13:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":40925,"name":"memcpy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39200,"src":"25434:6:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure"}},"id":40935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25434:44:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40936,"nodeType":"ExpressionStatement","src":"25434:44:45"},{"expression":{"id":40942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":40937,"name":"retptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40911,"src":"25492:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"baseExpression":{"id":40938,"name":"parts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40861,"src":"25502:5:45","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_slice_$39147_memory_ptr_$dyn_memory_ptr","typeString":"struct strings.slice memory[] memory"}},"id":40940,"indexExpression":{"id":40939,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40915,"src":"25508:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25502:8:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40941,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25511:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"25502:13:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25492:23:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40943,"nodeType":"ExpressionStatement","src":"25492:23:45"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40944,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40915,"src":"25533:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40945,"name":"parts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40861,"src":"25537:5:45","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_slice_$39147_memory_ptr_$dyn_memory_ptr","typeString":"struct strings.slice memory[] memory"}},"id":40946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25543:6:45","memberName":"length","nodeType":"MemberAccess","src":"25537:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":40947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25552:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25537:16:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25533:20:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40964,"nodeType":"IfStatement","src":"25529:132:45","trueBody":{"id":40963,"nodeType":"Block","src":"25555:106:45","statements":[{"expression":{"arguments":[{"id":40951,"name":"retptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40911,"src":"25580:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":40952,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40857,"src":"25588:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40953,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25593:4:45","memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":39146,"src":"25588:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":40954,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40857,"src":"25599:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40955,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25604:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"25599:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":40950,"name":"memcpy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39200,"src":"25573:6:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure"}},"id":40956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25573:36:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40957,"nodeType":"ExpressionStatement","src":"25573:36:45"},{"expression":{"id":40961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":40958,"name":"retptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40911,"src":"25627:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":40959,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40857,"src":"25637:4:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice memory"}},"id":40960,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25642:4:45","memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":39144,"src":"25637:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25627:19:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40962,"nodeType":"ExpressionStatement","src":"25627:19:45"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40918,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40915,"src":"25397:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":40919,"name":"parts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40861,"src":"25401:5:45","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_slice_$39147_memory_ptr_$dyn_memory_ptr","typeString":"struct strings.slice memory[] memory"}},"id":40920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25407:6:45","memberName":"length","nodeType":"MemberAccess","src":"25401:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25397:16:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40966,"initializationExpression":{"assignments":[40915],"declarations":[{"constant":false,"id":40915,"mutability":"mutable","name":"i","nameLocation":"25390:1:45","nodeType":"VariableDeclaration","scope":40966,"src":"25385:6:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40914,"name":"uint","nodeType":"ElementaryTypeName","src":"25385:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40917,"initialValue":{"hexValue":"30","id":40916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25394:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"25385:10:45"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":40923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"25415:3:45","subExpression":{"id":40922,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40915,"src":"25415:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40924,"nodeType":"ExpressionStatement","src":"25415:3:45"},"nodeType":"ForStatement","src":"25381:290:45"},{"expression":{"id":40967,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40904,"src":"25688:3:45","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":40865,"id":40968,"nodeType":"Return","src":"25681:10:45"}]},"implemented":true,"kind":"function","modifiers":[],"name":"join","nameLocation":"24979:4:45","parameters":{"id":40862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40857,"mutability":"mutable","name":"self","nameLocation":"24997:4:45","nodeType":"VariableDeclaration","scope":40970,"src":"24984:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":40856,"nodeType":"UserDefinedTypeName","pathNode":{"id":40855,"name":"slice","nameLocations":["24984:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"24984:5:45"},"referencedDeclaration":39147,"src":"24984:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"},{"constant":false,"id":40861,"mutability":"mutable","name":"parts","nameLocation":"25018:5:45","nodeType":"VariableDeclaration","scope":40970,"src":"25003:20:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_slice_$39147_memory_ptr_$dyn_memory_ptr","typeString":"struct strings.slice[]"},"typeName":{"baseType":{"id":40859,"nodeType":"UserDefinedTypeName","pathNode":{"id":40858,"name":"slice","nameLocations":["25003:5:45"],"nodeType":"IdentifierPath","referencedDeclaration":39147,"src":"25003:5:45"},"referencedDeclaration":39147,"src":"25003:5:45","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$39147_storage_ptr","typeString":"struct strings.slice"}},"id":40860,"nodeType":"ArrayTypeName","src":"25003:7:45","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_slice_$39147_storage_$dyn_storage_ptr","typeString":"struct strings.slice[]"}},"visibility":"internal"}],"src":"24983:41:45"},"returnParameters":{"id":40865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40864,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40970,"src":"25048:13:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":40863,"name":"string","nodeType":"ElementaryTypeName","src":"25048:6:45","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"25047:15:45"},"scope":40971,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"strings","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[40971],"name":"strings","nameLocation":"2010:7:45","scope":40972,"usedErrors":[],"usedEvents":[]}]},"id":45}