{"abi":[],"bytecode":{"object":"0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"253:17722:30:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;253:17722:30;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","sourceMap":"253:17722:30:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"clabby <https://github.com/clabby>\",\"custom:attribution\":\"geohot <https://github.com/geohot>\",\"kind\":\"dev\",\"methods\":{},\"title\":\"LibKeccak\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"An EVM implementation of the Keccak-f[1600] permutation.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/lib-keccak/contracts/lib/LibKeccak.sol\":\"LibKeccak\"},\"evmVersion\":\"london\",\"libraries\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/lib-keccak/contracts/lib/LibKeccak.sol\":{\"keccak256\":\"0x8dde9ac5972d35fc752b3aae40491bdd648e6d910bdc3cdba4256f56abafe672\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea269cbccc1eda4a57c6681d3c7648cd1ae3303ce1a3cdc1c703334d4be104f1\",\"dweb:/ipfs/QmRDE2GT8yRebnPbAZLBY9s3CHZt1ZjRXiRm8qufV8gpGx\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/lib-keccak/contracts/lib/LibKeccak.sol":"LibKeccak"},"evmVersion":"london","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/lib-keccak/contracts/lib/LibKeccak.sol":{"keccak256":"0x8dde9ac5972d35fc752b3aae40491bdd648e6d910bdc3cdba4256f56abafe672","urls":["bzz-raw://ea269cbccc1eda4a57c6681d3c7648cd1ae3303ce1a3cdc1c703334d4be104f1","dweb:/ipfs/QmRDE2GT8yRebnPbAZLBY9s3CHZt1ZjRXiRm8qufV8gpGx"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","notice":"An EVM implementation of the Keccak-f[1600] permutation."},"devdoc":{"version":1,"kind":"dev","author":"clabby <https://github.com/clabby>","title":"LibKeccak"},"ast":{"absolutePath":"lib/lib-keccak/contracts/lib/LibKeccak.sol","id":47443,"exportedSymbols":{"LibKeccak":[47442]},"nodeType":"SourceUnit","src":"32:17944:30","nodes":[{"id":47360,"nodeType":"PragmaDirective","src":"32:23:30","nodes":[],"literals":["solidity","0.8",".15"]},{"id":47442,"nodeType":"ContractDefinition","src":"253:17722:30","nodes":[{"id":47365,"nodeType":"VariableDeclaration","src":"366:48:30","nodes":[],"constant":true,"documentation":{"id":47362,"nodeType":"StructuredDocumentation","src":"277:84:30","text":"@notice The block size of the Keccak-f[1600] permutation, 1088 bits (136 bytes)."},"mutability":"constant","name":"BLOCK_SIZE_BYTES","nameLocation":"392:16:30","scope":47442,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47363,"name":"uint256","nodeType":"ElementaryTypeName","src":"366:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313336","id":47364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"411:3:30","typeDescriptions":{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"},"value":"136"},"visibility":"internal"},{"id":47377,"nodeType":"VariableDeclaration","src":"569:619:30","nodes":[],"constant":true,"documentation":{"id":47366,"nodeType":"StructuredDocumentation","src":"421:143:30","text":"@notice The round constants for the keccak256 hash function. Packed in memory for efficient reading during the\n         permutation."},"mutability":"constant","name":"ROUND_CONSTANTS","nameLocation":"593:15:30","scope":47442,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":47367,"name":"bytes","nodeType":"ElementaryTypeName","src":"569:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"307830303030303030303030303030303031303030303030303030303030383038323830303030303030303030303830386138303030303030303830303038303030","id":47370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"631:66:30","typeDescriptions":{"typeIdentifier":"t_rational_6277101735386691958615237571701707272949661900016046866432_by_1","typeString":"int_const 6277...(50 digits omitted)...6432"},"value":"0x00000000000000010000000000008082800000000000808a8000000080008000"},{"hexValue":"307830303030303030303030303038303862303030303030303038303030303030313830303030303030383030303830383138303030303030303030303038303039","id":47371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"722:66:30","typeDescriptions":{"typeIdentifier":"t_rational_206560586806370234646363498424504201619479872709732616080752649_by_1","typeString":"int_const 2065...(55 digits omitted)...2649"},"value":"0x000000000000808b000000008000000180000000800080818000000000008009"},{"hexValue":"307830303030303030303030303030303861303030303030303030303030303038383030303030303030383030303830303930303030303030303830303030303061","id":47372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"813:66:30","typeDescriptions":{"typeIdentifier":"t_rational_866240039483361945455617342303945211139030060619534132314122_by_1","typeString":"int_const 8662...(52 digits omitted)...4122"},"value":"0x000000000000008a00000000000000880000000080008009000000008000000a"},{"hexValue":"307830303030303030303830303038303862383030303030303030303030303038623830303030303030303030303830383938303030303030303030303038303033","id":47373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"907:66:30","typeDescriptions":{"typeIdentifier":"t_rational_13480179897300677134530743517219649728572076359672169794948854480899_by_1","typeString":"int_const 1348...(60 digits omitted)...0899"},"value":"0x000000008000808b800000000000008b80000000000080898000000000008003"},{"hexValue":"307838303030303030303030303038303032383030303030303030303030303038303030303030303030303030303830306138303030303030303830303030303061","id":47374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1002:66:30","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658303415547911993565925250928428525532694829936435183956585873418_by_1","typeString":"int_const 5789...(69 digits omitted)...3418"},"value":"0x80000000000080028000000000000080000000000000800a800000008000000a"},{"hexValue":"307838303030303030303830303038303831383030303030303030303030383038303030303030303030383030303030303138303030303030303830303038303038","id":47375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1097:66:30","typeDescriptions":{"typeIdentifier":"t_rational_57896044632138277546315152285007900951956099875076086130693200860440325816328_by_1","typeString":"int_const 5789...(69 digits omitted)...6328"},"value":"0x8000000080008081800000000000808000000000800000018000000080008008"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_6277101735386691958615237571701707272949661900016046866432_by_1","typeString":"int_const 6277...(50 digits omitted)...6432"},{"typeIdentifier":"t_rational_206560586806370234646363498424504201619479872709732616080752649_by_1","typeString":"int_const 2065...(55 digits omitted)...2649"},{"typeIdentifier":"t_rational_866240039483361945455617342303945211139030060619534132314122_by_1","typeString":"int_const 8662...(52 digits omitted)...4122"},{"typeIdentifier":"t_rational_13480179897300677134530743517219649728572076359672169794948854480899_by_1","typeString":"int_const 1348...(60 digits omitted)...0899"},{"typeIdentifier":"t_rational_57896044618658303415547911993565925250928428525532694829936435183956585873418_by_1","typeString":"int_const 5789...(69 digits omitted)...3418"},{"typeIdentifier":"t_rational_57896044632138277546315152285007900951956099875076086130693200860440325816328_by_1","typeString":"int_const 5789...(69 digits omitted)...6328"}],"expression":{"id":47368,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"611:3:30","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"611:10:30","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":47376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"611:577:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"internal"},{"id":47381,"nodeType":"VariableDeclaration","src":"1237:53:30","nodes":[],"constant":true,"documentation":{"id":47378,"nodeType":"StructuredDocumentation","src":"1195:37:30","text":"@notice A mask for 64-bit values."},"mutability":"constant","name":"U64_MASK","nameLocation":"1261:8:30","scope":47442,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":47379,"name":"uint64","nodeType":"ElementaryTypeName","src":"1237:6:30","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"307846464646464646464646464646464646","id":47380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1272:18:30","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"},"value":"0xFFFFFFFFFFFFFFFF"},"visibility":"private"},{"id":47386,"nodeType":"StructDefinition","src":"1370:52:30","nodes":[],"canonicalName":"LibKeccak.StateMatrix","members":[{"constant":false,"id":47385,"mutability":"mutable","name":"state","nameLocation":"1410:5:30","nodeType":"VariableDeclaration","scope":47386,"src":"1399:16:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint64_$25_storage_ptr","typeString":"uint64[25]"},"typeName":{"baseType":{"id":47382,"name":"uint64","nodeType":"ElementaryTypeName","src":"1399:6:30","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":47384,"length":{"hexValue":"3235","id":47383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1406:2:30","typeDescriptions":{"typeIdentifier":"t_rational_25_by_1","typeString":"int_const 25"},"value":"25"},"nodeType":"ArrayTypeName","src":"1399:10:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint64_$25_storage_ptr","typeString":"uint64[25]"}},"visibility":"internal"}],"name":"StateMatrix","nameLocation":"1377:11:30","scope":47442,"visibility":"public"},{"id":47399,"nodeType":"FunctionDefinition","src":"1515:6473:30","nodes":[],"body":{"id":47398,"nodeType":"Block","src":"1583:6405:30","nodes":[],"statements":[{"assignments":[47394],"declarations":[{"constant":false,"id":47394,"mutability":"mutable","name":"roundConstants","nameLocation":"1710:14:30","nodeType":"VariableDeclaration","scope":47398,"src":"1697:27:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":47393,"name":"bytes","nodeType":"ElementaryTypeName","src":"1697:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":47396,"initialValue":{"id":47395,"name":"ROUND_CONSTANTS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47377,"src":"1727:15:30","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1697:45:30"},{"AST":{"nodeType":"YulBlock","src":"1762:6220:30","statements":[{"nodeType":"YulVariableDeclaration","src":"1859:45:30","value":{"arguments":[{"name":"_stateMatrix","nodeType":"YulIdentifier","src":"1885:12:30"},{"kind":"number","nodeType":"YulLiteral","src":"1899:4:30","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1881:3:30"},"nodeType":"YulFunctionCall","src":"1881:23:30"},"variables":[{"name":"stateMatrixPtr","nodeType":"YulTypedName","src":"1863:14:30","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1917:38:30","value":{"arguments":[{"name":"roundConstants","nodeType":"YulIdentifier","src":"1934:14:30"},{"kind":"number","nodeType":"YulLiteral","src":"1950:4:30","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1930:3:30"},"nodeType":"YulFunctionCall","src":"1930:25:30"},"variables":[{"name":"rcPtr","nodeType":"YulTypedName","src":"1921:5:30","type":""}]},{"body":{"nodeType":"YulBlock","src":"2089:85:30","statements":[{"expression":{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"2118:3:30"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2127:4:30","type":"","value":"0x05"},{"name":"idx","nodeType":"YulIdentifier","src":"2133:3:30"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2123:3:30"},"nodeType":"YulFunctionCall","src":"2123:14:30"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2114:3:30"},"nodeType":"YulFunctionCall","src":"2114:24:30"},{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2144:4:30"},{"name":"U64_MASK","nodeType":"YulIdentifier","src":"2150:8:30"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2140:3:30"},"nodeType":"YulFunctionCall","src":"2140:19:30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2107:6:30"},"nodeType":"YulFunctionCall","src":"2107:53:30"},"nodeType":"YulExpressionStatement","src":"2107:53:30"}]},"name":"setStateElem","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"2073:3:30","type":""},{"name":"idx","nodeType":"YulTypedName","src":"2078:3:30","type":""},{"name":"data","nodeType":"YulTypedName","src":"2083:4:30","type":""}],"src":"2051:123:30"},{"body":{"nodeType":"YulBlock","src":"2311:71:30","statements":[{"nodeType":"YulAssignment","src":"2329:39:30","value":{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"2347:3:30"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2356:4:30","type":"","value":"0x05"},{"name":"idx","nodeType":"YulIdentifier","src":"2362:3:30"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2352:3:30"},"nodeType":"YulFunctionCall","src":"2352:14:30"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2343:3:30"},"nodeType":"YulFunctionCall","src":"2343:24:30"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2337:5:30"},"nodeType":"YulFunctionCall","src":"2337:31:30"},"variableNames":[{"name":"elem","nodeType":"YulIdentifier","src":"2329:4:30"}]}]},"name":"stateElem","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"2293:3:30","type":""},{"name":"idx","nodeType":"YulTypedName","src":"2298:3:30","type":""}],"returnVariables":[{"name":"elem","nodeType":"YulTypedName","src":"2306:4:30","type":""}],"src":"2274:108:30"},{"body":{"nodeType":"YulBlock","src":"2460:63:30","statements":[{"nodeType":"YulAssignment","src":"2478:31:30","value":{"arguments":[{"arguments":[{"name":"a","nodeType":"YulIdentifier","src":"2493:1:30"},{"name":"b","nodeType":"YulIdentifier","src":"2496:1:30"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2489:3:30"},"nodeType":"YulFunctionCall","src":"2489:9:30"},{"name":"U64_MASK","nodeType":"YulIdentifier","src":"2500:8:30"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2485:3:30"},"nodeType":"YulFunctionCall","src":"2485:24:30"},"variableNames":[{"name":"val","nodeType":"YulIdentifier","src":"2478:3:30"}]}]},"name":"shl64","nodeType":"YulFunctionDefinition","parameters":[{"name":"a","nodeType":"YulTypedName","src":"2447:1:30","type":""},{"name":"b","nodeType":"YulTypedName","src":"2450:1:30","type":""}],"returnVariables":[{"name":"val","nodeType":"YulTypedName","src":"2456:3:30","type":""}],"src":"2432:91:30"},{"body":{"nodeType":"YulBlock","src":"2687:194:30","statements":[{"nodeType":"YulVariableDeclaration","src":"2705:42:30","value":{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"2730:3:30"},{"name":"srcIdx","nodeType":"YulIdentifier","src":"2735:6:30"}],"functionName":{"name":"stateElem","nodeType":"YulIdentifier","src":"2720:9:30"},"nodeType":"YulFunctionCall","src":"2720:22:30"},{"name":"dt","nodeType":"YulIdentifier","src":"2744:2:30"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"2716:3:30"},"nodeType":"YulFunctionCall","src":"2716:31:30"},"variables":[{"name":"xs1","nodeType":"YulTypedName","src":"2709:3:30","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2764:55:30","value":{"arguments":[{"arguments":[{"name":"fact","nodeType":"YulIdentifier","src":"2783:4:30"},{"name":"xs1","nodeType":"YulIdentifier","src":"2789:3:30"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2779:3:30"},"nodeType":"YulFunctionCall","src":"2779:14:30"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2803:2:30","type":"","value":"64"},{"name":"fact","nodeType":"YulIdentifier","src":"2807:4:30"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2799:3:30"},"nodeType":"YulFunctionCall","src":"2799:13:30"},{"name":"xs1","nodeType":"YulIdentifier","src":"2814:3:30"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2795:3:30"},"nodeType":"YulFunctionCall","src":"2795:23:30"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"2775:3:30"},"nodeType":"YulFunctionCall","src":"2775:44:30"},"variables":[{"name":"res","nodeType":"YulTypedName","src":"2768:3:30","type":""}]},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"2849:3:30"},{"name":"destIdx","nodeType":"YulIdentifier","src":"2854:7:30"},{"name":"res","nodeType":"YulIdentifier","src":"2863:3:30"}],"functionName":{"name":"setStateElem","nodeType":"YulIdentifier","src":"2836:12:30"},"nodeType":"YulFunctionCall","src":"2836:31:30"},"nodeType":"YulExpressionStatement","src":"2836:31:30"}]},"name":"rhoPi","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"2655:3:30","type":""},{"name":"destIdx","nodeType":"YulTypedName","src":"2660:7:30","type":""},{"name":"srcIdx","nodeType":"YulTypedName","src":"2669:6:30","type":""},{"name":"fact","nodeType":"YulTypedName","src":"2677:4:30","type":""},{"name":"dt","nodeType":"YulTypedName","src":"2683:2:30","type":""}],"src":"2640:241:30"},{"body":{"nodeType":"YulBlock","src":"2979:287:30","statements":[{"nodeType":"YulAssignment","src":"2997:255:30","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"3071:3:30"},{"name":"col","nodeType":"YulIdentifier","src":"3076:3:30"}],"functionName":{"name":"stateElem","nodeType":"YulIdentifier","src":"3061:9:30"},"nodeType":"YulFunctionCall","src":"3061:19:30"},{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"3092:3:30"},{"arguments":[{"name":"col","nodeType":"YulIdentifier","src":"3101:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"3106:1:30","type":"","value":"5"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3097:3:30"},"nodeType":"YulFunctionCall","src":"3097:11:30"}],"functionName":{"name":"stateElem","nodeType":"YulIdentifier","src":"3082:9:30"},"nodeType":"YulFunctionCall","src":"3082:27:30"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"3057:3:30"},"nodeType":"YulFunctionCall","src":"3057:53:30"},{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"3122:3:30"},{"arguments":[{"name":"col","nodeType":"YulIdentifier","src":"3131:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"3136:2:30","type":"","value":"10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3127:3:30"},"nodeType":"YulFunctionCall","src":"3127:12:30"}],"functionName":{"name":"stateElem","nodeType":"YulIdentifier","src":"3112:9:30"},"nodeType":"YulFunctionCall","src":"3112:28:30"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"3053:3:30"},"nodeType":"YulFunctionCall","src":"3053:88:30"},{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"3181:3:30"},{"arguments":[{"name":"col","nodeType":"YulIdentifier","src":"3190:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"3195:2:30","type":"","value":"15"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3186:3:30"},"nodeType":"YulFunctionCall","src":"3186:12:30"}],"functionName":{"name":"stateElem","nodeType":"YulIdentifier","src":"3171:9:30"},"nodeType":"YulFunctionCall","src":"3171:28:30"},{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"3211:3:30"},{"arguments":[{"name":"col","nodeType":"YulIdentifier","src":"3220:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"3225:2:30","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3216:3:30"},"nodeType":"YulFunctionCall","src":"3216:12:30"}],"functionName":{"name":"stateElem","nodeType":"YulIdentifier","src":"3201:9:30"},"nodeType":"YulFunctionCall","src":"3201:28:30"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"3167:3:30"},"nodeType":"YulFunctionCall","src":"3167:63:30"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"3024:3:30"},"nodeType":"YulFunctionCall","src":"3024:228:30"},"variableNames":[{"name":"val","nodeType":"YulIdentifier","src":"2997:3:30"}]}]},"name":"xorColumn","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"2962:3:30","type":""},{"name":"col","nodeType":"YulTypedName","src":"2967:3:30","type":""}],"returnVariables":[{"name":"val","nodeType":"YulTypedName","src":"2975:3:30","type":""}],"src":"2943:323:30"},{"body":{"nodeType":"YulBlock","src":"3460:1778:30","statements":[{"nodeType":"YulVariableDeclaration","src":"3503:27:30","value":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"3523:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"3528:1:30","type":"","value":"0"}],"functionName":{"name":"xorColumn","nodeType":"YulIdentifier","src":"3513:9:30"},"nodeType":"YulFunctionCall","src":"3513:17:30"},"variables":[{"name":"C0","nodeType":"YulTypedName","src":"3507:2:30","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3547:27:30","value":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"3567:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"3572:1:30","type":"","value":"1"}],"functionName":{"name":"xorColumn","nodeType":"YulIdentifier","src":"3557:9:30"},"nodeType":"YulFunctionCall","src":"3557:17:30"},"variables":[{"name":"C1","nodeType":"YulTypedName","src":"3551:2:30","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3591:27:30","value":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"3611:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"3616:1:30","type":"","value":"2"}],"functionName":{"name":"xorColumn","nodeType":"YulIdentifier","src":"3601:9:30"},"nodeType":"YulFunctionCall","src":"3601:17:30"},"variables":[{"name":"C2","nodeType":"YulTypedName","src":"3595:2:30","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3635:27:30","value":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"3655:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"3660:1:30","type":"","value":"3"}],"functionName":{"name":"xorColumn","nodeType":"YulIdentifier","src":"3645:9:30"},"nodeType":"YulFunctionCall","src":"3645:17:30"},"variables":[{"name":"C3","nodeType":"YulTypedName","src":"3639:2:30","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3679:27:30","value":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"3699:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"3704:1:30","type":"","value":"4"}],"functionName":{"name":"xorColumn","nodeType":"YulIdentifier","src":"3689:9:30"},"nodeType":"YulFunctionCall","src":"3689:17:30"},"variables":[{"name":"C4","nodeType":"YulTypedName","src":"3683:2:30","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3723:49:30","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3747:1:30","type":"","value":"1"},{"name":"C1","nodeType":"YulIdentifier","src":"3750:2:30"}],"functionName":{"name":"shl64","nodeType":"YulIdentifier","src":"3741:5:30"},"nodeType":"YulFunctionCall","src":"3741:12:30"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3759:2:30","type":"","value":"63"},{"name":"C1","nodeType":"YulIdentifier","src":"3763:2:30"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"3755:3:30"},"nodeType":"YulFunctionCall","src":"3755:11:30"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"3737:3:30"},"nodeType":"YulFunctionCall","src":"3737:30:30"},{"name":"C4","nodeType":"YulIdentifier","src":"3769:2:30"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"3733:3:30"},"nodeType":"YulFunctionCall","src":"3733:39:30"},"variables":[{"name":"D0","nodeType":"YulTypedName","src":"3727:2:30","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3789:49:30","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3813:1:30","type":"","value":"1"},{"name":"C2","nodeType":"YulIdentifier","src":"3816:2:30"}],"functionName":{"name":"shl64","nodeType":"YulIdentifier","src":"3807:5:30"},"nodeType":"YulFunctionCall","src":"3807:12:30"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3825:2:30","type":"","value":"63"},{"name":"C2","nodeType":"YulIdentifier","src":"3829:2:30"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"3821:3:30"},"nodeType":"YulFunctionCall","src":"3821:11:30"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"3803:3:30"},"nodeType":"YulFunctionCall","src":"3803:30:30"},{"name":"C0","nodeType":"YulIdentifier","src":"3835:2:30"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"3799:3:30"},"nodeType":"YulFunctionCall","src":"3799:39:30"},"variables":[{"name":"D1","nodeType":"YulTypedName","src":"3793:2:30","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3855:49:30","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3879:1:30","type":"","value":"1"},{"name":"C3","nodeType":"YulIdentifier","src":"3882:2:30"}],"functionName":{"name":"shl64","nodeType":"YulIdentifier","src":"3873:5:30"},"nodeType":"YulFunctionCall","src":"3873:12:30"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3891:2:30","type":"","value":"63"},{"name":"C3","nodeType":"YulIdentifier","src":"3895:2:30"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"3887:3:30"},"nodeType":"YulFunctionCall","src":"3887:11:30"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"3869:3:30"},"nodeType":"YulFunctionCall","src":"3869:30:30"},{"name":"C1","nodeType":"YulIdentifier","src":"3901:2:30"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"3865:3:30"},"nodeType":"YulFunctionCall","src":"3865:39:30"},"variables":[{"name":"D2","nodeType":"YulTypedName","src":"3859:2:30","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3921:49:30","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3945:1:30","type":"","value":"1"},{"name":"C4","nodeType":"YulIdentifier","src":"3948:2:30"}],"functionName":{"name":"shl64","nodeType":"YulIdentifier","src":"3939:5:30"},"nodeType":"YulFunctionCall","src":"3939:12:30"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3957:2:30","type":"","value":"63"},{"name":"C4","nodeType":"YulIdentifier","src":"3961:2:30"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"3953:3:30"},"nodeType":"YulFunctionCall","src":"3953:11:30"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"3935:3:30"},"nodeType":"YulFunctionCall","src":"3935:30:30"},{"name":"C2","nodeType":"YulIdentifier","src":"3967:2:30"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"3931:3:30"},"nodeType":"YulFunctionCall","src":"3931:39:30"},"variables":[{"name":"D3","nodeType":"YulTypedName","src":"3925:2:30","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3987:49:30","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4011:1:30","type":"","value":"1"},{"name":"C0","nodeType":"YulIdentifier","src":"4014:2:30"}],"functionName":{"name":"shl64","nodeType":"YulIdentifier","src":"4005:5:30"},"nodeType":"YulFunctionCall","src":"4005:12:30"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4023:2:30","type":"","value":"63"},{"name":"C0","nodeType":"YulIdentifier","src":"4027:2:30"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"4019:3:30"},"nodeType":"YulFunctionCall","src":"4019:11:30"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"4001:3:30"},"nodeType":"YulFunctionCall","src":"4001:30:30"},{"name":"C3","nodeType":"YulIdentifier","src":"4033:2:30"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"3997:3:30"},"nodeType":"YulFunctionCall","src":"3997:39:30"},"variables":[{"name":"D4","nodeType":"YulTypedName","src":"3991:2:30","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4054:37:30","value":{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"4079:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"4084:1:30","type":"","value":"1"}],"functionName":{"name":"stateElem","nodeType":"YulIdentifier","src":"4069:9:30"},"nodeType":"YulFunctionCall","src":"4069:17:30"},{"name":"D1","nodeType":"YulIdentifier","src":"4088:2:30"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"4065:3:30"},"nodeType":"YulFunctionCall","src":"4065:26:30"},"variables":[{"name":"xs1","nodeType":"YulTypedName","src":"4058:3:30","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4108:40:30","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4126:1:30","type":"","value":"1"},{"name":"xs1","nodeType":"YulIdentifier","src":"4129:3:30"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4122:3:30"},"nodeType":"YulFunctionCall","src":"4122:11:30"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4139:2:30","type":"","value":"63"},{"name":"xs1","nodeType":"YulIdentifier","src":"4143:3:30"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"4135:3:30"},"nodeType":"YulFunctionCall","src":"4135:12:30"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"4118:3:30"},"nodeType":"YulFunctionCall","src":"4118:30:30"},"variables":[{"name":"A1","nodeType":"YulTypedName","src":"4112:2:30","type":""}]},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"4179:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"4184:1:30","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"4201:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"4206:1:30","type":"","value":"0"}],"functionName":{"name":"stateElem","nodeType":"YulIdentifier","src":"4191:9:30"},"nodeType":"YulFunctionCall","src":"4191:17:30"},{"name":"D0","nodeType":"YulIdentifier","src":"4210:2:30"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"4187:3:30"},"nodeType":"YulFunctionCall","src":"4187:26:30"}],"functionName":{"name":"setStateElem","nodeType":"YulIdentifier","src":"4166:12:30"},"nodeType":"YulFunctionCall","src":"4166:48:30"},"nodeType":"YulExpressionStatement","src":"4166:48:30"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"4237:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"4242:1:30","type":"","value":"1"},{"kind":"number","nodeType":"YulLiteral","src":"4245:1:30","type":"","value":"6"},{"kind":"number","nodeType":"YulLiteral","src":"4248:2:30","type":"","value":"44"},{"name":"D1","nodeType":"YulIdentifier","src":"4252:2:30"}],"functionName":{"name":"rhoPi","nodeType":"YulIdentifier","src":"4231:5:30"},"nodeType":"YulFunctionCall","src":"4231:24:30"},"nodeType":"YulExpressionStatement","src":"4231:24:30"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"4278:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"4283:1:30","type":"","value":"6"},{"kind":"number","nodeType":"YulLiteral","src":"4286:1:30","type":"","value":"9"},{"kind":"number","nodeType":"YulLiteral","src":"4289:2:30","type":"","value":"20"},{"name":"D4","nodeType":"YulIdentifier","src":"4293:2:30"}],"functionName":{"name":"rhoPi","nodeType":"YulIdentifier","src":"4272:5:30"},"nodeType":"YulFunctionCall","src":"4272:24:30"},"nodeType":"YulExpressionStatement","src":"4272:24:30"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"4319:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"4324:1:30","type":"","value":"9"},{"kind":"number","nodeType":"YulLiteral","src":"4327:2:30","type":"","value":"22"},{"kind":"number","nodeType":"YulLiteral","src":"4331:2:30","type":"","value":"61"},{"name":"D2","nodeType":"YulIdentifier","src":"4335:2:30"}],"functionName":{"name":"rhoPi","nodeType":"YulIdentifier","src":"4313:5:30"},"nodeType":"YulFunctionCall","src":"4313:25:30"},"nodeType":"YulExpressionStatement","src":"4313:25:30"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"4361:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"4366:2:30","type":"","value":"22"},{"kind":"number","nodeType":"YulLiteral","src":"4370:2:30","type":"","value":"14"},{"kind":"number","nodeType":"YulLiteral","src":"4374:2:30","type":"","value":"39"},{"name":"D4","nodeType":"YulIdentifier","src":"4378:2:30"}],"functionName":{"name":"rhoPi","nodeType":"YulIdentifier","src":"4355:5:30"},"nodeType":"YulFunctionCall","src":"4355:26:30"},"nodeType":"YulExpressionStatement","src":"4355:26:30"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"4404:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"4409:2:30","type":"","value":"14"},{"kind":"number","nodeType":"YulLiteral","src":"4413:2:30","type":"","value":"20"},{"kind":"number","nodeType":"YulLiteral","src":"4417:2:30","type":"","value":"18"},{"name":"D0","nodeType":"YulIdentifier","src":"4421:2:30"}],"functionName":{"name":"rhoPi","nodeType":"YulIdentifier","src":"4398:5:30"},"nodeType":"YulFunctionCall","src":"4398:26:30"},"nodeType":"YulExpressionStatement","src":"4398:26:30"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"4447:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"4452:2:30","type":"","value":"20"},{"kind":"number","nodeType":"YulLiteral","src":"4456:1:30","type":"","value":"2"},{"kind":"number","nodeType":"YulLiteral","src":"4459:2:30","type":"","value":"62"},{"name":"D2","nodeType":"YulIdentifier","src":"4463:2:30"}],"functionName":{"name":"rhoPi","nodeType":"YulIdentifier","src":"4441:5:30"},"nodeType":"YulFunctionCall","src":"4441:25:30"},"nodeType":"YulExpressionStatement","src":"4441:25:30"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"4489:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"4494:1:30","type":"","value":"2"},{"kind":"number","nodeType":"YulLiteral","src":"4497:2:30","type":"","value":"12"},{"kind":"number","nodeType":"YulLiteral","src":"4501:2:30","type":"","value":"43"},{"name":"D2","nodeType":"YulIdentifier","src":"4505:2:30"}],"functionName":{"name":"rhoPi","nodeType":"YulIdentifier","src":"4483:5:30"},"nodeType":"YulFunctionCall","src":"4483:25:30"},"nodeType":"YulExpressionStatement","src":"4483:25:30"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"4531:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"4536:2:30","type":"","value":"12"},{"kind":"number","nodeType":"YulLiteral","src":"4540:2:30","type":"","value":"13"},{"kind":"number","nodeType":"YulLiteral","src":"4544:2:30","type":"","value":"25"},{"name":"D3","nodeType":"YulIdentifier","src":"4548:2:30"}],"functionName":{"name":"rhoPi","nodeType":"YulIdentifier","src":"4525:5:30"},"nodeType":"YulFunctionCall","src":"4525:26:30"},"nodeType":"YulExpressionStatement","src":"4525:26:30"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"4574:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"4579:2:30","type":"","value":"13"},{"kind":"number","nodeType":"YulLiteral","src":"4583:2:30","type":"","value":"19"},{"kind":"number","nodeType":"YulLiteral","src":"4587:1:30","type":"","value":"8"},{"name":"D4","nodeType":"YulIdentifier","src":"4590:2:30"}],"functionName":{"name":"rhoPi","nodeType":"YulIdentifier","src":"4568:5:30"},"nodeType":"YulFunctionCall","src":"4568:25:30"},"nodeType":"YulExpressionStatement","src":"4568:25:30"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"4616:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"4621:2:30","type":"","value":"19"},{"kind":"number","nodeType":"YulLiteral","src":"4625:2:30","type":"","value":"23"},{"kind":"number","nodeType":"YulLiteral","src":"4629:2:30","type":"","value":"56"},{"name":"D3","nodeType":"YulIdentifier","src":"4633:2:30"}],"functionName":{"name":"rhoPi","nodeType":"YulIdentifier","src":"4610:5:30"},"nodeType":"YulFunctionCall","src":"4610:26:30"},"nodeType":"YulExpressionStatement","src":"4610:26:30"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"4659:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"4664:2:30","type":"","value":"23"},{"kind":"number","nodeType":"YulLiteral","src":"4668:2:30","type":"","value":"15"},{"kind":"number","nodeType":"YulLiteral","src":"4672:2:30","type":"","value":"41"},{"name":"D0","nodeType":"YulIdentifier","src":"4676:2:30"}],"functionName":{"name":"rhoPi","nodeType":"YulIdentifier","src":"4653:5:30"},"nodeType":"YulFunctionCall","src":"4653:26:30"},"nodeType":"YulExpressionStatement","src":"4653:26:30"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"4702:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"4707:2:30","type":"","value":"15"},{"kind":"number","nodeType":"YulLiteral","src":"4711:1:30","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"4714:2:30","type":"","value":"27"},{"name":"D4","nodeType":"YulIdentifier","src":"4718:2:30"}],"functionName":{"name":"rhoPi","nodeType":"YulIdentifier","src":"4696:5:30"},"nodeType":"YulFunctionCall","src":"4696:25:30"},"nodeType":"YulExpressionStatement","src":"4696:25:30"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"4744:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"4749:1:30","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"4752:2:30","type":"","value":"24"},{"kind":"number","nodeType":"YulLiteral","src":"4756:2:30","type":"","value":"14"},{"name":"D4","nodeType":"YulIdentifier","src":"4760:2:30"}],"functionName":{"name":"rhoPi","nodeType":"YulIdentifier","src":"4738:5:30"},"nodeType":"YulFunctionCall","src":"4738:25:30"},"nodeType":"YulExpressionStatement","src":"4738:25:30"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"4786:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"4791:2:30","type":"","value":"24"},{"kind":"number","nodeType":"YulLiteral","src":"4795:2:30","type":"","value":"21"},{"kind":"number","nodeType":"YulLiteral","src":"4799:1:30","type":"","value":"2"},{"name":"D1","nodeType":"YulIdentifier","src":"4802:2:30"}],"functionName":{"name":"rhoPi","nodeType":"YulIdentifier","src":"4780:5:30"},"nodeType":"YulFunctionCall","src":"4780:25:30"},"nodeType":"YulExpressionStatement","src":"4780:25:30"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"4828:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"4833:2:30","type":"","value":"21"},{"kind":"number","nodeType":"YulLiteral","src":"4837:1:30","type":"","value":"8"},{"kind":"number","nodeType":"YulLiteral","src":"4840:2:30","type":"","value":"55"},{"name":"D3","nodeType":"YulIdentifier","src":"4844:2:30"}],"functionName":{"name":"rhoPi","nodeType":"YulIdentifier","src":"4822:5:30"},"nodeType":"YulFunctionCall","src":"4822:25:30"},"nodeType":"YulExpressionStatement","src":"4822:25:30"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"4870:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"4875:1:30","type":"","value":"8"},{"kind":"number","nodeType":"YulLiteral","src":"4878:2:30","type":"","value":"16"},{"kind":"number","nodeType":"YulLiteral","src":"4882:2:30","type":"","value":"45"},{"name":"D1","nodeType":"YulIdentifier","src":"4886:2:30"}],"functionName":{"name":"rhoPi","nodeType":"YulIdentifier","src":"4864:5:30"},"nodeType":"YulFunctionCall","src":"4864:25:30"},"nodeType":"YulExpressionStatement","src":"4864:25:30"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"4912:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"4917:2:30","type":"","value":"16"},{"kind":"number","nodeType":"YulLiteral","src":"4921:1:30","type":"","value":"5"},{"kind":"number","nodeType":"YulLiteral","src":"4924:2:30","type":"","value":"36"},{"name":"D0","nodeType":"YulIdentifier","src":"4928:2:30"}],"functionName":{"name":"rhoPi","nodeType":"YulIdentifier","src":"4906:5:30"},"nodeType":"YulFunctionCall","src":"4906:25:30"},"nodeType":"YulExpressionStatement","src":"4906:25:30"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"4954:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"4959:1:30","type":"","value":"5"},{"kind":"number","nodeType":"YulLiteral","src":"4962:1:30","type":"","value":"3"},{"kind":"number","nodeType":"YulLiteral","src":"4965:2:30","type":"","value":"28"},{"name":"D3","nodeType":"YulIdentifier","src":"4969:2:30"}],"functionName":{"name":"rhoPi","nodeType":"YulIdentifier","src":"4948:5:30"},"nodeType":"YulFunctionCall","src":"4948:24:30"},"nodeType":"YulExpressionStatement","src":"4948:24:30"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"4995:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"5000:1:30","type":"","value":"3"},{"kind":"number","nodeType":"YulLiteral","src":"5003:2:30","type":"","value":"18"},{"kind":"number","nodeType":"YulLiteral","src":"5007:2:30","type":"","value":"21"},{"name":"D3","nodeType":"YulIdentifier","src":"5011:2:30"}],"functionName":{"name":"rhoPi","nodeType":"YulIdentifier","src":"4989:5:30"},"nodeType":"YulFunctionCall","src":"4989:25:30"},"nodeType":"YulExpressionStatement","src":"4989:25:30"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"5037:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"5042:2:30","type":"","value":"18"},{"kind":"number","nodeType":"YulLiteral","src":"5046:2:30","type":"","value":"17"},{"kind":"number","nodeType":"YulLiteral","src":"5050:2:30","type":"","value":"15"},{"name":"D2","nodeType":"YulIdentifier","src":"5054:2:30"}],"functionName":{"name":"rhoPi","nodeType":"YulIdentifier","src":"5031:5:30"},"nodeType":"YulFunctionCall","src":"5031:26:30"},"nodeType":"YulExpressionStatement","src":"5031:26:30"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"5080:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"5085:2:30","type":"","value":"17"},{"kind":"number","nodeType":"YulLiteral","src":"5089:2:30","type":"","value":"11"},{"kind":"number","nodeType":"YulLiteral","src":"5093:2:30","type":"","value":"10"},{"name":"D1","nodeType":"YulIdentifier","src":"5097:2:30"}],"functionName":{"name":"rhoPi","nodeType":"YulIdentifier","src":"5074:5:30"},"nodeType":"YulFunctionCall","src":"5074:26:30"},"nodeType":"YulExpressionStatement","src":"5074:26:30"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"5123:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"5128:2:30","type":"","value":"11"},{"kind":"number","nodeType":"YulLiteral","src":"5132:1:30","type":"","value":"7"},{"kind":"number","nodeType":"YulLiteral","src":"5135:1:30","type":"","value":"6"},{"name":"D2","nodeType":"YulIdentifier","src":"5138:2:30"}],"functionName":{"name":"rhoPi","nodeType":"YulIdentifier","src":"5117:5:30"},"nodeType":"YulFunctionCall","src":"5117:24:30"},"nodeType":"YulExpressionStatement","src":"5117:24:30"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"5164:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"5169:1:30","type":"","value":"7"},{"kind":"number","nodeType":"YulLiteral","src":"5172:2:30","type":"","value":"10"},{"kind":"number","nodeType":"YulLiteral","src":"5176:1:30","type":"","value":"3"},{"name":"D0","nodeType":"YulIdentifier","src":"5179:2:30"}],"functionName":{"name":"rhoPi","nodeType":"YulIdentifier","src":"5158:5:30"},"nodeType":"YulFunctionCall","src":"5158:24:30"},"nodeType":"YulExpressionStatement","src":"5158:24:30"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"5212:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"5217:2:30","type":"","value":"10"},{"name":"A1","nodeType":"YulIdentifier","src":"5221:2:30"}],"functionName":{"name":"setStateElem","nodeType":"YulIdentifier","src":"5199:12:30"},"nodeType":"YulFunctionCall","src":"5199:25:30"},"nodeType":"YulExpressionStatement","src":"5199:25:30"}]},"name":"thetaRhoPi","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"3455:3:30","type":""}],"src":"3435:1803:30"},{"body":{"nodeType":"YulBlock","src":"5354:660:30","statements":[{"nodeType":"YulVariableDeclaration","src":"5372:31:30","value":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"5392:3:30"},{"name":"start","nodeType":"YulIdentifier","src":"5397:5:30"}],"functionName":{"name":"stateElem","nodeType":"YulIdentifier","src":"5382:9:30"},"nodeType":"YulFunctionCall","src":"5382:21:30"},"variables":[{"name":"A0","nodeType":"YulTypedName","src":"5376:2:30","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5420:39:30","value":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"5440:3:30"},{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"5449:5:30"},{"kind":"number","nodeType":"YulLiteral","src":"5456:1:30","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5445:3:30"},"nodeType":"YulFunctionCall","src":"5445:13:30"}],"functionName":{"name":"stateElem","nodeType":"YulIdentifier","src":"5430:9:30"},"nodeType":"YulFunctionCall","src":"5430:29:30"},"variables":[{"name":"A1","nodeType":"YulTypedName","src":"5424:2:30","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5476:39:30","value":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"5496:3:30"},{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"5505:5:30"},{"kind":"number","nodeType":"YulLiteral","src":"5512:1:30","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5501:3:30"},"nodeType":"YulFunctionCall","src":"5501:13:30"}],"functionName":{"name":"stateElem","nodeType":"YulIdentifier","src":"5486:9:30"},"nodeType":"YulFunctionCall","src":"5486:29:30"},"variables":[{"name":"A2","nodeType":"YulTypedName","src":"5480:2:30","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5532:39:30","value":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"5552:3:30"},{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"5561:5:30"},{"kind":"number","nodeType":"YulLiteral","src":"5568:1:30","type":"","value":"3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5557:3:30"},"nodeType":"YulFunctionCall","src":"5557:13:30"}],"functionName":{"name":"stateElem","nodeType":"YulIdentifier","src":"5542:9:30"},"nodeType":"YulFunctionCall","src":"5542:29:30"},"variables":[{"name":"A3","nodeType":"YulTypedName","src":"5536:2:30","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5588:39:30","value":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"5608:3:30"},{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"5617:5:30"},{"kind":"number","nodeType":"YulLiteral","src":"5624:1:30","type":"","value":"4"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5613:3:30"},"nodeType":"YulFunctionCall","src":"5613:13:30"}],"functionName":{"name":"stateElem","nodeType":"YulIdentifier","src":"5598:9:30"},"nodeType":"YulFunctionCall","src":"5598:29:30"},"variables":[{"name":"A4","nodeType":"YulTypedName","src":"5592:2:30","type":""}]},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"5658:3:30"},{"name":"start","nodeType":"YulIdentifier","src":"5663:5:30"},{"arguments":[{"name":"A0","nodeType":"YulIdentifier","src":"5674:2:30"},{"arguments":[{"arguments":[{"name":"A1","nodeType":"YulIdentifier","src":"5686:2:30"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5682:3:30"},"nodeType":"YulFunctionCall","src":"5682:7:30"},{"name":"A2","nodeType":"YulIdentifier","src":"5691:2:30"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5678:3:30"},"nodeType":"YulFunctionCall","src":"5678:16:30"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"5670:3:30"},"nodeType":"YulFunctionCall","src":"5670:25:30"}],"functionName":{"name":"setStateElem","nodeType":"YulIdentifier","src":"5645:12:30"},"nodeType":"YulFunctionCall","src":"5645:51:30"},"nodeType":"YulExpressionStatement","src":"5645:51:30"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"5726:3:30"},{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"5735:5:30"},{"kind":"number","nodeType":"YulLiteral","src":"5742:1:30","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5731:3:30"},"nodeType":"YulFunctionCall","src":"5731:13:30"},{"arguments":[{"name":"A1","nodeType":"YulIdentifier","src":"5750:2:30"},{"arguments":[{"arguments":[{"name":"A2","nodeType":"YulIdentifier","src":"5762:2:30"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5758:3:30"},"nodeType":"YulFunctionCall","src":"5758:7:30"},{"name":"A3","nodeType":"YulIdentifier","src":"5767:2:30"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5754:3:30"},"nodeType":"YulFunctionCall","src":"5754:16:30"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"5746:3:30"},"nodeType":"YulFunctionCall","src":"5746:25:30"}],"functionName":{"name":"setStateElem","nodeType":"YulIdentifier","src":"5713:12:30"},"nodeType":"YulFunctionCall","src":"5713:59:30"},"nodeType":"YulExpressionStatement","src":"5713:59:30"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"5802:3:30"},{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"5811:5:30"},{"kind":"number","nodeType":"YulLiteral","src":"5818:1:30","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5807:3:30"},"nodeType":"YulFunctionCall","src":"5807:13:30"},{"arguments":[{"name":"A2","nodeType":"YulIdentifier","src":"5826:2:30"},{"arguments":[{"arguments":[{"name":"A3","nodeType":"YulIdentifier","src":"5838:2:30"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5834:3:30"},"nodeType":"YulFunctionCall","src":"5834:7:30"},{"name":"A4","nodeType":"YulIdentifier","src":"5843:2:30"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5830:3:30"},"nodeType":"YulFunctionCall","src":"5830:16:30"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"5822:3:30"},"nodeType":"YulFunctionCall","src":"5822:25:30"}],"functionName":{"name":"setStateElem","nodeType":"YulIdentifier","src":"5789:12:30"},"nodeType":"YulFunctionCall","src":"5789:59:30"},"nodeType":"YulExpressionStatement","src":"5789:59:30"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"5878:3:30"},{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"5887:5:30"},{"kind":"number","nodeType":"YulLiteral","src":"5894:1:30","type":"","value":"3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5883:3:30"},"nodeType":"YulFunctionCall","src":"5883:13:30"},{"arguments":[{"name":"A3","nodeType":"YulIdentifier","src":"5902:2:30"},{"arguments":[{"arguments":[{"name":"A4","nodeType":"YulIdentifier","src":"5914:2:30"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5910:3:30"},"nodeType":"YulFunctionCall","src":"5910:7:30"},{"name":"A0","nodeType":"YulIdentifier","src":"5919:2:30"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5906:3:30"},"nodeType":"YulFunctionCall","src":"5906:16:30"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"5898:3:30"},"nodeType":"YulFunctionCall","src":"5898:25:30"}],"functionName":{"name":"setStateElem","nodeType":"YulIdentifier","src":"5865:12:30"},"nodeType":"YulFunctionCall","src":"5865:59:30"},"nodeType":"YulExpressionStatement","src":"5865:59:30"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"5954:3:30"},{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"5963:5:30"},{"kind":"number","nodeType":"YulLiteral","src":"5970:1:30","type":"","value":"4"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5959:3:30"},"nodeType":"YulFunctionCall","src":"5959:13:30"},{"arguments":[{"name":"A4","nodeType":"YulIdentifier","src":"5978:2:30"},{"arguments":[{"arguments":[{"name":"A0","nodeType":"YulIdentifier","src":"5990:2:30"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5986:3:30"},"nodeType":"YulFunctionCall","src":"5986:7:30"},{"name":"A1","nodeType":"YulIdentifier","src":"5995:2:30"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5982:3:30"},"nodeType":"YulFunctionCall","src":"5982:16:30"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"5974:3:30"},"nodeType":"YulFunctionCall","src":"5974:25:30"}],"functionName":{"name":"setStateElem","nodeType":"YulIdentifier","src":"5941:12:30"},"nodeType":"YulFunctionCall","src":"5941:59:30"},"nodeType":"YulExpressionStatement","src":"5941:59:30"}]},"name":"innerChi","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"5342:3:30","type":""},{"name":"start","nodeType":"YulTypedName","src":"5347:5:30","type":""}],"src":"5324:690:30"},{"body":{"nodeType":"YulBlock","src":"6165:183:30","statements":[{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"6192:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"6197:1:30","type":"","value":"0"}],"functionName":{"name":"innerChi","nodeType":"YulIdentifier","src":"6183:8:30"},"nodeType":"YulFunctionCall","src":"6183:16:30"},"nodeType":"YulExpressionStatement","src":"6183:16:30"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"6225:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"6230:1:30","type":"","value":"5"}],"functionName":{"name":"innerChi","nodeType":"YulIdentifier","src":"6216:8:30"},"nodeType":"YulFunctionCall","src":"6216:16:30"},"nodeType":"YulExpressionStatement","src":"6216:16:30"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"6258:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"6263:2:30","type":"","value":"10"}],"functionName":{"name":"innerChi","nodeType":"YulIdentifier","src":"6249:8:30"},"nodeType":"YulFunctionCall","src":"6249:17:30"},"nodeType":"YulExpressionStatement","src":"6249:17:30"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"6292:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"6297:2:30","type":"","value":"15"}],"functionName":{"name":"innerChi","nodeType":"YulIdentifier","src":"6283:8:30"},"nodeType":"YulFunctionCall","src":"6283:17:30"},"nodeType":"YulExpressionStatement","src":"6283:17:30"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"6326:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"6331:2:30","type":"","value":"20"}],"functionName":{"name":"innerChi","nodeType":"YulIdentifier","src":"6317:8:30"},"nodeType":"YulFunctionCall","src":"6317:17:30"},"nodeType":"YulExpressionStatement","src":"6317:17:30"}]},"name":"chi","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"6160:3:30","type":""}],"src":"6147:201:30"},{"body":{"nodeType":"YulBlock","src":"6517:292:30","statements":[{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"6585:3:30"}],"functionName":{"name":"thetaRhoPi","nodeType":"YulIdentifier","src":"6574:10:30"},"nodeType":"YulFunctionCall","src":"6574:15:30"},"nodeType":"YulExpressionStatement","src":"6574:15:30"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"6610:3:30"}],"functionName":{"name":"chi","nodeType":"YulIdentifier","src":"6606:3:30"},"nodeType":"YulFunctionCall","src":"6606:8:30"},"nodeType":"YulExpressionStatement","src":"6606:8:30"},{"nodeType":"YulVariableDeclaration","src":"6655:67:30","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6677:3:30","type":"","value":"192"},{"arguments":[{"arguments":[{"name":"roundsPtr","nodeType":"YulIdentifier","src":"6692:9:30"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6707:4:30","type":"","value":"0x03"},{"name":"round","nodeType":"YulIdentifier","src":"6713:5:30"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6703:3:30"},"nodeType":"YulFunctionCall","src":"6703:16:30"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6688:3:30"},"nodeType":"YulFunctionCall","src":"6688:32:30"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6682:5:30"},"nodeType":"YulFunctionCall","src":"6682:39:30"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"6673:3:30"},"nodeType":"YulFunctionCall","src":"6673:49:30"},"variables":[{"name":"roundConst","nodeType":"YulTypedName","src":"6659:10:30","type":""}]},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"6752:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"6757:1:30","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"6774:3:30"},{"kind":"number","nodeType":"YulLiteral","src":"6779:1:30","type":"","value":"0"}],"functionName":{"name":"stateElem","nodeType":"YulIdentifier","src":"6764:9:30"},"nodeType":"YulFunctionCall","src":"6764:17:30"},{"name":"roundConst","nodeType":"YulIdentifier","src":"6783:10:30"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"6760:3:30"},"nodeType":"YulFunctionCall","src":"6760:34:30"}],"functionName":{"name":"setStateElem","nodeType":"YulIdentifier","src":"6739:12:30"},"nodeType":"YulFunctionCall","src":"6739:56:30"},"nodeType":"YulExpressionStatement","src":"6739:56:30"}]},"name":"permute","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"6494:3:30","type":""},{"name":"roundsPtr","nodeType":"YulTypedName","src":"6499:9:30","type":""},{"name":"round","nodeType":"YulTypedName","src":"6510:5:30","type":""}],"src":"6477:332:30"},{"expression":{"arguments":[{"name":"stateMatrixPtr","nodeType":"YulIdentifier","src":"6875:14:30"},{"name":"rcPtr","nodeType":"YulIdentifier","src":"6891:5:30"},{"kind":"number","nodeType":"YulLiteral","src":"6898:1:30","type":"","value":"0"}],"functionName":{"name":"permute","nodeType":"YulIdentifier","src":"6867:7:30"},"nodeType":"YulFunctionCall","src":"6867:33:30"},"nodeType":"YulExpressionStatement","src":"6867:33:30"},{"expression":{"arguments":[{"name":"stateMatrixPtr","nodeType":"YulIdentifier","src":"6921:14:30"},{"name":"rcPtr","nodeType":"YulIdentifier","src":"6937:5:30"},{"kind":"number","nodeType":"YulLiteral","src":"6944:1:30","type":"","value":"1"}],"functionName":{"name":"permute","nodeType":"YulIdentifier","src":"6913:7:30"},"nodeType":"YulFunctionCall","src":"6913:33:30"},"nodeType":"YulExpressionStatement","src":"6913:33:30"},{"expression":{"arguments":[{"name":"stateMatrixPtr","nodeType":"YulIdentifier","src":"6967:14:30"},{"name":"rcPtr","nodeType":"YulIdentifier","src":"6983:5:30"},{"kind":"number","nodeType":"YulLiteral","src":"6990:1:30","type":"","value":"2"}],"functionName":{"name":"permute","nodeType":"YulIdentifier","src":"6959:7:30"},"nodeType":"YulFunctionCall","src":"6959:33:30"},"nodeType":"YulExpressionStatement","src":"6959:33:30"},{"expression":{"arguments":[{"name":"stateMatrixPtr","nodeType":"YulIdentifier","src":"7013:14:30"},{"name":"rcPtr","nodeType":"YulIdentifier","src":"7029:5:30"},{"kind":"number","nodeType":"YulLiteral","src":"7036:1:30","type":"","value":"3"}],"functionName":{"name":"permute","nodeType":"YulIdentifier","src":"7005:7:30"},"nodeType":"YulFunctionCall","src":"7005:33:30"},"nodeType":"YulExpressionStatement","src":"7005:33:30"},{"expression":{"arguments":[{"name":"stateMatrixPtr","nodeType":"YulIdentifier","src":"7059:14:30"},{"name":"rcPtr","nodeType":"YulIdentifier","src":"7075:5:30"},{"kind":"number","nodeType":"YulLiteral","src":"7082:1:30","type":"","value":"4"}],"functionName":{"name":"permute","nodeType":"YulIdentifier","src":"7051:7:30"},"nodeType":"YulFunctionCall","src":"7051:33:30"},"nodeType":"YulExpressionStatement","src":"7051:33:30"},{"expression":{"arguments":[{"name":"stateMatrixPtr","nodeType":"YulIdentifier","src":"7105:14:30"},{"name":"rcPtr","nodeType":"YulIdentifier","src":"7121:5:30"},{"kind":"number","nodeType":"YulLiteral","src":"7128:1:30","type":"","value":"5"}],"functionName":{"name":"permute","nodeType":"YulIdentifier","src":"7097:7:30"},"nodeType":"YulFunctionCall","src":"7097:33:30"},"nodeType":"YulExpressionStatement","src":"7097:33:30"},{"expression":{"arguments":[{"name":"stateMatrixPtr","nodeType":"YulIdentifier","src":"7151:14:30"},{"name":"rcPtr","nodeType":"YulIdentifier","src":"7167:5:30"},{"kind":"number","nodeType":"YulLiteral","src":"7174:1:30","type":"","value":"6"}],"functionName":{"name":"permute","nodeType":"YulIdentifier","src":"7143:7:30"},"nodeType":"YulFunctionCall","src":"7143:33:30"},"nodeType":"YulExpressionStatement","src":"7143:33:30"},{"expression":{"arguments":[{"name":"stateMatrixPtr","nodeType":"YulIdentifier","src":"7197:14:30"},{"name":"rcPtr","nodeType":"YulIdentifier","src":"7213:5:30"},{"kind":"number","nodeType":"YulLiteral","src":"7220:1:30","type":"","value":"7"}],"functionName":{"name":"permute","nodeType":"YulIdentifier","src":"7189:7:30"},"nodeType":"YulFunctionCall","src":"7189:33:30"},"nodeType":"YulExpressionStatement","src":"7189:33:30"},{"expression":{"arguments":[{"name":"stateMatrixPtr","nodeType":"YulIdentifier","src":"7243:14:30"},{"name":"rcPtr","nodeType":"YulIdentifier","src":"7259:5:30"},{"kind":"number","nodeType":"YulLiteral","src":"7266:1:30","type":"","value":"8"}],"functionName":{"name":"permute","nodeType":"YulIdentifier","src":"7235:7:30"},"nodeType":"YulFunctionCall","src":"7235:33:30"},"nodeType":"YulExpressionStatement","src":"7235:33:30"},{"expression":{"arguments":[{"name":"stateMatrixPtr","nodeType":"YulIdentifier","src":"7289:14:30"},{"name":"rcPtr","nodeType":"YulIdentifier","src":"7305:5:30"},{"kind":"number","nodeType":"YulLiteral","src":"7312:1:30","type":"","value":"9"}],"functionName":{"name":"permute","nodeType":"YulIdentifier","src":"7281:7:30"},"nodeType":"YulFunctionCall","src":"7281:33:30"},"nodeType":"YulExpressionStatement","src":"7281:33:30"},{"expression":{"arguments":[{"name":"stateMatrixPtr","nodeType":"YulIdentifier","src":"7335:14:30"},{"name":"rcPtr","nodeType":"YulIdentifier","src":"7351:5:30"},{"kind":"number","nodeType":"YulLiteral","src":"7358:2:30","type":"","value":"10"}],"functionName":{"name":"permute","nodeType":"YulIdentifier","src":"7327:7:30"},"nodeType":"YulFunctionCall","src":"7327:34:30"},"nodeType":"YulExpressionStatement","src":"7327:34:30"},{"expression":{"arguments":[{"name":"stateMatrixPtr","nodeType":"YulIdentifier","src":"7382:14:30"},{"name":"rcPtr","nodeType":"YulIdentifier","src":"7398:5:30"},{"kind":"number","nodeType":"YulLiteral","src":"7405:2:30","type":"","value":"11"}],"functionName":{"name":"permute","nodeType":"YulIdentifier","src":"7374:7:30"},"nodeType":"YulFunctionCall","src":"7374:34:30"},"nodeType":"YulExpressionStatement","src":"7374:34:30"},{"expression":{"arguments":[{"name":"stateMatrixPtr","nodeType":"YulIdentifier","src":"7429:14:30"},{"name":"rcPtr","nodeType":"YulIdentifier","src":"7445:5:30"},{"kind":"number","nodeType":"YulLiteral","src":"7452:2:30","type":"","value":"12"}],"functionName":{"name":"permute","nodeType":"YulIdentifier","src":"7421:7:30"},"nodeType":"YulFunctionCall","src":"7421:34:30"},"nodeType":"YulExpressionStatement","src":"7421:34:30"},{"expression":{"arguments":[{"name":"stateMatrixPtr","nodeType":"YulIdentifier","src":"7476:14:30"},{"name":"rcPtr","nodeType":"YulIdentifier","src":"7492:5:30"},{"kind":"number","nodeType":"YulLiteral","src":"7499:2:30","type":"","value":"13"}],"functionName":{"name":"permute","nodeType":"YulIdentifier","src":"7468:7:30"},"nodeType":"YulFunctionCall","src":"7468:34:30"},"nodeType":"YulExpressionStatement","src":"7468:34:30"},{"expression":{"arguments":[{"name":"stateMatrixPtr","nodeType":"YulIdentifier","src":"7523:14:30"},{"name":"rcPtr","nodeType":"YulIdentifier","src":"7539:5:30"},{"kind":"number","nodeType":"YulLiteral","src":"7546:2:30","type":"","value":"14"}],"functionName":{"name":"permute","nodeType":"YulIdentifier","src":"7515:7:30"},"nodeType":"YulFunctionCall","src":"7515:34:30"},"nodeType":"YulExpressionStatement","src":"7515:34:30"},{"expression":{"arguments":[{"name":"stateMatrixPtr","nodeType":"YulIdentifier","src":"7570:14:30"},{"name":"rcPtr","nodeType":"YulIdentifier","src":"7586:5:30"},{"kind":"number","nodeType":"YulLiteral","src":"7593:2:30","type":"","value":"15"}],"functionName":{"name":"permute","nodeType":"YulIdentifier","src":"7562:7:30"},"nodeType":"YulFunctionCall","src":"7562:34:30"},"nodeType":"YulExpressionStatement","src":"7562:34:30"},{"expression":{"arguments":[{"name":"stateMatrixPtr","nodeType":"YulIdentifier","src":"7617:14:30"},{"name":"rcPtr","nodeType":"YulIdentifier","src":"7633:5:30"},{"kind":"number","nodeType":"YulLiteral","src":"7640:2:30","type":"","value":"16"}],"functionName":{"name":"permute","nodeType":"YulIdentifier","src":"7609:7:30"},"nodeType":"YulFunctionCall","src":"7609:34:30"},"nodeType":"YulExpressionStatement","src":"7609:34:30"},{"expression":{"arguments":[{"name":"stateMatrixPtr","nodeType":"YulIdentifier","src":"7664:14:30"},{"name":"rcPtr","nodeType":"YulIdentifier","src":"7680:5:30"},{"kind":"number","nodeType":"YulLiteral","src":"7687:2:30","type":"","value":"17"}],"functionName":{"name":"permute","nodeType":"YulIdentifier","src":"7656:7:30"},"nodeType":"YulFunctionCall","src":"7656:34:30"},"nodeType":"YulExpressionStatement","src":"7656:34:30"},{"expression":{"arguments":[{"name":"stateMatrixPtr","nodeType":"YulIdentifier","src":"7711:14:30"},{"name":"rcPtr","nodeType":"YulIdentifier","src":"7727:5:30"},{"kind":"number","nodeType":"YulLiteral","src":"7734:2:30","type":"","value":"18"}],"functionName":{"name":"permute","nodeType":"YulIdentifier","src":"7703:7:30"},"nodeType":"YulFunctionCall","src":"7703:34:30"},"nodeType":"YulExpressionStatement","src":"7703:34:30"},{"expression":{"arguments":[{"name":"stateMatrixPtr","nodeType":"YulIdentifier","src":"7758:14:30"},{"name":"rcPtr","nodeType":"YulIdentifier","src":"7774:5:30"},{"kind":"number","nodeType":"YulLiteral","src":"7781:2:30","type":"","value":"19"}],"functionName":{"name":"permute","nodeType":"YulIdentifier","src":"7750:7:30"},"nodeType":"YulFunctionCall","src":"7750:34:30"},"nodeType":"YulExpressionStatement","src":"7750:34:30"},{"expression":{"arguments":[{"name":"stateMatrixPtr","nodeType":"YulIdentifier","src":"7805:14:30"},{"name":"rcPtr","nodeType":"YulIdentifier","src":"7821:5:30"},{"kind":"number","nodeType":"YulLiteral","src":"7828:2:30","type":"","value":"20"}],"functionName":{"name":"permute","nodeType":"YulIdentifier","src":"7797:7:30"},"nodeType":"YulFunctionCall","src":"7797:34:30"},"nodeType":"YulExpressionStatement","src":"7797:34:30"},{"expression":{"arguments":[{"name":"stateMatrixPtr","nodeType":"YulIdentifier","src":"7852:14:30"},{"name":"rcPtr","nodeType":"YulIdentifier","src":"7868:5:30"},{"kind":"number","nodeType":"YulLiteral","src":"7875:2:30","type":"","value":"21"}],"functionName":{"name":"permute","nodeType":"YulIdentifier","src":"7844:7:30"},"nodeType":"YulFunctionCall","src":"7844:34:30"},"nodeType":"YulExpressionStatement","src":"7844:34:30"},{"expression":{"arguments":[{"name":"stateMatrixPtr","nodeType":"YulIdentifier","src":"7899:14:30"},{"name":"rcPtr","nodeType":"YulIdentifier","src":"7915:5:30"},{"kind":"number","nodeType":"YulLiteral","src":"7922:2:30","type":"","value":"22"}],"functionName":{"name":"permute","nodeType":"YulIdentifier","src":"7891:7:30"},"nodeType":"YulFunctionCall","src":"7891:34:30"},"nodeType":"YulExpressionStatement","src":"7891:34:30"},{"expression":{"arguments":[{"name":"stateMatrixPtr","nodeType":"YulIdentifier","src":"7946:14:30"},{"name":"rcPtr","nodeType":"YulIdentifier","src":"7962:5:30"},{"kind":"number","nodeType":"YulLiteral","src":"7969:2:30","type":"","value":"23"}],"functionName":{"name":"permute","nodeType":"YulIdentifier","src":"7938:7:30"},"nodeType":"YulFunctionCall","src":"7938:34:30"},"nodeType":"YulExpressionStatement","src":"7938:34:30"}]},"evmVersion":"london","externalReferences":[{"declaration":47381,"isOffset":false,"isSlot":false,"src":"2150:8:30","valueSize":1},{"declaration":47381,"isOffset":false,"isSlot":false,"src":"2500:8:30","valueSize":1},{"declaration":47390,"isOffset":false,"isSlot":false,"src":"1885:12:30","valueSize":1},{"declaration":47394,"isOffset":false,"isSlot":false,"src":"1934:14:30","valueSize":1}],"id":47397,"nodeType":"InlineAssembly","src":"1753:6229:30"}]},"documentation":{"id":47387,"nodeType":"StructuredDocumentation","src":"1428:82:30","text":"@notice Performs the Keccak-f[1600] permutation on the given 5x5 state matrix."},"implemented":true,"kind":"function","modifiers":[],"name":"permutation","nameLocation":"1524:11:30","parameters":{"id":47391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47390,"mutability":"mutable","name":"_stateMatrix","nameLocation":"1555:12:30","nodeType":"VariableDeclaration","scope":47399,"src":"1536:31:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StateMatrix_$47386_memory_ptr","typeString":"struct LibKeccak.StateMatrix"},"typeName":{"id":47389,"nodeType":"UserDefinedTypeName","pathNode":{"id":47388,"name":"StateMatrix","nodeType":"IdentifierPath","referencedDeclaration":47386,"src":"1536:11:30"},"referencedDeclaration":47386,"src":"1536:11:30","typeDescriptions":{"typeIdentifier":"t_struct$_StateMatrix_$47386_storage_ptr","typeString":"struct LibKeccak.StateMatrix"}},"visibility":"internal"}],"src":"1535:33:30"},"returnParameters":{"id":47392,"nodeType":"ParameterList","parameters":[],"src":"1583:0:30"},"scope":47442,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":47410,"nodeType":"FunctionDefinition","src":"8054:2379:30","nodes":[],"body":{"id":47409,"nodeType":"Block","src":"8138:2295:30","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"8157:2270:30","statements":[{"body":{"nodeType":"YulBlock","src":"8254:16:30","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8263:1:30","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8266:1:30","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8256:6:30"},"nodeType":"YulFunctionCall","src":"8256:12:30"},"nodeType":"YulExpressionStatement","src":"8256:12:30"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_input","nodeType":"YulIdentifier","src":"8239:6:30"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8233:5:30"},"nodeType":"YulFunctionCall","src":"8233:13:30"},{"kind":"number","nodeType":"YulLiteral","src":"8248:3:30","type":"","value":"136"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"8230:2:30"},"nodeType":"YulFunctionCall","src":"8230:22:30"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8223:6:30"},"nodeType":"YulFunctionCall","src":"8223:30:30"},"nodeType":"YulIf","src":"8220:50:30"},{"nodeType":"YulVariableDeclaration","src":"8284:32:30","value":{"arguments":[{"name":"_input","nodeType":"YulIdentifier","src":"8303:6:30"},{"kind":"number","nodeType":"YulLiteral","src":"8311:4:30","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8299:3:30"},"nodeType":"YulFunctionCall","src":"8299:17:30"},"variables":[{"name":"dataPtr","nodeType":"YulTypedName","src":"8288:7:30","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8329:39:30","value":{"arguments":[{"name":"_stateMatrix","nodeType":"YulIdentifier","src":"8349:12:30"},{"kind":"number","nodeType":"YulLiteral","src":"8363:4:30","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8345:3:30"},"nodeType":"YulFunctionCall","src":"8345:23:30"},"variables":[{"name":"statePtr","nodeType":"YulTypedName","src":"8333:8:30","type":""}]},{"body":{"nodeType":"YulBlock","src":"8502:85:30","statements":[{"expression":{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"8531:3:30"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8540:4:30","type":"","value":"0x05"},{"name":"idx","nodeType":"YulIdentifier","src":"8546:3:30"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8536:3:30"},"nodeType":"YulFunctionCall","src":"8536:14:30"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8527:3:30"},"nodeType":"YulFunctionCall","src":"8527:24:30"},{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"8557:4:30"},{"name":"U64_MASK","nodeType":"YulIdentifier","src":"8563:8:30"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8553:3:30"},"nodeType":"YulFunctionCall","src":"8553:19:30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8520:6:30"},"nodeType":"YulFunctionCall","src":"8520:53:30"},"nodeType":"YulExpressionStatement","src":"8520:53:30"}]},"name":"setStateElem","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"8486:3:30","type":""},{"name":"idx","nodeType":"YulTypedName","src":"8491:3:30","type":""},{"name":"data","nodeType":"YulTypedName","src":"8496:4:30","type":""}],"src":"8464:123:30"},{"body":{"nodeType":"YulBlock","src":"8724:71:30","statements":[{"nodeType":"YulAssignment","src":"8742:39:30","value":{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"8760:3:30"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8769:4:30","type":"","value":"0x05"},{"name":"idx","nodeType":"YulIdentifier","src":"8775:3:30"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8765:3:30"},"nodeType":"YulFunctionCall","src":"8765:14:30"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8756:3:30"},"nodeType":"YulFunctionCall","src":"8756:24:30"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8750:5:30"},"nodeType":"YulFunctionCall","src":"8750:31:30"},"variableNames":[{"name":"elem","nodeType":"YulIdentifier","src":"8742:4:30"}]}]},"name":"stateElem","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"8706:3:30","type":""},{"name":"idx","nodeType":"YulTypedName","src":"8711:3:30","type":""}],"returnVariables":[{"name":"elem","nodeType":"YulTypedName","src":"8719:4:30","type":""}],"src":"8687:108:30"},{"body":{"nodeType":"YulBlock","src":"8907:678:30","statements":[{"nodeType":"YulVariableDeclaration","src":"8925:47:30","value":{"arguments":[{"arguments":[{"name":"inputPtr","nodeType":"YulIdentifier","src":"8949:8:30"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8963:1:30","type":"","value":"3"},{"name":"idx","nodeType":"YulIdentifier","src":"8966:3:30"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8959:3:30"},"nodeType":"YulFunctionCall","src":"8959:11:30"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8945:3:30"},"nodeType":"YulFunctionCall","src":"8945:26:30"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8939:5:30"},"nodeType":"YulFunctionCall","src":"8939:33:30"},"variables":[{"name":"boWord","nodeType":"YulTypedName","src":"8929:6:30","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8990:489:30","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9088:2:30","type":"","value":"56"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9097:1:30","type":"","value":"7"},{"name":"boWord","nodeType":"YulIdentifier","src":"9100:6:30"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"9092:4:30"},"nodeType":"YulFunctionCall","src":"9092:15:30"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9084:3:30"},"nodeType":"YulFunctionCall","src":"9084:24:30"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9114:2:30","type":"","value":"48"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9123:1:30","type":"","value":"6"},{"name":"boWord","nodeType":"YulIdentifier","src":"9126:6:30"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"9118:4:30"},"nodeType":"YulFunctionCall","src":"9118:15:30"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9110:3:30"},"nodeType":"YulFunctionCall","src":"9110:24:30"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"9081:2:30"},"nodeType":"YulFunctionCall","src":"9081:54:30"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9172:2:30","type":"","value":"40"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9181:1:30","type":"","value":"5"},{"name":"boWord","nodeType":"YulIdentifier","src":"9184:6:30"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"9176:4:30"},"nodeType":"YulFunctionCall","src":"9176:15:30"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9168:3:30"},"nodeType":"YulFunctionCall","src":"9168:24:30"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9198:2:30","type":"","value":"32"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9207:1:30","type":"","value":"4"},{"name":"boWord","nodeType":"YulIdentifier","src":"9210:6:30"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"9202:4:30"},"nodeType":"YulFunctionCall","src":"9202:15:30"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9194:3:30"},"nodeType":"YulFunctionCall","src":"9194:24:30"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"9165:2:30"},"nodeType":"YulFunctionCall","src":"9165:54:30"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"9049:2:30"},"nodeType":"YulFunctionCall","src":"9049:196:30"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9310:2:30","type":"","value":"24"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9319:1:30","type":"","value":"3"},{"name":"boWord","nodeType":"YulIdentifier","src":"9322:6:30"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"9314:4:30"},"nodeType":"YulFunctionCall","src":"9314:15:30"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9306:3:30"},"nodeType":"YulFunctionCall","src":"9306:24:30"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9336:2:30","type":"","value":"16"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9345:1:30","type":"","value":"2"},{"name":"boWord","nodeType":"YulIdentifier","src":"9348:6:30"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"9340:4:30"},"nodeType":"YulFunctionCall","src":"9340:15:30"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9332:3:30"},"nodeType":"YulFunctionCall","src":"9332:24:30"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"9303:2:30"},"nodeType":"YulFunctionCall","src":"9303:54:30"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9394:1:30","type":"","value":"8"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9402:1:30","type":"","value":"1"},{"name":"boWord","nodeType":"YulIdentifier","src":"9405:6:30"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"9397:4:30"},"nodeType":"YulFunctionCall","src":"9397:15:30"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9390:3:30"},"nodeType":"YulFunctionCall","src":"9390:23:30"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9420:1:30","type":"","value":"0"},{"name":"boWord","nodeType":"YulIdentifier","src":"9423:6:30"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"9415:4:30"},"nodeType":"YulFunctionCall","src":"9415:15:30"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"9387:2:30"},"nodeType":"YulFunctionCall","src":"9387:44:30"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"9271:2:30"},"nodeType":"YulFunctionCall","src":"9271:186:30"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"9021:2:30"},"nodeType":"YulFunctionCall","src":"9021:458:30"},"variables":[{"name":"res","nodeType":"YulTypedName","src":"8994:3:30","type":""}]},{"expression":{"arguments":[{"name":"stateMatrixPtr","nodeType":"YulIdentifier","src":"9509:14:30"},{"name":"idx","nodeType":"YulIdentifier","src":"9525:3:30"},{"arguments":[{"arguments":[{"name":"stateMatrixPtr","nodeType":"YulIdentifier","src":"9544:14:30"},{"name":"idx","nodeType":"YulIdentifier","src":"9560:3:30"}],"functionName":{"name":"stateElem","nodeType":"YulIdentifier","src":"9534:9:30"},"nodeType":"YulFunctionCall","src":"9534:30:30"},{"name":"res","nodeType":"YulIdentifier","src":"9566:3:30"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"9530:3:30"},"nodeType":"YulFunctionCall","src":"9530:40:30"}],"functionName":{"name":"setStateElem","nodeType":"YulIdentifier","src":"9496:12:30"},"nodeType":"YulFunctionCall","src":"9496:75:30"},"nodeType":"YulExpressionStatement","src":"9496:75:30"}]},"name":"absorbInner","nodeType":"YulFunctionDefinition","parameters":[{"name":"stateMatrixPtr","nodeType":"YulTypedName","src":"8876:14:30","type":""},{"name":"inputPtr","nodeType":"YulTypedName","src":"8892:8:30","type":""},{"name":"idx","nodeType":"YulTypedName","src":"8902:3:30","type":""}],"src":"8855:730:30"},{"expression":{"arguments":[{"name":"statePtr","nodeType":"YulIdentifier","src":"9653:8:30"},{"name":"dataPtr","nodeType":"YulIdentifier","src":"9663:7:30"},{"kind":"number","nodeType":"YulLiteral","src":"9672:1:30","type":"","value":"0"}],"functionName":{"name":"absorbInner","nodeType":"YulIdentifier","src":"9641:11:30"},"nodeType":"YulFunctionCall","src":"9641:33:30"},"nodeType":"YulExpressionStatement","src":"9641:33:30"},{"expression":{"arguments":[{"name":"statePtr","nodeType":"YulIdentifier","src":"9699:8:30"},{"name":"dataPtr","nodeType":"YulIdentifier","src":"9709:7:30"},{"kind":"number","nodeType":"YulLiteral","src":"9718:1:30","type":"","value":"1"}],"functionName":{"name":"absorbInner","nodeType":"YulIdentifier","src":"9687:11:30"},"nodeType":"YulFunctionCall","src":"9687:33:30"},"nodeType":"YulExpressionStatement","src":"9687:33:30"},{"expression":{"arguments":[{"name":"statePtr","nodeType":"YulIdentifier","src":"9745:8:30"},{"name":"dataPtr","nodeType":"YulIdentifier","src":"9755:7:30"},{"kind":"number","nodeType":"YulLiteral","src":"9764:1:30","type":"","value":"2"}],"functionName":{"name":"absorbInner","nodeType":"YulIdentifier","src":"9733:11:30"},"nodeType":"YulFunctionCall","src":"9733:33:30"},"nodeType":"YulExpressionStatement","src":"9733:33:30"},{"expression":{"arguments":[{"name":"statePtr","nodeType":"YulIdentifier","src":"9791:8:30"},{"name":"dataPtr","nodeType":"YulIdentifier","src":"9801:7:30"},{"kind":"number","nodeType":"YulLiteral","src":"9810:1:30","type":"","value":"3"}],"functionName":{"name":"absorbInner","nodeType":"YulIdentifier","src":"9779:11:30"},"nodeType":"YulFunctionCall","src":"9779:33:30"},"nodeType":"YulExpressionStatement","src":"9779:33:30"},{"expression":{"arguments":[{"name":"statePtr","nodeType":"YulIdentifier","src":"9837:8:30"},{"name":"dataPtr","nodeType":"YulIdentifier","src":"9847:7:30"},{"kind":"number","nodeType":"YulLiteral","src":"9856:1:30","type":"","value":"4"}],"functionName":{"name":"absorbInner","nodeType":"YulIdentifier","src":"9825:11:30"},"nodeType":"YulFunctionCall","src":"9825:33:30"},"nodeType":"YulExpressionStatement","src":"9825:33:30"},{"expression":{"arguments":[{"name":"statePtr","nodeType":"YulIdentifier","src":"9883:8:30"},{"name":"dataPtr","nodeType":"YulIdentifier","src":"9893:7:30"},{"kind":"number","nodeType":"YulLiteral","src":"9902:1:30","type":"","value":"5"}],"functionName":{"name":"absorbInner","nodeType":"YulIdentifier","src":"9871:11:30"},"nodeType":"YulFunctionCall","src":"9871:33:30"},"nodeType":"YulExpressionStatement","src":"9871:33:30"},{"expression":{"arguments":[{"name":"statePtr","nodeType":"YulIdentifier","src":"9929:8:30"},{"name":"dataPtr","nodeType":"YulIdentifier","src":"9939:7:30"},{"kind":"number","nodeType":"YulLiteral","src":"9948:1:30","type":"","value":"6"}],"functionName":{"name":"absorbInner","nodeType":"YulIdentifier","src":"9917:11:30"},"nodeType":"YulFunctionCall","src":"9917:33:30"},"nodeType":"YulExpressionStatement","src":"9917:33:30"},{"expression":{"arguments":[{"name":"statePtr","nodeType":"YulIdentifier","src":"9975:8:30"},{"name":"dataPtr","nodeType":"YulIdentifier","src":"9985:7:30"},{"kind":"number","nodeType":"YulLiteral","src":"9994:1:30","type":"","value":"7"}],"functionName":{"name":"absorbInner","nodeType":"YulIdentifier","src":"9963:11:30"},"nodeType":"YulFunctionCall","src":"9963:33:30"},"nodeType":"YulExpressionStatement","src":"9963:33:30"},{"expression":{"arguments":[{"name":"statePtr","nodeType":"YulIdentifier","src":"10021:8:30"},{"name":"dataPtr","nodeType":"YulIdentifier","src":"10031:7:30"},{"kind":"number","nodeType":"YulLiteral","src":"10040:1:30","type":"","value":"8"}],"functionName":{"name":"absorbInner","nodeType":"YulIdentifier","src":"10009:11:30"},"nodeType":"YulFunctionCall","src":"10009:33:30"},"nodeType":"YulExpressionStatement","src":"10009:33:30"},{"expression":{"arguments":[{"name":"statePtr","nodeType":"YulIdentifier","src":"10067:8:30"},{"name":"dataPtr","nodeType":"YulIdentifier","src":"10077:7:30"},{"kind":"number","nodeType":"YulLiteral","src":"10086:1:30","type":"","value":"9"}],"functionName":{"name":"absorbInner","nodeType":"YulIdentifier","src":"10055:11:30"},"nodeType":"YulFunctionCall","src":"10055:33:30"},"nodeType":"YulExpressionStatement","src":"10055:33:30"},{"expression":{"arguments":[{"name":"statePtr","nodeType":"YulIdentifier","src":"10113:8:30"},{"name":"dataPtr","nodeType":"YulIdentifier","src":"10123:7:30"},{"kind":"number","nodeType":"YulLiteral","src":"10132:2:30","type":"","value":"10"}],"functionName":{"name":"absorbInner","nodeType":"YulIdentifier","src":"10101:11:30"},"nodeType":"YulFunctionCall","src":"10101:34:30"},"nodeType":"YulExpressionStatement","src":"10101:34:30"},{"expression":{"arguments":[{"name":"statePtr","nodeType":"YulIdentifier","src":"10160:8:30"},{"name":"dataPtr","nodeType":"YulIdentifier","src":"10170:7:30"},{"kind":"number","nodeType":"YulLiteral","src":"10179:2:30","type":"","value":"11"}],"functionName":{"name":"absorbInner","nodeType":"YulIdentifier","src":"10148:11:30"},"nodeType":"YulFunctionCall","src":"10148:34:30"},"nodeType":"YulExpressionStatement","src":"10148:34:30"},{"expression":{"arguments":[{"name":"statePtr","nodeType":"YulIdentifier","src":"10207:8:30"},{"name":"dataPtr","nodeType":"YulIdentifier","src":"10217:7:30"},{"kind":"number","nodeType":"YulLiteral","src":"10226:2:30","type":"","value":"12"}],"functionName":{"name":"absorbInner","nodeType":"YulIdentifier","src":"10195:11:30"},"nodeType":"YulFunctionCall","src":"10195:34:30"},"nodeType":"YulExpressionStatement","src":"10195:34:30"},{"expression":{"arguments":[{"name":"statePtr","nodeType":"YulIdentifier","src":"10254:8:30"},{"name":"dataPtr","nodeType":"YulIdentifier","src":"10264:7:30"},{"kind":"number","nodeType":"YulLiteral","src":"10273:2:30","type":"","value":"13"}],"functionName":{"name":"absorbInner","nodeType":"YulIdentifier","src":"10242:11:30"},"nodeType":"YulFunctionCall","src":"10242:34:30"},"nodeType":"YulExpressionStatement","src":"10242:34:30"},{"expression":{"arguments":[{"name":"statePtr","nodeType":"YulIdentifier","src":"10301:8:30"},{"name":"dataPtr","nodeType":"YulIdentifier","src":"10311:7:30"},{"kind":"number","nodeType":"YulLiteral","src":"10320:2:30","type":"","value":"14"}],"functionName":{"name":"absorbInner","nodeType":"YulIdentifier","src":"10289:11:30"},"nodeType":"YulFunctionCall","src":"10289:34:30"},"nodeType":"YulExpressionStatement","src":"10289:34:30"},{"expression":{"arguments":[{"name":"statePtr","nodeType":"YulIdentifier","src":"10348:8:30"},{"name":"dataPtr","nodeType":"YulIdentifier","src":"10358:7:30"},{"kind":"number","nodeType":"YulLiteral","src":"10367:2:30","type":"","value":"15"}],"functionName":{"name":"absorbInner","nodeType":"YulIdentifier","src":"10336:11:30"},"nodeType":"YulFunctionCall","src":"10336:34:30"},"nodeType":"YulExpressionStatement","src":"10336:34:30"},{"expression":{"arguments":[{"name":"statePtr","nodeType":"YulIdentifier","src":"10395:8:30"},{"name":"dataPtr","nodeType":"YulIdentifier","src":"10405:7:30"},{"kind":"number","nodeType":"YulLiteral","src":"10414:2:30","type":"","value":"16"}],"functionName":{"name":"absorbInner","nodeType":"YulIdentifier","src":"10383:11:30"},"nodeType":"YulFunctionCall","src":"10383:34:30"},"nodeType":"YulExpressionStatement","src":"10383:34:30"}]},"evmVersion":"london","externalReferences":[{"declaration":47381,"isOffset":false,"isSlot":false,"src":"8563:8:30","valueSize":1},{"declaration":47405,"isOffset":false,"isSlot":false,"src":"8239:6:30","valueSize":1},{"declaration":47405,"isOffset":false,"isSlot":false,"src":"8303:6:30","valueSize":1},{"declaration":47403,"isOffset":false,"isSlot":false,"src":"8349:12:30","valueSize":1}],"id":47408,"nodeType":"InlineAssembly","src":"8148:2279:30"}]},"documentation":{"id":47400,"nodeType":"StructuredDocumentation","src":"7994:55:30","text":"@notice Absorb a fixed-sized block into the sponge."},"implemented":true,"kind":"function","modifiers":[],"name":"absorb","nameLocation":"8063:6:30","parameters":{"id":47406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47403,"mutability":"mutable","name":"_stateMatrix","nameLocation":"8089:12:30","nodeType":"VariableDeclaration","scope":47410,"src":"8070:31:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StateMatrix_$47386_memory_ptr","typeString":"struct LibKeccak.StateMatrix"},"typeName":{"id":47402,"nodeType":"UserDefinedTypeName","pathNode":{"id":47401,"name":"StateMatrix","nodeType":"IdentifierPath","referencedDeclaration":47386,"src":"8070:11:30"},"referencedDeclaration":47386,"src":"8070:11:30","typeDescriptions":{"typeIdentifier":"t_struct$_StateMatrix_$47386_storage_ptr","typeString":"struct LibKeccak.StateMatrix"}},"visibility":"internal"},{"constant":false,"id":47405,"mutability":"mutable","name":"_input","nameLocation":"8116:6:30","nodeType":"VariableDeclaration","scope":47410,"src":"8103:19:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":47404,"name":"bytes","nodeType":"ElementaryTypeName","src":"8103:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8069:54:30"},"returnParameters":{"id":47407,"nodeType":"ParameterList","parameters":[],"src":"8138:0:30"},"scope":47442,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":47421,"nodeType":"FunctionDefinition","src":"10522:1235:30","nodes":[],"body":{"id":47420,"nodeType":"Block","src":"10610:1147:30","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"10629:1122:30","statements":[{"body":{"nodeType":"YulBlock","src":"10707:63:30","statements":[{"nodeType":"YulAssignment","src":"10725:31:30","value":{"arguments":[{"arguments":[{"name":"a","nodeType":"YulIdentifier","src":"10740:1:30"},{"name":"b","nodeType":"YulIdentifier","src":"10743:1:30"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10736:3:30"},"nodeType":"YulFunctionCall","src":"10736:9:30"},{"name":"U64_MASK","nodeType":"YulIdentifier","src":"10747:8:30"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10732:3:30"},"nodeType":"YulFunctionCall","src":"10732:24:30"},"variableNames":[{"name":"val","nodeType":"YulIdentifier","src":"10725:3:30"}]}]},"name":"shl64","nodeType":"YulFunctionDefinition","parameters":[{"name":"a","nodeType":"YulTypedName","src":"10694:1:30","type":""},{"name":"b","nodeType":"YulTypedName","src":"10697:1:30","type":""}],"returnVariables":[{"name":"val","nodeType":"YulTypedName","src":"10703:3:30","type":""}],"src":"10679:91:30"},{"body":{"nodeType":"YulBlock","src":"10896:299:30","statements":[{"nodeType":"YulAssignment","src":"10914:93:30","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10936:1:30","type":"","value":"8"},{"name":"beVal","nodeType":"YulIdentifier","src":"10939:5:30"}],"functionName":{"name":"shl64","nodeType":"YulIdentifier","src":"10930:5:30"},"nodeType":"YulFunctionCall","src":"10930:15:30"},{"kind":"number","nodeType":"YulLiteral","src":"10947:18:30","type":"","value":"0xFF00FF00FF00FF00"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10926:3:30"},"nodeType":"YulFunctionCall","src":"10926:40:30"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10976:1:30","type":"","value":"8"},{"name":"beVal","nodeType":"YulIdentifier","src":"10979:5:30"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"10972:3:30"},"nodeType":"YulFunctionCall","src":"10972:13:30"},{"kind":"number","nodeType":"YulLiteral","src":"10987:18:30","type":"","value":"0x00FF00FF00FF00FF"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10968:3:30"},"nodeType":"YulFunctionCall","src":"10968:38:30"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"10923:2:30"},"nodeType":"YulFunctionCall","src":"10923:84:30"},"variableNames":[{"name":"beVal","nodeType":"YulIdentifier","src":"10914:5:30"}]},{"nodeType":"YulAssignment","src":"11024:95:30","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11046:2:30","type":"","value":"16"},{"name":"beVal","nodeType":"YulIdentifier","src":"11050:5:30"}],"functionName":{"name":"shl64","nodeType":"YulIdentifier","src":"11040:5:30"},"nodeType":"YulFunctionCall","src":"11040:16:30"},{"kind":"number","nodeType":"YulLiteral","src":"11058:18:30","type":"","value":"0xFFFF0000FFFF0000"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11036:3:30"},"nodeType":"YulFunctionCall","src":"11036:41:30"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11087:2:30","type":"","value":"16"},{"name":"beVal","nodeType":"YulIdentifier","src":"11091:5:30"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"11083:3:30"},"nodeType":"YulFunctionCall","src":"11083:14:30"},{"kind":"number","nodeType":"YulLiteral","src":"11099:18:30","type":"","value":"0x0000FFFF0000FFFF"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11079:3:30"},"nodeType":"YulFunctionCall","src":"11079:39:30"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"11033:2:30"},"nodeType":"YulFunctionCall","src":"11033:86:30"},"variableNames":[{"name":"beVal","nodeType":"YulIdentifier","src":"11024:5:30"}]},{"nodeType":"YulAssignment","src":"11136:45:30","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11154:2:30","type":"","value":"32"},{"name":"beVal","nodeType":"YulIdentifier","src":"11158:5:30"}],"functionName":{"name":"shl64","nodeType":"YulIdentifier","src":"11148:5:30"},"nodeType":"YulFunctionCall","src":"11148:16:30"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11170:2:30","type":"","value":"32"},{"name":"beVal","nodeType":"YulIdentifier","src":"11174:5:30"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"11166:3:30"},"nodeType":"YulFunctionCall","src":"11166:14:30"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"11145:2:30"},"nodeType":"YulFunctionCall","src":"11145:36:30"},"variableNames":[{"name":"leVal","nodeType":"YulIdentifier","src":"11136:5:30"}]}]},"name":"toLE","nodeType":"YulFunctionDefinition","parameters":[{"name":"beVal","nodeType":"YulTypedName","src":"10880:5:30","type":""}],"returnVariables":[{"name":"leVal","nodeType":"YulTypedName","src":"10890:5:30","type":""}],"src":"10866:329:30"},{"body":{"nodeType":"YulBlock","src":"11332:71:30","statements":[{"nodeType":"YulAssignment","src":"11350:39:30","value":{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"11368:3:30"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11377:4:30","type":"","value":"0x05"},{"name":"idx","nodeType":"YulIdentifier","src":"11383:3:30"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11373:3:30"},"nodeType":"YulFunctionCall","src":"11373:14:30"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11364:3:30"},"nodeType":"YulFunctionCall","src":"11364:24:30"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11358:5:30"},"nodeType":"YulFunctionCall","src":"11358:31:30"},"variableNames":[{"name":"elem","nodeType":"YulIdentifier","src":"11350:4:30"}]}]},"name":"stateElem","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"11314:3:30","type":""},{"name":"idx","nodeType":"YulTypedName","src":"11319:3:30","type":""}],"returnVariables":[{"name":"elem","nodeType":"YulTypedName","src":"11327:4:30","type":""}],"src":"11295:108:30"},{"nodeType":"YulVariableDeclaration","src":"11417:45:30","value":{"arguments":[{"name":"_stateMatrix","nodeType":"YulIdentifier","src":"11443:12:30"},{"kind":"number","nodeType":"YulLiteral","src":"11457:4:30","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11439:3:30"},"nodeType":"YulFunctionCall","src":"11439:23:30"},"variables":[{"name":"stateMatrixPtr","nodeType":"YulTypedName","src":"11421:14:30","type":""}]},{"nodeType":"YulAssignment","src":"11475:266:30","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11531:3:30","type":"","value":"192"},{"arguments":[{"arguments":[{"name":"stateMatrixPtr","nodeType":"YulIdentifier","src":"11551:14:30"},{"kind":"number","nodeType":"YulLiteral","src":"11567:1:30","type":"","value":"0"}],"functionName":{"name":"stateElem","nodeType":"YulIdentifier","src":"11541:9:30"},"nodeType":"YulFunctionCall","src":"11541:28:30"}],"functionName":{"name":"toLE","nodeType":"YulIdentifier","src":"11536:4:30"},"nodeType":"YulFunctionCall","src":"11536:34:30"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11527:3:30"},"nodeType":"YulFunctionCall","src":"11527:44:30"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11577:3:30","type":"","value":"128"},{"arguments":[{"arguments":[{"name":"stateMatrixPtr","nodeType":"YulIdentifier","src":"11597:14:30"},{"kind":"number","nodeType":"YulLiteral","src":"11613:1:30","type":"","value":"1"}],"functionName":{"name":"stateElem","nodeType":"YulIdentifier","src":"11587:9:30"},"nodeType":"YulFunctionCall","src":"11587:28:30"}],"functionName":{"name":"toLE","nodeType":"YulIdentifier","src":"11582:4:30"},"nodeType":"YulFunctionCall","src":"11582:34:30"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11573:3:30"},"nodeType":"YulFunctionCall","src":"11573:44:30"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"11524:2:30"},"nodeType":"YulFunctionCall","src":"11524:94:30"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11647:2:30","type":"","value":"64"},{"arguments":[{"arguments":[{"name":"stateMatrixPtr","nodeType":"YulIdentifier","src":"11666:14:30"},{"kind":"number","nodeType":"YulLiteral","src":"11682:1:30","type":"","value":"2"}],"functionName":{"name":"stateElem","nodeType":"YulIdentifier","src":"11656:9:30"},"nodeType":"YulFunctionCall","src":"11656:28:30"}],"functionName":{"name":"toLE","nodeType":"YulIdentifier","src":"11651:4:30"},"nodeType":"YulFunctionCall","src":"11651:34:30"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11643:3:30"},"nodeType":"YulFunctionCall","src":"11643:43:30"},{"arguments":[{"arguments":[{"name":"stateMatrixPtr","nodeType":"YulIdentifier","src":"11703:14:30"},{"kind":"number","nodeType":"YulLiteral","src":"11719:1:30","type":"","value":"3"}],"functionName":{"name":"stateElem","nodeType":"YulIdentifier","src":"11693:9:30"},"nodeType":"YulFunctionCall","src":"11693:28:30"}],"functionName":{"name":"toLE","nodeType":"YulIdentifier","src":"11688:4:30"},"nodeType":"YulFunctionCall","src":"11688:34:30"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"11640:2:30"},"nodeType":"YulFunctionCall","src":"11640:83:30"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"11500:2:30"},"nodeType":"YulFunctionCall","src":"11500:241:30"},"variableNames":[{"name":"hash_","nodeType":"YulIdentifier","src":"11475:5:30"}]}]},"evmVersion":"london","externalReferences":[{"declaration":47381,"isOffset":false,"isSlot":false,"src":"10747:8:30","valueSize":1},{"declaration":47414,"isOffset":false,"isSlot":false,"src":"11443:12:30","valueSize":1},{"declaration":47417,"isOffset":false,"isSlot":false,"src":"11475:5:30","valueSize":1}],"id":47419,"nodeType":"InlineAssembly","src":"10620:1131:30"}]},"documentation":{"id":47411,"nodeType":"StructuredDocumentation","src":"10439:78:30","text":"@notice Squeezes the final keccak256 digest from the passed `StateMatrix`."},"implemented":true,"kind":"function","modifiers":[],"name":"squeeze","nameLocation":"10531:7:30","parameters":{"id":47415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47414,"mutability":"mutable","name":"_stateMatrix","nameLocation":"10558:12:30","nodeType":"VariableDeclaration","scope":47421,"src":"10539:31:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StateMatrix_$47386_memory_ptr","typeString":"struct LibKeccak.StateMatrix"},"typeName":{"id":47413,"nodeType":"UserDefinedTypeName","pathNode":{"id":47412,"name":"StateMatrix","nodeType":"IdentifierPath","referencedDeclaration":47386,"src":"10539:11:30"},"referencedDeclaration":47386,"src":"10539:11:30","typeDescriptions":{"typeIdentifier":"t_struct$_StateMatrix_$47386_storage_ptr","typeString":"struct LibKeccak.StateMatrix"}},"visibility":"internal"}],"src":"10538:33:30"},"returnParameters":{"id":47418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47417,"mutability":"mutable","name":"hash_","nameLocation":"10603:5:30","nodeType":"VariableDeclaration","scope":47421,"src":"10595:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47416,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10595:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10594:15:30"},"scope":47442,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":47431,"nodeType":"FunctionDefinition","src":"11884:2908:30","nodes":[],"body":{"id":47430,"nodeType":"Block","src":"11964:2828:30","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"11983:2803:30","statements":[{"nodeType":"YulAssignment","src":"11997:22:30","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12014:4:30","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12008:5:30"},"nodeType":"YulFunctionCall","src":"12008:11:30"},"variableNames":[{"name":"padded_","nodeType":"YulIdentifier","src":"11997:7:30"}]},{"nodeType":"YulVariableDeclaration","src":"12084:23:30","value":{"name":"_data.length","nodeType":"YulIdentifier","src":"12095:12:30"},"variables":[{"name":"len","nodeType":"YulTypedName","src":"12088:3:30","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12121:33:30","value":{"arguments":[{"name":"padded_","nodeType":"YulIdentifier","src":"12140:7:30"},{"kind":"number","nodeType":"YulLiteral","src":"12149:4:30","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12136:3:30"},"nodeType":"YulFunctionCall","src":"12136:18:30"},"variables":[{"name":"dataPtr","nodeType":"YulTypedName","src":"12125:7:30","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12167:31:30","value":{"arguments":[{"name":"dataPtr","nodeType":"YulIdentifier","src":"12185:7:30"},{"name":"len","nodeType":"YulIdentifier","src":"12194:3:30"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12181:3:30"},"nodeType":"YulFunctionCall","src":"12181:17:30"},"variables":[{"name":"endPtr","nodeType":"YulTypedName","src":"12171:6:30","type":""}]},{"expression":{"arguments":[{"name":"dataPtr","nodeType":"YulIdentifier","src":"12267:7:30"},{"name":"_data.offset","nodeType":"YulIdentifier","src":"12276:12:30"},{"name":"len","nodeType":"YulIdentifier","src":"12290:3:30"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"12254:12:30"},"nodeType":"YulFunctionCall","src":"12254:40:30"},"nodeType":"YulExpressionStatement","src":"12254:40:30"},{"nodeType":"YulVariableDeclaration","src":"12308:46:30","value":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"12332:3:30"},{"name":"BLOCK_SIZE_BYTES","nodeType":"YulIdentifier","src":"12337:16:30"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"12328:3:30"},"nodeType":"YulFunctionCall","src":"12328:26:30"},"variables":[{"name":"modBlockSize","nodeType":"YulTypedName","src":"12312:12:30","type":""}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"12410:773:30","statements":[{"expression":{"arguments":[{"name":"endPtr","nodeType":"YulIdentifier","src":"12779:6:30"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"12787:12:30"},"nodeType":"YulFunctionCall","src":"12787:14:30"},{"kind":"number","nodeType":"YulLiteral","src":"12803:4:30","type":"","value":"0x88"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"12766:12:30"},"nodeType":"YulFunctionCall","src":"12766:42:30"},"nodeType":"YulExpressionStatement","src":"12766:42:30"},{"expression":{"arguments":[{"name":"endPtr","nodeType":"YulIdentifier","src":"12950:6:30"},{"kind":"number","nodeType":"YulLiteral","src":"12958:4:30","type":"","value":"0x01"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"12942:7:30"},"nodeType":"YulFunctionCall","src":"12942:21:30"},"nodeType":"YulExpressionStatement","src":"12942:21:30"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"endPtr","nodeType":"YulIdentifier","src":"12996:6:30"},{"name":"BLOCK_SIZE_BYTES","nodeType":"YulIdentifier","src":"13004:16:30"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12992:3:30"},"nodeType":"YulFunctionCall","src":"12992:29:30"},{"kind":"number","nodeType":"YulLiteral","src":"13023:4:30","type":"","value":"0x01"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12988:3:30"},"nodeType":"YulFunctionCall","src":"12988:40:30"},{"kind":"number","nodeType":"YulLiteral","src":"13030:4:30","type":"","value":"0x80"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"12980:7:30"},"nodeType":"YulFunctionCall","src":"12980:55:30"},"nodeType":"YulExpressionStatement","src":"12980:55:30"},{"expression":{"arguments":[{"name":"padded_","nodeType":"YulIdentifier","src":"13133:7:30"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"13146:3:30"},{"name":"BLOCK_SIZE_BYTES","nodeType":"YulIdentifier","src":"13151:16:30"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13142:3:30"},"nodeType":"YulFunctionCall","src":"13142:26:30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13126:6:30"},"nodeType":"YulFunctionCall","src":"13126:43:30"},"nodeType":"YulExpressionStatement","src":"13126:43:30"}]},"nodeType":"YulCase","src":"12399:784:30","value":{"kind":"bool","nodeType":"YulLiteral","src":"12404:5:30","type":"","value":"false"}},{"body":{"nodeType":"YulBlock","src":"13204:1442:30","statements":[{"nodeType":"YulVariableDeclaration","src":"13557:52:30","value":{"arguments":[{"name":"BLOCK_SIZE_BYTES","nodeType":"YulIdentifier","src":"13578:16:30"},{"name":"modBlockSize","nodeType":"YulIdentifier","src":"13596:12:30"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13574:3:30"},"nodeType":"YulFunctionCall","src":"13574:35:30"},"variables":[{"name":"remaining","nodeType":"YulTypedName","src":"13561:9:30","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13626:33:30","value":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"13644:3:30"},{"name":"remaining","nodeType":"YulIdentifier","src":"13649:9:30"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13640:3:30"},"nodeType":"YulFunctionCall","src":"13640:19:30"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"13630:6:30","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13676:40:30","value":{"arguments":[{"name":"dataPtr","nodeType":"YulIdentifier","src":"13700:7:30"},{"name":"newLen","nodeType":"YulIdentifier","src":"13709:6:30"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13696:3:30"},"nodeType":"YulFunctionCall","src":"13696:20:30"},"variables":[{"name":"paddedEndPtr","nodeType":"YulTypedName","src":"13680:12:30","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14149:49:30","value":{"arguments":[{"name":"paddedEndPtr","nodeType":"YulIdentifier","src":"14177:12:30"},{"name":"endPtr","nodeType":"YulIdentifier","src":"14191:6:30"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14173:3:30"},"nodeType":"YulFunctionCall","src":"14173:25:30"},"variables":[{"name":"partialRemainder","nodeType":"YulTypedName","src":"14153:16:30","type":""}]},{"expression":{"arguments":[{"name":"endPtr","nodeType":"YulIdentifier","src":"14228:6:30"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"14236:12:30"},"nodeType":"YulFunctionCall","src":"14236:14:30"},{"name":"partialRemainder","nodeType":"YulIdentifier","src":"14252:16:30"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"14215:12:30"},"nodeType":"YulFunctionCall","src":"14215:54:30"},"nodeType":"YulExpressionStatement","src":"14215:54:30"},{"expression":{"arguments":[{"arguments":[{"name":"paddedEndPtr","nodeType":"YulIdentifier","src":"14342:12:30"},{"kind":"number","nodeType":"YulLiteral","src":"14356:4:30","type":"","value":"0x01"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14338:3:30"},"nodeType":"YulFunctionCall","src":"14338:23:30"},{"kind":"number","nodeType":"YulLiteral","src":"14363:4:30","type":"","value":"0x80"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"14330:7:30"},"nodeType":"YulFunctionCall","src":"14330:38:30"},"nodeType":"YulExpressionStatement","src":"14330:38:30"},{"expression":{"arguments":[{"name":"endPtr","nodeType":"YulIdentifier","src":"14393:6:30"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14409:4:30","type":"","value":"0x00"},{"arguments":[{"name":"endPtr","nodeType":"YulIdentifier","src":"14421:6:30"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14415:5:30"},"nodeType":"YulFunctionCall","src":"14415:13:30"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"14404:4:30"},"nodeType":"YulFunctionCall","src":"14404:25:30"},{"kind":"number","nodeType":"YulLiteral","src":"14431:4:30","type":"","value":"0x01"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"14401:2:30"},"nodeType":"YulFunctionCall","src":"14401:35:30"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"14385:7:30"},"nodeType":"YulFunctionCall","src":"14385:52:30"},"nodeType":"YulExpressionStatement","src":"14385:52:30"},{"expression":{"arguments":[{"name":"padded_","nodeType":"YulIdentifier","src":"14616:7:30"},{"name":"newLen","nodeType":"YulIdentifier","src":"14625:6:30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14609:6:30"},"nodeType":"YulFunctionCall","src":"14609:23:30"},"nodeType":"YulExpressionStatement","src":"14609:23:30"}]},"nodeType":"YulCase","src":"13196:1450:30","value":"default"}],"expression":{"name":"modBlockSize","nodeType":"YulIdentifier","src":"12374:12:30"},"nodeType":"YulSwitch","src":"12367:2279:30"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14714:4:30","type":"","value":"0x40"},{"arguments":[{"name":"padded_","nodeType":"YulIdentifier","src":"14724:7:30"},{"arguments":[{"arguments":[{"arguments":[{"name":"padded_","nodeType":"YulIdentifier","src":"14747:7:30"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14741:5:30"},"nodeType":"YulFunctionCall","src":"14741:14:30"},{"kind":"number","nodeType":"YulLiteral","src":"14757:4:30","type":"","value":"0x3F"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14737:3:30"},"nodeType":"YulFunctionCall","src":"14737:25:30"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14768:4:30","type":"","value":"0x1F"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"14764:3:30"},"nodeType":"YulFunctionCall","src":"14764:9:30"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14733:3:30"},"nodeType":"YulFunctionCall","src":"14733:41:30"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14720:3:30"},"nodeType":"YulFunctionCall","src":"14720:55:30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14707:6:30"},"nodeType":"YulFunctionCall","src":"14707:69:30"},"nodeType":"YulExpressionStatement","src":"14707:69:30"}]},"evmVersion":"london","externalReferences":[{"declaration":47365,"isOffset":false,"isSlot":false,"src":"12337:16:30","valueSize":1},{"declaration":47365,"isOffset":false,"isSlot":false,"src":"13004:16:30","valueSize":1},{"declaration":47365,"isOffset":false,"isSlot":false,"src":"13151:16:30","valueSize":1},{"declaration":47365,"isOffset":false,"isSlot":false,"src":"13578:16:30","valueSize":1},{"declaration":47424,"isOffset":false,"isSlot":false,"src":"12095:12:30","suffix":"length","valueSize":1},{"declaration":47424,"isOffset":true,"isSlot":false,"src":"12276:12:30","suffix":"offset","valueSize":1},{"declaration":47427,"isOffset":false,"isSlot":false,"src":"11997:7:30","valueSize":1},{"declaration":47427,"isOffset":false,"isSlot":false,"src":"12140:7:30","valueSize":1},{"declaration":47427,"isOffset":false,"isSlot":false,"src":"13133:7:30","valueSize":1},{"declaration":47427,"isOffset":false,"isSlot":false,"src":"14616:7:30","valueSize":1},{"declaration":47427,"isOffset":false,"isSlot":false,"src":"14724:7:30","valueSize":1},{"declaration":47427,"isOffset":false,"isSlot":false,"src":"14747:7:30","valueSize":1}],"id":47429,"nodeType":"InlineAssembly","src":"11974:2812:30"}]},"documentation":{"id":47422,"nodeType":"StructuredDocumentation","src":"11763:116:30","text":"@notice Pads input data to an even multiple of the Keccak-f[1600] permutation block size, 1088 bits (136 bytes)."},"implemented":true,"kind":"function","modifiers":[],"name":"pad","nameLocation":"11893:3:30","parameters":{"id":47425,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47424,"mutability":"mutable","name":"_data","nameLocation":"11912:5:30","nodeType":"VariableDeclaration","scope":47431,"src":"11897:20:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":47423,"name":"bytes","nodeType":"ElementaryTypeName","src":"11897:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11896:22:30"},"returnParameters":{"id":47428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47427,"mutability":"mutable","name":"padded_","nameLocation":"11955:7:30","nodeType":"VariableDeclaration","scope":47431,"src":"11942:20:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":47426,"name":"bytes","nodeType":"ElementaryTypeName","src":"11942:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11941:22:30"},"scope":47442,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":47441,"nodeType":"FunctionDefinition","src":"14919:3054:30","nodes":[],"body":{"id":47440,"nodeType":"Block","src":"15003:2970:30","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"15022:2945:30","statements":[{"nodeType":"YulAssignment","src":"15036:22:30","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15053:4:30","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15047:5:30"},"nodeType":"YulFunctionCall","src":"15047:11:30"},"variableNames":[{"name":"padded_","nodeType":"YulIdentifier","src":"15036:7:30"}]},{"nodeType":"YulVariableDeclaration","src":"15123:23:30","value":{"arguments":[{"name":"_data","nodeType":"YulIdentifier","src":"15140:5:30"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15134:5:30"},"nodeType":"YulFunctionCall","src":"15134:12:30"},"variables":[{"name":"len","nodeType":"YulTypedName","src":"15127:3:30","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15160:33:30","value":{"arguments":[{"name":"padded_","nodeType":"YulIdentifier","src":"15179:7:30"},{"kind":"number","nodeType":"YulLiteral","src":"15188:4:30","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15175:3:30"},"nodeType":"YulFunctionCall","src":"15175:18:30"},"variables":[{"name":"dataPtr","nodeType":"YulTypedName","src":"15164:7:30","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15206:31:30","value":{"arguments":[{"name":"dataPtr","nodeType":"YulIdentifier","src":"15224:7:30"},{"name":"len","nodeType":"YulIdentifier","src":"15233:3:30"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15220:3:30"},"nodeType":"YulFunctionCall","src":"15220:17:30"},"variables":[{"name":"endPtr","nodeType":"YulTypedName","src":"15210:6:30","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15281:39:30","value":{"arguments":[{"name":"_data","nodeType":"YulIdentifier","src":"15308:5:30"},{"kind":"number","nodeType":"YulLiteral","src":"15315:4:30","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15304:3:30"},"nodeType":"YulFunctionCall","src":"15304:16:30"},"variables":[{"name":"originalDataPtr","nodeType":"YulTypedName","src":"15285:15:30","type":""}]},{"body":{"nodeType":"YulBlock","src":"15388:87:30","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dataPtr","nodeType":"YulIdentifier","src":"15417:7:30"},{"name":"i","nodeType":"YulIdentifier","src":"15426:1:30"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15413:3:30"},"nodeType":"YulFunctionCall","src":"15413:15:30"},{"arguments":[{"arguments":[{"name":"originalDataPtr","nodeType":"YulIdentifier","src":"15440:15:30"},{"name":"i","nodeType":"YulIdentifier","src":"15457:1:30"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15436:3:30"},"nodeType":"YulFunctionCall","src":"15436:23:30"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15430:5:30"},"nodeType":"YulFunctionCall","src":"15430:30:30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15406:6:30"},"nodeType":"YulFunctionCall","src":"15406:55:30"},"nodeType":"YulExpressionStatement","src":"15406:55:30"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"15358:1:30"},{"name":"len","nodeType":"YulIdentifier","src":"15361:3:30"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"15355:2:30"},"nodeType":"YulFunctionCall","src":"15355:10:30"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"15366:21:30","statements":[{"nodeType":"YulAssignment","src":"15368:17:30","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"15377:1:30"},{"kind":"number","nodeType":"YulLiteral","src":"15380:4:30","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15373:3:30"},"nodeType":"YulFunctionCall","src":"15373:12:30"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"15368:1:30"}]}]},"pre":{"nodeType":"YulBlock","src":"15337:17:30","statements":[{"nodeType":"YulVariableDeclaration","src":"15339:13:30","value":{"kind":"number","nodeType":"YulLiteral","src":"15348:4:30","type":"","value":"0x00"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"15343:1:30","type":""}]}]},"src":"15333:142:30"},{"nodeType":"YulVariableDeclaration","src":"15489:46:30","value":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"15513:3:30"},{"name":"BLOCK_SIZE_BYTES","nodeType":"YulIdentifier","src":"15518:16:30"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"15509:3:30"},"nodeType":"YulFunctionCall","src":"15509:26:30"},"variables":[{"name":"modBlockSize","nodeType":"YulTypedName","src":"15493:12:30","type":""}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"15591:773:30","statements":[{"expression":{"arguments":[{"name":"endPtr","nodeType":"YulIdentifier","src":"15960:6:30"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"15968:12:30"},"nodeType":"YulFunctionCall","src":"15968:14:30"},{"kind":"number","nodeType":"YulLiteral","src":"15984:4:30","type":"","value":"0x88"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"15947:12:30"},"nodeType":"YulFunctionCall","src":"15947:42:30"},"nodeType":"YulExpressionStatement","src":"15947:42:30"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"endPtr","nodeType":"YulIdentifier","src":"16139:6:30"},{"name":"BLOCK_SIZE_BYTES","nodeType":"YulIdentifier","src":"16147:16:30"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16135:3:30"},"nodeType":"YulFunctionCall","src":"16135:29:30"},{"kind":"number","nodeType":"YulLiteral","src":"16166:4:30","type":"","value":"0x01"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16131:3:30"},"nodeType":"YulFunctionCall","src":"16131:40:30"},{"kind":"number","nodeType":"YulLiteral","src":"16173:4:30","type":"","value":"0x80"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"16123:7:30"},"nodeType":"YulFunctionCall","src":"16123:55:30"},"nodeType":"YulExpressionStatement","src":"16123:55:30"},{"expression":{"arguments":[{"name":"endPtr","nodeType":"YulIdentifier","src":"16203:6:30"},{"kind":"number","nodeType":"YulLiteral","src":"16211:4:30","type":"","value":"0x01"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"16195:7:30"},"nodeType":"YulFunctionCall","src":"16195:21:30"},"nodeType":"YulExpressionStatement","src":"16195:21:30"},{"expression":{"arguments":[{"name":"padded_","nodeType":"YulIdentifier","src":"16314:7:30"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"16327:3:30"},{"name":"BLOCK_SIZE_BYTES","nodeType":"YulIdentifier","src":"16332:16:30"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16323:3:30"},"nodeType":"YulFunctionCall","src":"16323:26:30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16307:6:30"},"nodeType":"YulFunctionCall","src":"16307:43:30"},"nodeType":"YulExpressionStatement","src":"16307:43:30"}]},"nodeType":"YulCase","src":"15580:784:30","value":{"kind":"bool","nodeType":"YulLiteral","src":"15585:5:30","type":"","value":"false"}},{"body":{"nodeType":"YulBlock","src":"16385:1442:30","statements":[{"nodeType":"YulVariableDeclaration","src":"16738:52:30","value":{"arguments":[{"name":"BLOCK_SIZE_BYTES","nodeType":"YulIdentifier","src":"16759:16:30"},{"name":"modBlockSize","nodeType":"YulIdentifier","src":"16777:12:30"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16755:3:30"},"nodeType":"YulFunctionCall","src":"16755:35:30"},"variables":[{"name":"remaining","nodeType":"YulTypedName","src":"16742:9:30","type":""}]},{"nodeType":"YulVariableDeclaration","src":"16807:33:30","value":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"16825:3:30"},{"name":"remaining","nodeType":"YulIdentifier","src":"16830:9:30"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16821:3:30"},"nodeType":"YulFunctionCall","src":"16821:19:30"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"16811:6:30","type":""}]},{"nodeType":"YulVariableDeclaration","src":"16857:40:30","value":{"arguments":[{"name":"dataPtr","nodeType":"YulIdentifier","src":"16881:7:30"},{"name":"newLen","nodeType":"YulIdentifier","src":"16890:6:30"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16877:3:30"},"nodeType":"YulFunctionCall","src":"16877:20:30"},"variables":[{"name":"paddedEndPtr","nodeType":"YulTypedName","src":"16861:12:30","type":""}]},{"nodeType":"YulVariableDeclaration","src":"17330:49:30","value":{"arguments":[{"name":"paddedEndPtr","nodeType":"YulIdentifier","src":"17358:12:30"},{"name":"endPtr","nodeType":"YulIdentifier","src":"17372:6:30"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17354:3:30"},"nodeType":"YulFunctionCall","src":"17354:25:30"},"variables":[{"name":"partialRemainder","nodeType":"YulTypedName","src":"17334:16:30","type":""}]},{"expression":{"arguments":[{"name":"endPtr","nodeType":"YulIdentifier","src":"17409:6:30"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"17417:12:30"},"nodeType":"YulFunctionCall","src":"17417:14:30"},{"name":"partialRemainder","nodeType":"YulIdentifier","src":"17433:16:30"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"17396:12:30"},"nodeType":"YulFunctionCall","src":"17396:54:30"},"nodeType":"YulExpressionStatement","src":"17396:54:30"},{"expression":{"arguments":[{"arguments":[{"name":"paddedEndPtr","nodeType":"YulIdentifier","src":"17523:12:30"},{"kind":"number","nodeType":"YulLiteral","src":"17537:4:30","type":"","value":"0x01"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17519:3:30"},"nodeType":"YulFunctionCall","src":"17519:23:30"},{"kind":"number","nodeType":"YulLiteral","src":"17544:4:30","type":"","value":"0x80"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"17511:7:30"},"nodeType":"YulFunctionCall","src":"17511:38:30"},"nodeType":"YulExpressionStatement","src":"17511:38:30"},{"expression":{"arguments":[{"name":"endPtr","nodeType":"YulIdentifier","src":"17574:6:30"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17590:4:30","type":"","value":"0x00"},{"arguments":[{"name":"endPtr","nodeType":"YulIdentifier","src":"17602:6:30"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"17596:5:30"},"nodeType":"YulFunctionCall","src":"17596:13:30"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"17585:4:30"},"nodeType":"YulFunctionCall","src":"17585:25:30"},{"kind":"number","nodeType":"YulLiteral","src":"17612:4:30","type":"","value":"0x01"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"17582:2:30"},"nodeType":"YulFunctionCall","src":"17582:35:30"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"17566:7:30"},"nodeType":"YulFunctionCall","src":"17566:52:30"},"nodeType":"YulExpressionStatement","src":"17566:52:30"},{"expression":{"arguments":[{"name":"padded_","nodeType":"YulIdentifier","src":"17797:7:30"},{"name":"newLen","nodeType":"YulIdentifier","src":"17806:6:30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17790:6:30"},"nodeType":"YulFunctionCall","src":"17790:23:30"},"nodeType":"YulExpressionStatement","src":"17790:23:30"}]},"nodeType":"YulCase","src":"16377:1450:30","value":"default"}],"expression":{"name":"modBlockSize","nodeType":"YulIdentifier","src":"15555:12:30"},"nodeType":"YulSwitch","src":"15548:2279:30"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17895:4:30","type":"","value":"0x40"},{"arguments":[{"name":"padded_","nodeType":"YulIdentifier","src":"17905:7:30"},{"arguments":[{"arguments":[{"arguments":[{"name":"padded_","nodeType":"YulIdentifier","src":"17928:7:30"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"17922:5:30"},"nodeType":"YulFunctionCall","src":"17922:14:30"},{"kind":"number","nodeType":"YulLiteral","src":"17938:4:30","type":"","value":"0x3F"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17918:3:30"},"nodeType":"YulFunctionCall","src":"17918:25:30"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17949:4:30","type":"","value":"0x1F"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"17945:3:30"},"nodeType":"YulFunctionCall","src":"17945:9:30"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17914:3:30"},"nodeType":"YulFunctionCall","src":"17914:41:30"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17901:3:30"},"nodeType":"YulFunctionCall","src":"17901:55:30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17888:6:30"},"nodeType":"YulFunctionCall","src":"17888:69:30"},"nodeType":"YulExpressionStatement","src":"17888:69:30"}]},"evmVersion":"london","externalReferences":[{"declaration":47365,"isOffset":false,"isSlot":false,"src":"15518:16:30","valueSize":1},{"declaration":47365,"isOffset":false,"isSlot":false,"src":"16147:16:30","valueSize":1},{"declaration":47365,"isOffset":false,"isSlot":false,"src":"16332:16:30","valueSize":1},{"declaration":47365,"isOffset":false,"isSlot":false,"src":"16759:16:30","valueSize":1},{"declaration":47434,"isOffset":false,"isSlot":false,"src":"15140:5:30","valueSize":1},{"declaration":47434,"isOffset":false,"isSlot":false,"src":"15308:5:30","valueSize":1},{"declaration":47437,"isOffset":false,"isSlot":false,"src":"15036:7:30","valueSize":1},{"declaration":47437,"isOffset":false,"isSlot":false,"src":"15179:7:30","valueSize":1},{"declaration":47437,"isOffset":false,"isSlot":false,"src":"16314:7:30","valueSize":1},{"declaration":47437,"isOffset":false,"isSlot":false,"src":"17797:7:30","valueSize":1},{"declaration":47437,"isOffset":false,"isSlot":false,"src":"17905:7:30","valueSize":1},{"declaration":47437,"isOffset":false,"isSlot":false,"src":"17928:7:30","valueSize":1}],"id":47439,"nodeType":"InlineAssembly","src":"15013:2954:30"}]},"documentation":{"id":47432,"nodeType":"StructuredDocumentation","src":"14798:116:30","text":"@notice Pads input data to an even multiple of the Keccak-f[1600] permutation block size, 1088 bits (136 bytes)."},"implemented":true,"kind":"function","modifiers":[],"name":"padMemory","nameLocation":"14928:9:30","parameters":{"id":47435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47434,"mutability":"mutable","name":"_data","nameLocation":"14951:5:30","nodeType":"VariableDeclaration","scope":47441,"src":"14938:18:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":47433,"name":"bytes","nodeType":"ElementaryTypeName","src":"14938:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14937:20:30"},"returnParameters":{"id":47438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47437,"mutability":"mutable","name":"padded_","nameLocation":"14994:7:30","nodeType":"VariableDeclaration","scope":47441,"src":"14981:20:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":47436,"name":"bytes","nodeType":"ElementaryTypeName","src":"14981:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14980:22:30"},"scope":47442,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibKeccak","contractDependencies":[],"contractKind":"library","documentation":{"id":47361,"nodeType":"StructuredDocumentation","src":"57:196:30","text":"@title LibKeccak\n @notice An EVM implementation of the Keccak-f[1600] permutation.\n @author clabby <https://github.com/clabby>\n @custom:attribution geohot <https://github.com/geohot>"},"fullyImplemented":true,"linearizedBaseContracts":[47442],"name":"LibKeccak","nameLocation":"261:9:30","scope":47443,"usedErrors":[]}],"license":"MIT"},"id":30}