{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205fda0e0fb8f7899842f71b8451154542169af7d133e83880eefe995e7ab2557164736f6c63430008180033","sourceMap":"996:2292:33:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;996:2292:33;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205fda0e0fb8f7899842f71b8451154542169af7d133e83880eefe995e7ab2557164736f6c63430008180033","sourceMap":"996:2292:33:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"MUD (https://mud.dev) by Lattice (https://lattice.xyz)\",\"details\":\"Static utility functions for handling Schemas.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SchemaLib\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@latticexyz/store/src/Schema.sol\":\"SchemaLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@dk1a/solidity-stringutils/=node_modules/@dk1a/solidity-stringutils/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":base/=src/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":solmate/=node_modules/solmate/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@dk1a/solidity-stringutils/=node_modules/@dk1a/solidity-stringutils/","@latticexyz/=node_modules/@latticexyz/","@openzeppelin/=node_modules/@openzeppelin/","base/=src/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/","solmate/=node_modules/solmate/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@latticexyz/store/src/Schema.sol":"SchemaLib"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"node_modules/@latticexyz/store/src/Schema.sol","id":10058,"exportedSymbols":{"BYTE_TO_BITS":[21539],"ISchemaErrors":[8633],"LayoutOffsets":[21586],"MAX_DYNAMIC_FIELDS":[21551],"MAX_TOTAL_FIELDS":[21543],"Schema":[9581],"SchemaInstance":[10057],"SchemaLib":[9734],"SchemaType":[6396],"WORD_LAST_INDEX":[21535]},"nodeType":"SourceUnit","src":"32:7654:33","nodes":[{"id":9569,"nodeType":"PragmaDirective","src":"32:25:33","nodes":[],"literals":["solidity",">=","0.8",".24"]},{"id":9571,"nodeType":"ImportDirective","src":"59:81:33","nodes":[],"absolutePath":"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol","file":"@latticexyz/schema-type/src/solidity/SchemaType.sol","nameLocation":"-1:-1:-1","scope":10058,"sourceUnit":6438,"symbolAliases":[{"foreign":{"id":9570,"name":"SchemaType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6396,"src":"68:10:33","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":9577,"nodeType":"ImportDirective","src":"142:117:33","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/constants.sol","file":"./constants.sol","nameLocation":"-1:-1:-1","scope":10058,"sourceUnit":21587,"symbolAliases":[{"foreign":{"id":9572,"name":"WORD_LAST_INDEX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21535,"src":"151:15:33","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":9573,"name":"BYTE_TO_BITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21539,"src":"168:12:33","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":9574,"name":"MAX_TOTAL_FIELDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21543,"src":"182:16:33","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":9575,"name":"MAX_DYNAMIC_FIELDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21551,"src":"200:18:33","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":9576,"name":"LayoutOffsets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21586,"src":"220:13:33","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":9579,"nodeType":"ImportDirective","src":"260:52:33","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/ISchemaErrors.sol","file":"./ISchemaErrors.sol","nameLocation":"-1:-1:-1","scope":10058,"sourceUnit":8634,"symbolAliases":[{"foreign":{"id":9578,"name":"ISchemaErrors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8633,"src":"269:13:33","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":9581,"nodeType":"UserDefinedValueTypeDefinition","src":"781:23:33","nodes":[],"canonicalName":"Schema","name":"Schema","nameLocation":"786:6:33","underlyingType":{"id":9580,"name":"bytes32","nodeType":"ElementaryTypeName","src":"796:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":9585,"nodeType":"UsingForDirective","src":"806:39:33","nodes":[],"global":true,"libraryName":{"id":9582,"name":"SchemaInstance","nameLocations":["812:14:33"],"nodeType":"IdentifierPath","referencedDeclaration":10057,"src":"812:14:33"},"typeName":{"id":9584,"nodeType":"UserDefinedTypeName","pathNode":{"id":9583,"name":"Schema","nameLocations":["831:6:33"],"nodeType":"IdentifierPath","referencedDeclaration":9581,"src":"831:6:33"},"referencedDeclaration":9581,"src":"831:6:33","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}}},{"id":9734,"nodeType":"ContractDefinition","src":"996:2292:33","nodes":[{"id":9733,"nodeType":"FunctionDefinition","src":"1194:2092:33","nodes":[],"body":{"id":9732,"nodeType":"Block","src":"1270:2016:33","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9597,"name":"schemas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9591,"src":"1280:7:33","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_SchemaType_$6396_$dyn_memory_ptr","typeString":"enum SchemaType[] memory"}},"id":9598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1288:6:33","memberName":"length","nodeType":"MemberAccess","src":"1280:14:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":9599,"name":"MAX_TOTAL_FIELDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21543,"src":"1297:16:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1280:33:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9608,"nodeType":"IfStatement","src":"1276:96:33","trueBody":{"errorCall":{"arguments":[{"expression":{"id":9604,"name":"schemas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9591,"src":"1357:7:33","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_SchemaType_$6396_$dyn_memory_ptr","typeString":"enum SchemaType[] memory"}},"id":9605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1365:6:33","memberName":"length","nodeType":"MemberAccess","src":"1357:14:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9601,"name":"ISchemaErrors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8633,"src":"1322:13:33","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISchemaErrors_$8633_$","typeString":"type(contract ISchemaErrors)"}},"id":9603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1336:20:33","memberName":"Schema_InvalidLength","nodeType":"MemberAccess","referencedDeclaration":8629,"src":"1322:34:33","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":9606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1322:50:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9607,"nodeType":"RevertStatement","src":"1315:57:33"}},{"assignments":[9610],"declarations":[{"constant":false,"id":9610,"mutability":"mutable","name":"schema","nameLocation":"1386:6:33","nodeType":"VariableDeclaration","scope":9732,"src":"1378:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9609,"name":"uint256","nodeType":"ElementaryTypeName","src":"1378:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9611,"nodeType":"VariableDeclarationStatement","src":"1378:14:33"},{"assignments":[9613],"declarations":[{"constant":false,"id":9613,"mutability":"mutable","name":"totalLength","nameLocation":"1406:11:33","nodeType":"VariableDeclaration","scope":9732,"src":"1398:19:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9612,"name":"uint256","nodeType":"ElementaryTypeName","src":"1398:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9614,"nodeType":"VariableDeclarationStatement","src":"1398:19:33"},{"assignments":[9616],"declarations":[{"constant":false,"id":9616,"mutability":"mutable","name":"dynamicFields","nameLocation":"1431:13:33","nodeType":"VariableDeclaration","scope":9732,"src":"1423:21:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9615,"name":"uint256","nodeType":"ElementaryTypeName","src":"1423:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9617,"nodeType":"VariableDeclarationStatement","src":"1423:21:33"},{"body":{"id":9680,"nodeType":"Block","src":"1621:925:33","statements":[{"assignments":[9627],"declarations":[{"constant":false,"id":9627,"mutability":"mutable","name":"staticByteLength","nameLocation":"1637:16:33","nodeType":"VariableDeclaration","scope":9680,"src":"1629:24:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9626,"name":"uint256","nodeType":"ElementaryTypeName","src":"1629:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9633,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"id":9628,"name":"schemas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9591,"src":"1656:7:33","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_SchemaType_$6396_$dyn_memory_ptr","typeString":"enum SchemaType[] memory"}},"id":9630,"indexExpression":{"id":9629,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9619,"src":"1664:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1656:10:33","typeDescriptions":{"typeIdentifier":"t_enum$_SchemaType_$6396","typeString":"enum SchemaType"}},"id":9631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1667:19:33","memberName":"getStaticByteLength","nodeType":"MemberAccess","referencedDeclaration":6437,"src":"1656:30:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_SchemaType_$6396_$returns$_t_uint256_$attached_to$_t_enum$_SchemaType_$6396_$","typeString":"function (enum SchemaType) pure returns (uint256)"}},"id":9632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1656:32:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1629:59:33"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9634,"name":"staticByteLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9627,"src":"1701:16:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":9635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1721:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1701:21:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9642,"name":"dynamicFields","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9616,"src":"1930:13:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":9643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1946:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1930:17:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9651,"nodeType":"IfStatement","src":"1926:186:33","trueBody":{"id":9650,"nodeType":"Block","src":"1949:163:33","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":9645,"name":"ISchemaErrors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8633,"src":"2054:13:33","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISchemaErrors_$8633_$","typeString":"type(contract ISchemaErrors)"}},"id":9647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2068:33:33","memberName":"Schema_StaticTypeAfterDynamicType","nodeType":"MemberAccess","referencedDeclaration":8632,"src":"2054:47:33","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":9648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2054:49:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9649,"nodeType":"RevertStatement","src":"2047:56:33"}]}},"id":9652,"nodeType":"IfStatement","src":"1697:415:33","trueBody":{"id":9641,"nodeType":"Block","src":"1724:196:33","statements":[{"id":9640,"nodeType":"UncheckedBlock","src":"1864:48:33","statements":[{"expression":{"id":9638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1886:15:33","subExpression":{"id":9637,"name":"dynamicFields","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9616,"src":"1886:13:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9639,"nodeType":"ExpressionStatement","src":"1886:15:33"}]}]}},{"id":9679,"nodeType":"UncheckedBlock","src":"2120:420:33","statements":[{"expression":{"id":9655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9653,"name":"totalLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9613,"src":"2223:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":9654,"name":"staticByteLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9627,"src":"2238:16:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2223:31:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9656,"nodeType":"ExpressionStatement","src":"2223:31:33"},{"expression":{"id":9674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9657,"name":"schema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9610,"src":"2443:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":9660,"name":"schemas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9591,"src":"2461:7:33","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_SchemaType_$6396_$dyn_memory_ptr","typeString":"enum SchemaType[] memory"}},"id":9662,"indexExpression":{"id":9661,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9619,"src":"2469:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2461:10:33","typeDescriptions":{"typeIdentifier":"t_enum$_SchemaType_$6396","typeString":"enum SchemaType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_SchemaType_$6396","typeString":"enum SchemaType"}],"id":9659,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2453:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":9658,"name":"uint256","nodeType":"ElementaryTypeName","src":"2453:7:33","typeDescriptions":{}}},"id":9663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2453:19:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9666,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":9664,"name":"WORD_LAST_INDEX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21535,"src":"2478:15:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"34","id":9665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2496:1:33","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"2478:19:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":9667,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9619,"src":"2500:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2478:23:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9669,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2477:25:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":9670,"name":"BYTE_TO_BITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21539,"src":"2505:12:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2477:40:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9672,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2476:42:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2453:65:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2443:75:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9675,"nodeType":"ExpressionStatement","src":"2443:75:33"},{"expression":{"id":9677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2528:3:33","subExpression":{"id":9676,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9619,"src":"2528:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9678,"nodeType":"ExpressionStatement","src":"2528:3:33"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9622,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9619,"src":"1599:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":9623,"name":"schemas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9591,"src":"1603:7:33","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_SchemaType_$6396_$dyn_memory_ptr","typeString":"enum SchemaType[] memory"}},"id":9624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1611:6:33","memberName":"length","nodeType":"MemberAccess","src":"1603:14:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1599:18:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9681,"initializationExpression":{"assignments":[9619],"declarations":[{"constant":false,"id":9619,"mutability":"mutable","name":"i","nameLocation":"1592:1:33","nodeType":"VariableDeclaration","scope":9681,"src":"1584:9:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9618,"name":"uint256","nodeType":"ElementaryTypeName","src":"1584:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9621,"initialValue":{"hexValue":"30","id":9620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1596:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1584:13:33"},"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"1579:967:33"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9682,"name":"dynamicFields","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9616,"src":"2590:13:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":9683,"name":"MAX_DYNAMIC_FIELDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21551,"src":"2606:18:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2590:34:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9691,"nodeType":"IfStatement","src":"2586:96:33","trueBody":{"errorCall":{"arguments":[{"id":9688,"name":"dynamicFields","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9616,"src":"2668:13:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9685,"name":"ISchemaErrors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8633,"src":"2633:13:33","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISchemaErrors_$8633_$","typeString":"type(contract ISchemaErrors)"}},"id":9687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2647:20:33","memberName":"Schema_InvalidLength","nodeType":"MemberAccess","referencedDeclaration":8629,"src":"2633:34:33","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":9689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2633:49:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9690,"nodeType":"RevertStatement","src":"2626:56:33"}},{"assignments":[9693],"declarations":[{"constant":false,"id":9693,"mutability":"mutable","name":"staticFields","nameLocation":"2731:12:33","nodeType":"VariableDeclaration","scope":9732,"src":"2723:20:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9692,"name":"uint256","nodeType":"ElementaryTypeName","src":"2723:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9694,"nodeType":"VariableDeclarationStatement","src":"2723:20:33"},{"id":9702,"nodeType":"UncheckedBlock","src":"2749:70:33","statements":[{"expression":{"id":9700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9695,"name":"staticFields","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9693,"src":"2767:12:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9696,"name":"schemas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9591,"src":"2782:7:33","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_SchemaType_$6396_$dyn_memory_ptr","typeString":"enum SchemaType[] memory"}},"id":9697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2790:6:33","memberName":"length","nodeType":"MemberAccess","src":"2782:14:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":9698,"name":"dynamicFields","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9616,"src":"2799:13:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2782:30:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2767:45:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9701,"nodeType":"ExpressionStatement","src":"2767:45:33"}]},{"expression":{"id":9708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9703,"name":"schema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9610,"src":"3060:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9704,"name":"totalLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9613,"src":"3070:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"expression":{"id":9705,"name":"LayoutOffsets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21586,"src":"3085:13:33","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LayoutOffsets_$21586_$","typeString":"type(library LayoutOffsets)"}},"id":9706,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3099:12:33","memberName":"TOTAL_LENGTH","nodeType":"MemberAccess","referencedDeclaration":21561,"src":"3085:26:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3070:41:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3060:51:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9709,"nodeType":"ExpressionStatement","src":"3060:51:33"},{"expression":{"id":9715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9710,"name":"schema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9610,"src":"3117:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9711,"name":"staticFields","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9693,"src":"3127:12:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"expression":{"id":9712,"name":"LayoutOffsets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21586,"src":"3143:13:33","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LayoutOffsets_$21586_$","typeString":"type(library LayoutOffsets)"}},"id":9713,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3157:17:33","memberName":"NUM_STATIC_FIELDS","nodeType":"MemberAccess","referencedDeclaration":21572,"src":"3143:31:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3127:47:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3117:57:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9716,"nodeType":"ExpressionStatement","src":"3117:57:33"},{"expression":{"id":9722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9717,"name":"schema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9610,"src":"3180:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9718,"name":"dynamicFields","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9616,"src":"3190:13:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"expression":{"id":9719,"name":"LayoutOffsets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21586,"src":"3207:13:33","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LayoutOffsets_$21586_$","typeString":"type(library LayoutOffsets)"}},"id":9720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3221:18:33","memberName":"NUM_DYNAMIC_FIELDS","nodeType":"MemberAccess","referencedDeclaration":21585,"src":"3207:32:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3190:49:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3180:59:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9723,"nodeType":"ExpressionStatement","src":"3180:59:33"},{"expression":{"arguments":[{"arguments":[{"id":9728,"name":"schema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9610,"src":"3273:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9727,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3265:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":9726,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3265:7:33","typeDescriptions":{}}},"id":9729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3265:15:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9724,"name":"Schema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9581,"src":"3253:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Schema_$9581_$","typeString":"type(Schema)"}},"id":9725,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3260:4:33","memberName":"wrap","nodeType":"MemberAccess","src":"3253:11:33","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_Schema_$9581_$","typeString":"function (bytes32) pure returns (Schema)"}},"id":9730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3253:28:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"functionReturnParameters":9596,"id":9731,"nodeType":"Return","src":"3246:35:33"}]},"documentation":{"id":9587,"nodeType":"StructuredDocumentation","src":"1018:173:33","text":" @notice Encodes a given schema into a single bytes32.\n @param schemas The list of SchemaTypes that constitute the schema.\n @return The encoded Schema."},"implemented":true,"kind":"function","modifiers":[],"name":"encode","nameLocation":"1203:6:33","parameters":{"id":9592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9591,"mutability":"mutable","name":"schemas","nameLocation":"1230:7:33","nodeType":"VariableDeclaration","scope":9733,"src":"1210:27:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_SchemaType_$6396_$dyn_memory_ptr","typeString":"enum SchemaType[]"},"typeName":{"baseType":{"id":9589,"nodeType":"UserDefinedTypeName","pathNode":{"id":9588,"name":"SchemaType","nameLocations":["1210:10:33"],"nodeType":"IdentifierPath","referencedDeclaration":6396,"src":"1210:10:33"},"referencedDeclaration":6396,"src":"1210:10:33","typeDescriptions":{"typeIdentifier":"t_enum$_SchemaType_$6396","typeString":"enum SchemaType"}},"id":9590,"nodeType":"ArrayTypeName","src":"1210:12:33","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_SchemaType_$6396_$dyn_storage_ptr","typeString":"enum SchemaType[]"}},"visibility":"internal"}],"src":"1209:29:33"},"returnParameters":{"id":9596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9595,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9733,"src":"1262:6:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"},"typeName":{"id":9594,"nodeType":"UserDefinedTypeName","pathNode":{"id":9593,"name":"Schema","nameLocations":["1262:6:33"],"nodeType":"IdentifierPath","referencedDeclaration":9581,"src":"1262:6:33"},"referencedDeclaration":9581,"src":"1262:6:33","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"visibility":"internal"}],"src":"1261:8:33"},"scope":9734,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SchemaLib","contractDependencies":[],"contractKind":"library","documentation":{"id":9586,"nodeType":"StructuredDocumentation","src":"847:148:33","text":" @title SchemaLib\n @author MUD (https://mud.dev) by Lattice (https://lattice.xyz)\n @dev Static utility functions for handling Schemas."},"fullyImplemented":true,"linearizedBaseContracts":[9734],"name":"SchemaLib","nameLocation":"1004:9:33","scope":10058,"usedErrors":[],"usedEvents":[]},{"id":10057,"nodeType":"ContractDefinition","src":"3456:4229:33","nodes":[{"id":9756,"nodeType":"FunctionDefinition","src":"3639:151:33","nodes":[],"body":{"id":9755,"nodeType":"Block","src":"3712:78:33","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":9748,"name":"schema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9739,"src":"3747:6:33","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}],"expression":{"id":9746,"name":"Schema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9581,"src":"3733:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Schema_$9581_$","typeString":"type(Schema)"}},"id":9747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3740:6:33","memberName":"unwrap","nodeType":"MemberAccess","src":"3733:13:33","typeDescriptions":{"typeIdentifier":"t_function_unwrap_pure$_t_userDefinedValueType$_Schema_$9581_$returns$_t_bytes32_$","typeString":"function (Schema) pure returns (bytes32)"}},"id":9749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3733:21:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9745,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3725:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":9744,"name":"uint256","nodeType":"ElementaryTypeName","src":"3725:7:33","typeDescriptions":{}}},"id":9750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3725:30:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"expression":{"id":9751,"name":"LayoutOffsets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21586,"src":"3759:13:33","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LayoutOffsets_$21586_$","typeString":"type(library LayoutOffsets)"}},"id":9752,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3773:12:33","memberName":"TOTAL_LENGTH","nodeType":"MemberAccess","referencedDeclaration":21561,"src":"3759:26:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3725:60:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9743,"id":9754,"nodeType":"Return","src":"3718:67:33"}]},"documentation":{"id":9736,"nodeType":"StructuredDocumentation","src":"3483:153:33","text":" @notice Get the length of static data for the given schema.\n @param schema The schema to inspect.\n @return The static data length."},"implemented":true,"kind":"function","modifiers":[],"name":"staticDataLength","nameLocation":"3648:16:33","parameters":{"id":9740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9739,"mutability":"mutable","name":"schema","nameLocation":"3672:6:33","nodeType":"VariableDeclaration","scope":9756,"src":"3665:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"},"typeName":{"id":9738,"nodeType":"UserDefinedTypeName","pathNode":{"id":9737,"name":"Schema","nameLocations":["3665:6:33"],"nodeType":"IdentifierPath","referencedDeclaration":9581,"src":"3665:6:33"},"referencedDeclaration":9581,"src":"3665:6:33","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"visibility":"internal"}],"src":"3664:15:33"},"returnParameters":{"id":9743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9742,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9756,"src":"3703:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9741,"name":"uint256","nodeType":"ElementaryTypeName","src":"3703:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3702:9:33"},"scope":10057,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9792,"nodeType":"FunctionDefinition","src":"4019:206:33","nodes":[],"body":{"id":9791,"nodeType":"Block","src":"4101:124:33","nodes":[],"statements":[{"id":9790,"nodeType":"UncheckedBlock","src":"4107:114:33","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":9773,"name":"schema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9760,"src":"4157:6:33","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"id":9774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4164:6:33","memberName":"unwrap","nodeType":"MemberAccess","referencedDeclaration":10056,"src":"4157:13:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Schema_$9581_$returns$_t_bytes32_$attached_to$_t_userDefinedValueType$_Schema_$9581_$","typeString":"function (Schema) pure returns (bytes32)"}},"id":9775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4157:15:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9772,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4149:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":9771,"name":"uint256","nodeType":"ElementaryTypeName","src":"4149:7:33","typeDescriptions":{}}},"id":9776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4149:24:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":9777,"name":"WORD_LAST_INDEX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21535,"src":"4179:15:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"34","id":9778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4197:1:33","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"4179:19:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":9780,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9762,"src":"4201:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4179:27:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9782,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4178:29:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":9783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4210:1:33","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"4178:33:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9785,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4177:35:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4149:63:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9770,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4143:5:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":9769,"name":"uint8","nodeType":"ElementaryTypeName","src":"4143:5:33","typeDescriptions":{}}},"id":9787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4143:70:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":9768,"name":"SchemaType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6396,"src":"4132:10:33","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SchemaType_$6396_$","typeString":"type(enum SchemaType)"}},"id":9788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4132:82:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_SchemaType_$6396","typeString":"enum SchemaType"}},"functionReturnParameters":9767,"id":9789,"nodeType":"Return","src":"4125:89:33"}]}]},"documentation":{"id":9757,"nodeType":"StructuredDocumentation","src":"3794:222:33","text":" @notice Get the SchemaType at a given index in the schema.\n @param schema The schema to inspect.\n @param index The index of the SchemaType to retrieve.\n @return The SchemaType at the given index."},"implemented":true,"kind":"function","modifiers":[],"name":"atIndex","nameLocation":"4028:7:33","parameters":{"id":9763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9760,"mutability":"mutable","name":"schema","nameLocation":"4043:6:33","nodeType":"VariableDeclaration","scope":9792,"src":"4036:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"},"typeName":{"id":9759,"nodeType":"UserDefinedTypeName","pathNode":{"id":9758,"name":"Schema","nameLocations":["4036:6:33"],"nodeType":"IdentifierPath","referencedDeclaration":9581,"src":"4036:6:33"},"referencedDeclaration":9581,"src":"4036:6:33","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"visibility":"internal"},{"constant":false,"id":9762,"mutability":"mutable","name":"index","nameLocation":"4059:5:33","nodeType":"VariableDeclaration","scope":9792,"src":"4051:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9761,"name":"uint256","nodeType":"ElementaryTypeName","src":"4051:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4035:30:33"},"returnParameters":{"id":9767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9766,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9792,"src":"4089:10:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SchemaType_$6396","typeString":"enum SchemaType"},"typeName":{"id":9765,"nodeType":"UserDefinedTypeName","pathNode":{"id":9764,"name":"SchemaType","nameLocations":["4089:10:33"],"nodeType":"IdentifierPath","referencedDeclaration":6396,"src":"4089:10:33"},"referencedDeclaration":6396,"src":"4089:10:33","typeDescriptions":{"typeIdentifier":"t_enum$_SchemaType_$6396","typeString":"enum SchemaType"}},"visibility":"internal"}],"src":"4088:12:33"},"scope":10057,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9815,"nodeType":"FunctionDefinition","src":"4400:156:33","nodes":[],"body":{"id":9814,"nodeType":"Block","src":"4472:84:33","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":9805,"name":"schema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9796,"src":"4499:6:33","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"id":9806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4506:6:33","memberName":"unwrap","nodeType":"MemberAccess","referencedDeclaration":10056,"src":"4499:13:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Schema_$9581_$returns$_t_bytes32_$attached_to$_t_userDefinedValueType$_Schema_$9581_$","typeString":"function (Schema) pure returns (bytes32)"}},"id":9807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4499:15:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9804,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4491:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":9803,"name":"uint256","nodeType":"ElementaryTypeName","src":"4491:7:33","typeDescriptions":{}}},"id":9808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4491:24:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"expression":{"id":9809,"name":"LayoutOffsets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21586,"src":"4519:13:33","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LayoutOffsets_$21586_$","typeString":"type(library LayoutOffsets)"}},"id":9810,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4533:17:33","memberName":"NUM_STATIC_FIELDS","nodeType":"MemberAccess","referencedDeclaration":21572,"src":"4519:31:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4491:59:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4485:5:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":9801,"name":"uint8","nodeType":"ElementaryTypeName","src":"4485:5:33","typeDescriptions":{}}},"id":9812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4485:66:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":9800,"id":9813,"nodeType":"Return","src":"4478:73:33"}]},"documentation":{"id":9793,"nodeType":"StructuredDocumentation","src":"4229:168:33","text":" @notice Get the number of static (fixed length) fields in the schema.\n @param schema The schema to inspect.\n @return The number of static fields."},"implemented":true,"kind":"function","modifiers":[],"name":"numStaticFields","nameLocation":"4409:15:33","parameters":{"id":9797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9796,"mutability":"mutable","name":"schema","nameLocation":"4432:6:33","nodeType":"VariableDeclaration","scope":9815,"src":"4425:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"},"typeName":{"id":9795,"nodeType":"UserDefinedTypeName","pathNode":{"id":9794,"name":"Schema","nameLocations":["4425:6:33"],"nodeType":"IdentifierPath","referencedDeclaration":9581,"src":"4425:6:33"},"referencedDeclaration":9581,"src":"4425:6:33","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"visibility":"internal"}],"src":"4424:15:33"},"returnParameters":{"id":9800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9799,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9815,"src":"4463:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9798,"name":"uint256","nodeType":"ElementaryTypeName","src":"4463:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4462:9:33"},"scope":10057,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9838,"nodeType":"FunctionDefinition","src":"4732:158:33","nodes":[],"body":{"id":9837,"nodeType":"Block","src":"4805:85:33","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":9828,"name":"schema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9819,"src":"4832:6:33","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"id":9829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4839:6:33","memberName":"unwrap","nodeType":"MemberAccess","referencedDeclaration":10056,"src":"4832:13:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Schema_$9581_$returns$_t_bytes32_$attached_to$_t_userDefinedValueType$_Schema_$9581_$","typeString":"function (Schema) pure returns (bytes32)"}},"id":9830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4832:15:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9827,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4824:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":9826,"name":"uint256","nodeType":"ElementaryTypeName","src":"4824:7:33","typeDescriptions":{}}},"id":9831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4824:24:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"expression":{"id":9832,"name":"LayoutOffsets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21586,"src":"4852:13:33","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LayoutOffsets_$21586_$","typeString":"type(library LayoutOffsets)"}},"id":9833,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4866:18:33","memberName":"NUM_DYNAMIC_FIELDS","nodeType":"MemberAccess","referencedDeclaration":21585,"src":"4852:32:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4824:60:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9825,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4818:5:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":9824,"name":"uint8","nodeType":"ElementaryTypeName","src":"4818:5:33","typeDescriptions":{}}},"id":9835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4818:67:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":9823,"id":9836,"nodeType":"Return","src":"4811:74:33"}]},"documentation":{"id":9816,"nodeType":"StructuredDocumentation","src":"4560:169:33","text":" @notice Get the number of dynamic length fields in the schema.\n @param schema The schema to inspect.\n @return The number of dynamic length fields."},"implemented":true,"kind":"function","modifiers":[],"name":"numDynamicFields","nameLocation":"4741:16:33","parameters":{"id":9820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9819,"mutability":"mutable","name":"schema","nameLocation":"4765:6:33","nodeType":"VariableDeclaration","scope":9838,"src":"4758:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"},"typeName":{"id":9818,"nodeType":"UserDefinedTypeName","pathNode":{"id":9817,"name":"Schema","nameLocations":["4758:6:33"],"nodeType":"IdentifierPath","referencedDeclaration":9581,"src":"4758:6:33"},"referencedDeclaration":9581,"src":"4758:6:33","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"visibility":"internal"}],"src":"4757:15:33"},"returnParameters":{"id":9823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9822,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9838,"src":"4796:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9821,"name":"uint256","nodeType":"ElementaryTypeName","src":"4796:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4795:9:33"},"scope":10057,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9875,"nodeType":"FunctionDefinition","src":"5048:260:33","nodes":[],"body":{"id":9874,"nodeType":"Block","src":"5114:194:33","nodes":[],"statements":[{"id":9873,"nodeType":"UncheckedBlock","src":"5120:184:33","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":9871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":9851,"name":"schema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9842,"src":"5167:6:33","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"id":9852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5174:6:33","memberName":"unwrap","nodeType":"MemberAccess","referencedDeclaration":10056,"src":"5167:13:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Schema_$9581_$returns$_t_bytes32_$attached_to$_t_userDefinedValueType$_Schema_$9581_$","typeString":"function (Schema) pure returns (bytes32)"}},"id":9853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5167:15:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9850,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5159:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":9849,"name":"uint256","nodeType":"ElementaryTypeName","src":"5159:7:33","typeDescriptions":{}}},"id":9854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5159:24:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"expression":{"id":9855,"name":"LayoutOffsets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21586,"src":"5187:13:33","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LayoutOffsets_$21586_$","typeString":"type(library LayoutOffsets)"}},"id":9856,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5201:17:33","memberName":"NUM_STATIC_FIELDS","nodeType":"MemberAccess","referencedDeclaration":21572,"src":"5187:31:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5159:59:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5153:5:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":9847,"name":"uint8","nodeType":"ElementaryTypeName","src":"5153:5:33","typeDescriptions":{}}},"id":9858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5153:66:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":9863,"name":"schema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9842,"src":"5244:6:33","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"id":9864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5251:6:33","memberName":"unwrap","nodeType":"MemberAccess","referencedDeclaration":10056,"src":"5244:13:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Schema_$9581_$returns$_t_bytes32_$attached_to$_t_userDefinedValueType$_Schema_$9581_$","typeString":"function (Schema) pure returns (bytes32)"}},"id":9865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5244:15:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9862,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5236:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":9861,"name":"uint256","nodeType":"ElementaryTypeName","src":"5236:7:33","typeDescriptions":{}}},"id":9866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5236:24:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"expression":{"id":9867,"name":"LayoutOffsets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21586,"src":"5264:13:33","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LayoutOffsets_$21586_$","typeString":"type(library LayoutOffsets)"}},"id":9868,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5278:18:33","memberName":"NUM_DYNAMIC_FIELDS","nodeType":"MemberAccess","referencedDeclaration":21585,"src":"5264:32:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5236:60:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9860,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5230:5:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":9859,"name":"uint8","nodeType":"ElementaryTypeName","src":"5230:5:33","typeDescriptions":{}}},"id":9870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5230:67:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"5153:144:33","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":9846,"id":9872,"nodeType":"Return","src":"5138:159:33"}]}]},"documentation":{"id":9839,"nodeType":"StructuredDocumentation","src":"4894:151:33","text":" @notice Get the total number of fields in the schema.\n @param schema The schema to inspect.\n @return The total number of fields."},"implemented":true,"kind":"function","modifiers":[],"name":"numFields","nameLocation":"5057:9:33","parameters":{"id":9843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9842,"mutability":"mutable","name":"schema","nameLocation":"5074:6:33","nodeType":"VariableDeclaration","scope":9875,"src":"5067:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"},"typeName":{"id":9841,"nodeType":"UserDefinedTypeName","pathNode":{"id":9840,"name":"Schema","nameLocations":["5067:6:33"],"nodeType":"IdentifierPath","referencedDeclaration":9581,"src":"5067:6:33"},"referencedDeclaration":9581,"src":"5067:6:33","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"visibility":"internal"}],"src":"5066:15:33"},"returnParameters":{"id":9846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9845,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9875,"src":"5105:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9844,"name":"uint256","nodeType":"ElementaryTypeName","src":"5105:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5104:9:33"},"scope":10057,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9895,"nodeType":"FunctionDefinition","src":"5476:114:33","nodes":[],"body":{"id":9894,"nodeType":"Block","src":"5537:53:33","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":9892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":9886,"name":"schema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9879,"src":"5564:6:33","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}],"expression":{"id":9884,"name":"Schema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9581,"src":"5550:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Schema_$9581_$","typeString":"type(Schema)"}},"id":9885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5557:6:33","memberName":"unwrap","nodeType":"MemberAccess","src":"5550:13:33","typeDescriptions":{"typeIdentifier":"t_function_unwrap_pure$_t_userDefinedValueType$_Schema_$9581_$returns$_t_bytes32_$","typeString":"function (Schema) pure returns (bytes32)"}},"id":9887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5550:21:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":9890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5583:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9889,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5575:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":9888,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5575:7:33","typeDescriptions":{}}},"id":9891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5575:10:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5550:35:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9883,"id":9893,"nodeType":"Return","src":"5543:42:33"}]},"documentation":{"id":9876,"nodeType":"StructuredDocumentation","src":"5312:161:33","text":" @notice Checks if the provided schema is empty.\n @param schema The schema to check.\n @return true if the schema is empty, false otherwise."},"implemented":true,"kind":"function","modifiers":[],"name":"isEmpty","nameLocation":"5485:7:33","parameters":{"id":9880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9879,"mutability":"mutable","name":"schema","nameLocation":"5500:6:33","nodeType":"VariableDeclaration","scope":9895,"src":"5493:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"},"typeName":{"id":9878,"nodeType":"UserDefinedTypeName","pathNode":{"id":9877,"name":"Schema","nameLocations":["5493:6:33"],"nodeType":"IdentifierPath","referencedDeclaration":9581,"src":"5493:6:33"},"referencedDeclaration":9581,"src":"5493:6:33","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"visibility":"internal"}],"src":"5492:15:33"},"returnParameters":{"id":9883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9882,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9895,"src":"5531:4:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9881,"name":"bool","nodeType":"ElementaryTypeName","src":"5531:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5530:6:33"},"scope":10057,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10041,"nodeType":"FunctionDefinition","src":"5760:1635:33","nodes":[],"body":{"id":10040,"nodeType":"Block","src":"5824:1571:33","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5866:11:33","subExpression":{"id":9904,"name":"allowEmpty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9901,"src":"5867:10:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":9906,"name":"schema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9899,"src":"5881:6:33","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"id":9907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5888:7:33","memberName":"isEmpty","nodeType":"MemberAccess","referencedDeclaration":9895,"src":"5881:14:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Schema_$9581_$returns$_t_bool_$attached_to$_t_userDefinedValueType$_Schema_$9581_$","typeString":"function (Schema) pure returns (bool)"}},"id":9908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5881:16:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5866:31:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9916,"nodeType":"IfStatement","src":"5862:81:33","trueBody":{"errorCall":{"arguments":[{"hexValue":"30","id":9913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5941:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":9910,"name":"ISchemaErrors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8633,"src":"5906:13:33","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISchemaErrors_$8633_$","typeString":"type(contract ISchemaErrors)"}},"id":9912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5920:20:33","memberName":"Schema_InvalidLength","nodeType":"MemberAccess","referencedDeclaration":8629,"src":"5906:34:33","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":9914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5906:37:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9915,"nodeType":"RevertStatement","src":"5899:44:33"}},{"assignments":[9918],"declarations":[{"constant":false,"id":9918,"mutability":"mutable","name":"_numDynamicFields","nameLocation":"6014:17:33","nodeType":"VariableDeclaration","scope":10040,"src":"6006:25:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9917,"name":"uint256","nodeType":"ElementaryTypeName","src":"6006:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9922,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":9919,"name":"schema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9899,"src":"6034:6:33","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"id":9920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6041:16:33","memberName":"numDynamicFields","nodeType":"MemberAccess","referencedDeclaration":9838,"src":"6034:23:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Schema_$9581_$returns$_t_uint256_$attached_to$_t_userDefinedValueType$_Schema_$9581_$","typeString":"function (Schema) pure returns (uint256)"}},"id":9921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6034:25:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6006:53:33"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9923,"name":"_numDynamicFields","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9918,"src":"6069:17:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":9924,"name":"MAX_DYNAMIC_FIELDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21551,"src":"6089:18:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6069:38:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9932,"nodeType":"IfStatement","src":"6065:104:33","trueBody":{"errorCall":{"arguments":[{"id":9929,"name":"_numDynamicFields","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9918,"src":"6151:17:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9926,"name":"ISchemaErrors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8633,"src":"6116:13:33","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISchemaErrors_$8633_$","typeString":"type(contract ISchemaErrors)"}},"id":9928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6130:20:33","memberName":"Schema_InvalidLength","nodeType":"MemberAccess","referencedDeclaration":8629,"src":"6116:34:33","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":9930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6116:53:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9931,"nodeType":"RevertStatement","src":"6109:60:33"}},{"assignments":[9934],"declarations":[{"constant":false,"id":9934,"mutability":"mutable","name":"_numStaticFields","nameLocation":"6184:16:33","nodeType":"VariableDeclaration","scope":10040,"src":"6176:24:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9933,"name":"uint256","nodeType":"ElementaryTypeName","src":"6176:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9938,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":9935,"name":"schema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9899,"src":"6203:6:33","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"id":9936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6210:15:33","memberName":"numStaticFields","nodeType":"MemberAccess","referencedDeclaration":9815,"src":"6203:22:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Schema_$9581_$returns$_t_uint256_$attached_to$_t_userDefinedValueType$_Schema_$9581_$","typeString":"function (Schema) pure returns (uint256)"}},"id":9937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6203:24:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6176:51:33"},{"assignments":[9940],"declarations":[{"constant":false,"id":9940,"mutability":"mutable","name":"_numTotalFields","nameLocation":"6305:15:33","nodeType":"VariableDeclaration","scope":10040,"src":"6297:23:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9939,"name":"uint256","nodeType":"ElementaryTypeName","src":"6297:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9944,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9941,"name":"_numStaticFields","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9934,"src":"6323:16:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":9942,"name":"_numDynamicFields","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9918,"src":"6342:17:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6323:36:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6297:62:33"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9945,"name":"_numTotalFields","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9940,"src":"6369:15:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":9946,"name":"MAX_TOTAL_FIELDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21543,"src":"6387:16:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6369:34:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9954,"nodeType":"IfStatement","src":"6365:98:33","trueBody":{"errorCall":{"arguments":[{"id":9951,"name":"_numTotalFields","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9940,"src":"6447:15:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9948,"name":"ISchemaErrors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8633,"src":"6412:13:33","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISchemaErrors_$8633_$","typeString":"type(contract ISchemaErrors)"}},"id":9950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6426:20:33","memberName":"Schema_InvalidLength","nodeType":"MemberAccess","referencedDeclaration":8629,"src":"6412:34:33","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":9952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6412:51:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9953,"nodeType":"RevertStatement","src":"6405:58:33"}},{"assignments":[9956],"declarations":[{"constant":false,"id":9956,"mutability":"mutable","name":"_staticDataLength","nameLocation":"6532:17:33","nodeType":"VariableDeclaration","scope":10040,"src":"6524:25:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9955,"name":"uint256","nodeType":"ElementaryTypeName","src":"6524:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9957,"nodeType":"VariableDeclarationStatement","src":"6524:25:33"},{"body":{"id":9991,"nodeType":"Block","src":"6595:274:33","statements":[{"assignments":[9965],"declarations":[{"constant":false,"id":9965,"mutability":"mutable","name":"staticByteLength","nameLocation":"6611:16:33","nodeType":"VariableDeclaration","scope":9991,"src":"6603:24:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9964,"name":"uint256","nodeType":"ElementaryTypeName","src":"6603:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9972,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":9968,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9959,"src":"6645:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9966,"name":"schema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9899,"src":"6630:6:33","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"id":9967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6637:7:33","memberName":"atIndex","nodeType":"MemberAccess","referencedDeclaration":9792,"src":"6630:14:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Schema_$9581_$_t_uint256_$returns$_t_enum$_SchemaType_$6396_$attached_to$_t_userDefinedValueType$_Schema_$9581_$","typeString":"function (Schema,uint256) pure returns (enum SchemaType)"}},"id":9969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6630:17:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_SchemaType_$6396","typeString":"enum SchemaType"}},"id":9970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6648:19:33","memberName":"getStaticByteLength","nodeType":"MemberAccess","referencedDeclaration":6437,"src":"6630:37:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_SchemaType_$6396_$returns$_t_uint256_$attached_to$_t_enum$_SchemaType_$6396_$","typeString":"function (enum SchemaType) pure returns (uint256)"}},"id":9971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6630:39:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6603:66:33"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9973,"name":"staticByteLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9965,"src":"6681:16:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":9974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6701:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6681:21:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9982,"nodeType":"IfStatement","src":"6677:102:33","trueBody":{"id":9981,"nodeType":"Block","src":"6704:75:33","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":9976,"name":"ISchemaErrors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8633,"src":"6721:13:33","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISchemaErrors_$8633_$","typeString":"type(contract ISchemaErrors)"}},"id":9978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6735:33:33","memberName":"Schema_StaticTypeAfterDynamicType","nodeType":"MemberAccess","referencedDeclaration":8632,"src":"6721:47:33","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":9979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6721:49:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9980,"nodeType":"RevertStatement","src":"6714:56:33"}]}},{"expression":{"id":9985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9983,"name":"_staticDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9956,"src":"6786:17:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":9984,"name":"staticByteLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9965,"src":"6807:16:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6786:37:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9986,"nodeType":"ExpressionStatement","src":"6786:37:33"},{"id":9990,"nodeType":"UncheckedBlock","src":"6831:32:33","statements":[{"expression":{"id":9988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6851:3:33","subExpression":{"id":9987,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9959,"src":"6851:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9989,"nodeType":"ExpressionStatement","src":"6851:3:33"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9961,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9959,"src":"6571:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":9962,"name":"_numStaticFields","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9934,"src":"6575:16:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6571:20:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9992,"initializationExpression":{"assignments":[9959],"declarations":[{"constant":false,"id":9959,"mutability":"mutable","name":"i","nameLocation":"6568:1:33","nodeType":"VariableDeclaration","scope":9992,"src":"6560:9:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9958,"name":"uint256","nodeType":"ElementaryTypeName","src":"6560:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9960,"nodeType":"VariableDeclarationStatement","src":"6560:9:33"},"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"6555:314:33"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9993,"name":"_staticDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9956,"src":"6916:17:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":9994,"name":"schema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9899,"src":"6937:6:33","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"id":9995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6944:16:33","memberName":"staticDataLength","nodeType":"MemberAccess","referencedDeclaration":9756,"src":"6937:23:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Schema_$9581_$returns$_t_uint256_$attached_to$_t_userDefinedValueType$_Schema_$9581_$","typeString":"function (Schema) pure returns (uint256)"}},"id":9996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6937:25:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6916:46:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10007,"nodeType":"IfStatement","src":"6912:135:33","trueBody":{"id":10006,"nodeType":"Block","src":"6964:83:33","statements":[{"errorCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":10001,"name":"schema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9899,"src":"7014:6:33","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"id":10002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7021:16:33","memberName":"staticDataLength","nodeType":"MemberAccess","referencedDeclaration":9756,"src":"7014:23:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Schema_$9581_$returns$_t_uint256_$attached_to$_t_userDefinedValueType$_Schema_$9581_$","typeString":"function (Schema) pure returns (uint256)"}},"id":10003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7014:25:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9998,"name":"ISchemaErrors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8633,"src":"6979:13:33","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISchemaErrors_$8633_$","typeString":"type(contract ISchemaErrors)"}},"id":10000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6993:20:33","memberName":"Schema_InvalidLength","nodeType":"MemberAccess","referencedDeclaration":8629,"src":"6979:34:33","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":10004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6979:61:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10005,"nodeType":"RevertStatement","src":"6972:68:33"}]}},{"body":{"id":10038,"nodeType":"Block","src":"7163:228:33","statements":[{"assignments":[10016],"declarations":[{"constant":false,"id":10016,"mutability":"mutable","name":"staticByteLength","nameLocation":"7179:16:33","nodeType":"VariableDeclaration","scope":10038,"src":"7171:24:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10015,"name":"uint256","nodeType":"ElementaryTypeName","src":"7171:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10023,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":10019,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10009,"src":"7213:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10017,"name":"schema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9899,"src":"7198:6:33","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"id":10018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7205:7:33","memberName":"atIndex","nodeType":"MemberAccess","referencedDeclaration":9792,"src":"7198:14:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Schema_$9581_$_t_uint256_$returns$_t_enum$_SchemaType_$6396_$attached_to$_t_userDefinedValueType$_Schema_$9581_$","typeString":"function (Schema,uint256) pure returns (enum SchemaType)"}},"id":10020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7198:17:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_SchemaType_$6396","typeString":"enum SchemaType"}},"id":10021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7216:19:33","memberName":"getStaticByteLength","nodeType":"MemberAccess","referencedDeclaration":6437,"src":"7198:37:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_SchemaType_$6396_$returns$_t_uint256_$attached_to$_t_enum$_SchemaType_$6396_$","typeString":"function (enum SchemaType) pure returns (uint256)"}},"id":10022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7198:39:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7171:66:33"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10024,"name":"staticByteLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10016,"src":"7249:16:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":10025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7268:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7249:20:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10033,"nodeType":"IfStatement","src":"7245:101:33","trueBody":{"id":10032,"nodeType":"Block","src":"7271:75:33","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":10027,"name":"ISchemaErrors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8633,"src":"7288:13:33","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISchemaErrors_$8633_$","typeString":"type(contract ISchemaErrors)"}},"id":10029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7302:33:33","memberName":"Schema_StaticTypeAfterDynamicType","nodeType":"MemberAccess","referencedDeclaration":8632,"src":"7288:47:33","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":10030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7288:49:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10031,"nodeType":"RevertStatement","src":"7281:56:33"}]}},{"id":10037,"nodeType":"UncheckedBlock","src":"7353:32:33","statements":[{"expression":{"id":10035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7373:3:33","subExpression":{"id":10034,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10009,"src":"7373:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10036,"nodeType":"ExpressionStatement","src":"7373:3:33"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10012,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10009,"src":"7140:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":10013,"name":"_numTotalFields","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9940,"src":"7144:15:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7140:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10039,"initializationExpression":{"assignments":[10009],"declarations":[{"constant":false,"id":10009,"mutability":"mutable","name":"i","nameLocation":"7118:1:33","nodeType":"VariableDeclaration","scope":10039,"src":"7110:9:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10008,"name":"uint256","nodeType":"ElementaryTypeName","src":"7110:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10011,"initialValue":{"id":10010,"name":"_numStaticFields","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9934,"src":"7122:16:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7110:28:33"},"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"7105:286:33"}]},"documentation":{"id":9896,"nodeType":"StructuredDocumentation","src":"5594:163:33","text":" @notice Validates the given schema.\n @param schema The schema to validate.\n @param allowEmpty Determines if an empty schema is valid or not."},"implemented":true,"kind":"function","modifiers":[],"name":"validate","nameLocation":"5769:8:33","parameters":{"id":9902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9899,"mutability":"mutable","name":"schema","nameLocation":"5785:6:33","nodeType":"VariableDeclaration","scope":10041,"src":"5778:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"},"typeName":{"id":9898,"nodeType":"UserDefinedTypeName","pathNode":{"id":9897,"name":"Schema","nameLocations":["5778:6:33"],"nodeType":"IdentifierPath","referencedDeclaration":9581,"src":"5778:6:33"},"referencedDeclaration":9581,"src":"5778:6:33","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"visibility":"internal"},{"constant":false,"id":9901,"mutability":"mutable","name":"allowEmpty","nameLocation":"5798:10:33","nodeType":"VariableDeclaration","scope":10041,"src":"5793:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9900,"name":"bool","nodeType":"ElementaryTypeName","src":"5793:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5777:32:33"},"returnParameters":{"id":9903,"nodeType":"ParameterList","parameters":[],"src":"5824:0:33"},"scope":10057,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10056,"nodeType":"FunctionDefinition","src":"7581:102:33","nodes":[],"body":{"id":10055,"nodeType":"Block","src":"7644:39:33","nodes":[],"statements":[{"expression":{"arguments":[{"id":10052,"name":"schema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10045,"src":"7671:6:33","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}],"expression":{"id":10050,"name":"Schema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9581,"src":"7657:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Schema_$9581_$","typeString":"type(Schema)"}},"id":10051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7664:6:33","memberName":"unwrap","nodeType":"MemberAccess","src":"7657:13:33","typeDescriptions":{"typeIdentifier":"t_function_unwrap_pure$_t_userDefinedValueType$_Schema_$9581_$returns$_t_bytes32_$","typeString":"function (Schema) pure returns (bytes32)"}},"id":10053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7657:21:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":10049,"id":10054,"nodeType":"Return","src":"7650:28:33"}]},"documentation":{"id":10042,"nodeType":"StructuredDocumentation","src":"7399:179:33","text":" @notice Unwraps the schema to its underlying bytes32 representation.\n @param schema The schema to unwrap.\n @return The bytes32 representation of the schema."},"implemented":true,"kind":"function","modifiers":[],"name":"unwrap","nameLocation":"7590:6:33","parameters":{"id":10046,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10045,"mutability":"mutable","name":"schema","nameLocation":"7604:6:33","nodeType":"VariableDeclaration","scope":10056,"src":"7597:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"},"typeName":{"id":10044,"nodeType":"UserDefinedTypeName","pathNode":{"id":10043,"name":"Schema","nameLocations":["7597:6:33"],"nodeType":"IdentifierPath","referencedDeclaration":9581,"src":"7597:6:33"},"referencedDeclaration":9581,"src":"7597:6:33","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"visibility":"internal"}],"src":"7596:15:33"},"returnParameters":{"id":10049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10048,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10056,"src":"7635:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10047,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7635:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7634:9:33"},"scope":10057,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SchemaInstance","contractDependencies":[],"contractKind":"library","documentation":{"id":9735,"nodeType":"StructuredDocumentation","src":"3290:165:33","text":" @title SchemaInstance\n @author MUD (https://mud.dev) by Lattice (https://lattice.xyz)\n @dev Instance utility functions for handling a Schema instance."},"fullyImplemented":true,"linearizedBaseContracts":[10057],"name":"SchemaInstance","nameLocation":"3464:14:33","scope":10058,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":33}