{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/libraries/LibPosition.sol","id":175694,"exportedSymbols":{"ArrayLib":[47126],"EntitiesAtPosition":[105883],"Position":[148876],"PositionData":[147750],"_popEntityFromPosition":[175638],"removePosition":[175693],"setPosition":[175673]},"nodeType":"SourceUnit","src":"38:1205:300","nodes":[{"id":175566,"nodeType":"PragmaDirective","src":"38:25:300","nodes":[],"literals":["solidity",">=","0.8",".24"]},{"id":175570,"nodeType":"ImportDirective","src":"65:82:300","nodes":[],"absolutePath":"src/codegen/index.sol","file":"../codegen/index.sol","nameLocation":"-1:-1:-1","scope":175694,"sourceUnit":87483,"symbolAliases":[{"foreign":{"id":175567,"name":"Position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":148876,"src":"74:8:300","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":175568,"name":"PositionData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":147750,"src":"84:12:300","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":175569,"name":"EntitiesAtPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105883,"src":"98:18:300","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":175572,"nodeType":"ImportDirective","src":"148:84:300","nodes":[],"absolutePath":"node_modules/@latticexyz/world-modules/src/modules/utils/ArrayLib.sol","file":"@latticexyz/world-modules/src/modules/utils/ArrayLib.sol","nameLocation":"-1:-1:-1","scope":175694,"sourceUnit":47127,"symbolAliases":[{"foreign":{"id":175571,"name":"ArrayLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47126,"src":"157:8:300","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":175576,"nodeType":"UsingForDirective","src":"234:29:300","nodes":[],"global":false,"libraryName":{"id":175573,"name":"ArrayLib","nameLocations":["240:8:300"],"nodeType":"IdentifierPath","referencedDeclaration":47126,"src":"240:8:300"},"typeName":{"baseType":{"id":175574,"name":"bytes32","nodeType":"ElementaryTypeName","src":"253:7:300","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":175575,"nodeType":"ArrayTypeName","src":"253:9:300","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},{"id":175638,"nodeType":"FunctionDefinition","src":"265:559:300","nodes":[],"body":{"id":175637,"nodeType":"Block","src":"334:490:300","nodes":[],"statements":[{"assignments":[175585],"declarations":[{"constant":false,"id":175585,"mutability":"mutable","name":"previousPosition","nameLocation":"358:16:300","nodeType":"VariableDeclaration","scope":175637,"src":"338:36:300","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData"},"typeName":{"id":175584,"nodeType":"UserDefinedTypeName","pathNode":{"id":175583,"name":"PositionData","nameLocations":["338:12:300"],"nodeType":"IdentifierPath","referencedDeclaration":147750,"src":"338:12:300"},"referencedDeclaration":147750,"src":"338:12:300","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_storage_ptr","typeString":"struct PositionData"}},"visibility":"internal"}],"id":175591,"initialValue":{"arguments":[{"id":175588,"name":"matchEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175578,"src":"390:11:300","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":175589,"name":"entity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175580,"src":"403:6:300","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":175586,"name":"Position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":148876,"src":"377:8:300","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Position_$148876_$","typeString":"type(library Position)"}},"id":175587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"386:3:300","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":148341,"src":"377:12:300","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_struct$_PositionData_$147750_memory_ptr_$","typeString":"function (bytes32,bytes32) view returns (struct PositionData memory)"}},"id":175590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"377:33:300","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData memory"}},"nodeType":"VariableDeclarationStatement","src":"338:72:300"},{"assignments":[175596],"declarations":[{"constant":false,"id":175596,"mutability":"mutable","name":"entitiesAtPreviousPosition","nameLocation":"431:26:300","nodeType":"VariableDeclaration","scope":175637,"src":"414:43:300","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":175594,"name":"bytes32","nodeType":"ElementaryTypeName","src":"414:7:300","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":175595,"nodeType":"ArrayTypeName","src":"414:9:300","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":175608,"initialValue":{"arguments":[{"id":175606,"name":"entity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175580,"src":"553:6:300","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"id":175599,"name":"matchEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175578,"src":"488:11:300","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":175600,"name":"previousPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175585,"src":"501:16:300","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData memory"}},"id":175601,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"518:1:300","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":147747,"src":"501:18:300","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},{"expression":{"id":175602,"name":"previousPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175585,"src":"521:16:300","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData memory"}},"id":175603,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"538:1:300","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":147749,"src":"521:18:300","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_int32","typeString":"int32"},{"typeIdentifier":"t_int32","typeString":"int32"}],"expression":{"id":175597,"name":"EntitiesAtPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105883,"src":"460:18:300","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EntitiesAtPosition_$105883_$","typeString":"type(library EntitiesAtPosition)"}},"id":175598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"484:3:300","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":103666,"src":"460:27:300","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_int32_$_t_int32_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (bytes32,int32,int32) view returns (bytes32[] memory)"}},"id":175604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"460:80:300","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":175605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"546:6:300","memberName":"filter","nodeType":"MemberAccess","referencedDeclaration":47125,"src":"460:92:300","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$attached_to$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (bytes32[] memory,bytes32) pure returns (bytes32[] memory)"}},"id":175607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"460:100:300","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"414:146:300"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":175612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":175609,"name":"entitiesAtPreviousPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175596,"src":"568:26:300","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":175610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"595:6:300","memberName":"length","nodeType":"MemberAccess","src":"568:33:300","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":175611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"604:1:300","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"568:37:300","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":175635,"nodeType":"Block","src":"727:95:300","statements":[{"expression":{"arguments":[{"id":175628,"name":"matchEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175578,"src":"765:11:300","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":175629,"name":"previousPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175585,"src":"778:16:300","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData memory"}},"id":175630,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"795:1:300","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":147747,"src":"778:18:300","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},{"expression":{"id":175631,"name":"previousPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175585,"src":"798:16:300","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData memory"}},"id":175632,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"815:1:300","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":147749,"src":"798:18:300","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_int32","typeString":"int32"},{"typeIdentifier":"t_int32","typeString":"int32"}],"expression":{"id":175625,"name":"EntitiesAtPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105883,"src":"733:18:300","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EntitiesAtPosition_$105883_$","typeString":"type(library EntitiesAtPosition)"}},"id":175627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"752:12:300","memberName":"deleteRecord","nodeType":"MemberAccess","referencedDeclaration":105676,"src":"733:31:300","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_int32_$_t_int32_$returns$__$","typeString":"function (bytes32,int32,int32)"}},"id":175633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"733:84:300","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":175634,"nodeType":"ExpressionStatement","src":"733:84:300"}]},"id":175636,"nodeType":"IfStatement","src":"564:258:300","trueBody":{"id":175624,"nodeType":"Block","src":"607:114:300","statements":[{"expression":{"arguments":[{"id":175616,"name":"matchEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175578,"src":"636:11:300","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":175617,"name":"previousPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175585,"src":"649:16:300","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData memory"}},"id":175618,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"666:1:300","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":147747,"src":"649:18:300","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},{"expression":{"id":175619,"name":"previousPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175585,"src":"669:16:300","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData memory"}},"id":175620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"686:1:300","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":147749,"src":"669:18:300","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},{"id":175621,"name":"entitiesAtPreviousPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175596,"src":"689:26:300","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_int32","typeString":"int32"},{"typeIdentifier":"t_int32","typeString":"int32"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"expression":{"id":175613,"name":"EntitiesAtPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105883,"src":"613:18:300","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EntitiesAtPosition_$105883_$","typeString":"type(library EntitiesAtPosition)"}},"id":175615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"632:3:300","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":103969,"src":"613:22:300","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_int32_$_t_int32_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$","typeString":"function (bytes32,int32,int32,bytes32[] memory)"}},"id":175622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"613:103:300","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":175623,"nodeType":"ExpressionStatement","src":"613:103:300"}]}}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"_popEntityFromPosition","nameLocation":"274:22:300","parameters":{"id":175581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":175578,"mutability":"mutable","name":"matchEntity","nameLocation":"305:11:300","nodeType":"VariableDeclaration","scope":175638,"src":"297:19:300","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":175577,"name":"bytes32","nodeType":"ElementaryTypeName","src":"297:7:300","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":175580,"mutability":"mutable","name":"entity","nameLocation":"326:6:300","nodeType":"VariableDeclaration","scope":175638,"src":"318:14:300","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":175579,"name":"bytes32","nodeType":"ElementaryTypeName","src":"318:7:300","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"296:37:300"},"returnParameters":{"id":175582,"nodeType":"ParameterList","parameters":[],"src":"334:0:300"},"scope":175694,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":175673,"nodeType":"FunctionDefinition","src":"826:257:300","nodes":[],"body":{"id":175672,"nodeType":"Block","src":"914:169:300","nodes":[],"statements":[{"expression":{"arguments":[{"id":175649,"name":"matchEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175640,"src":"941:11:300","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":175650,"name":"entity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175642,"src":"954:6:300","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":175648,"name":"_popEntityFromPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175638,"src":"918:22:300","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":175651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"918:43:300","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":175652,"nodeType":"ExpressionStatement","src":"918:43:300"},{"expression":{"arguments":[{"id":175656,"name":"matchEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175640,"src":"978:11:300","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":175657,"name":"entity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175642,"src":"991:6:300","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":175658,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175645,"src":"999:8:300","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData memory"}],"expression":{"id":175653,"name":"Position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":148876,"src":"965:8:300","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Position_$148876_$","typeString":"type(library Position)"}},"id":175655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"974:3:300","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":148578,"src":"965:12:300","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_struct$_PositionData_$147750_memory_ptr_$returns$__$","typeString":"function (bytes32,bytes32,struct PositionData memory)"}},"id":175659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"965:43:300","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":175660,"nodeType":"ExpressionStatement","src":"965:43:300"},{"expression":{"arguments":[{"id":175664,"name":"matchEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175640,"src":"1036:11:300","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":175665,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175645,"src":"1049:8:300","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData memory"}},"id":175666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1058:1:300","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":147747,"src":"1049:10:300","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},{"expression":{"id":175667,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175645,"src":"1061:8:300","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData memory"}},"id":175668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1070:1:300","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":147749,"src":"1061:10:300","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},{"id":175669,"name":"entity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175642,"src":"1073:6:300","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_int32","typeString":"int32"},{"typeIdentifier":"t_int32","typeString":"int32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":175661,"name":"EntitiesAtPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105883,"src":"1012:18:300","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EntitiesAtPosition_$105883_$","typeString":"type(library EntitiesAtPosition)"}},"id":175663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1031:4:300","memberName":"push","nodeType":"MemberAccess","referencedDeclaration":104906,"src":"1012:23:300","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_int32_$_t_int32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,int32,int32,bytes32)"}},"id":175670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1012:68:300","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":175671,"nodeType":"ExpressionStatement","src":"1012:68:300"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"setPosition","nameLocation":"835:11:300","parameters":{"id":175646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":175640,"mutability":"mutable","name":"matchEntity","nameLocation":"855:11:300","nodeType":"VariableDeclaration","scope":175673,"src":"847:19:300","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":175639,"name":"bytes32","nodeType":"ElementaryTypeName","src":"847:7:300","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":175642,"mutability":"mutable","name":"entity","nameLocation":"876:6:300","nodeType":"VariableDeclaration","scope":175673,"src":"868:14:300","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":175641,"name":"bytes32","nodeType":"ElementaryTypeName","src":"868:7:300","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":175645,"mutability":"mutable","name":"position","nameLocation":"904:8:300","nodeType":"VariableDeclaration","scope":175673,"src":"884:28:300","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData"},"typeName":{"id":175644,"nodeType":"UserDefinedTypeName","pathNode":{"id":175643,"name":"PositionData","nameLocations":["884:12:300"],"nodeType":"IdentifierPath","referencedDeclaration":147750,"src":"884:12:300"},"referencedDeclaration":147750,"src":"884:12:300","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_storage_ptr","typeString":"struct PositionData"}},"visibility":"internal"}],"src":"846:67:300"},"returnParameters":{"id":175647,"nodeType":"ParameterList","parameters":[],"src":"914:0:300"},"scope":175694,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":175693,"nodeType":"FunctionDefinition","src":"1085:157:300","nodes":[],"body":{"id":175692,"nodeType":"Block","src":"1146:96:300","nodes":[],"statements":[{"expression":{"arguments":[{"id":175681,"name":"matchEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175675,"src":"1173:11:300","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":175682,"name":"entity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175677,"src":"1186:6:300","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":175680,"name":"_popEntityFromPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175638,"src":"1150:22:300","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":175683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1150:43:300","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":175684,"nodeType":"ExpressionStatement","src":"1150:43:300"},{"expression":{"arguments":[{"id":175688,"name":"matchEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175675,"src":"1219:11:300","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":175689,"name":"entity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175677,"src":"1232:6:300","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":175685,"name":"Position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":148876,"src":"1197:8:300","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Position_$148876_$","typeString":"type(library Position)"}},"id":175687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1206:12:300","memberName":"deleteRecord","nodeType":"MemberAccess","referencedDeclaration":148746,"src":"1197:21:300","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":175690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1197:42:300","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":175691,"nodeType":"ExpressionStatement","src":"1197:42:300"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"removePosition","nameLocation":"1094:14:300","parameters":{"id":175678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":175675,"mutability":"mutable","name":"matchEntity","nameLocation":"1117:11:300","nodeType":"VariableDeclaration","scope":175693,"src":"1109:19:300","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":175674,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1109:7:300","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":175677,"mutability":"mutable","name":"entity","nameLocation":"1138:6:300","nodeType":"VariableDeclaration","scope":175693,"src":"1130:14:300","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":175676,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1130:7:300","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1108:37:300"},"returnParameters":{"id":175679,"nodeType":"ParameterList","parameters":[],"src":"1146:0:300"},"scope":175694,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"license":"Unlicense"},"id":300}