{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/libraries/LibMatch.sol","id":174815,"exportedSymbols":{"FORCE_START_WAIT":[174504],"FULL_READY_START_WAIT":[174501],"LevelPosition":[114630],"LevelPositionData":[113402],"LevelTemplates":[118786],"LevelTemplatesIndex":[120591],"MapCenterMarkerTemplateId":[167877],"MatchConfig":[125136],"MatchPlayers":[132109],"MatchReady":[134260],"Name":[144479],"Player":[147014],"PlayerReady":[147720],"Position":[148876],"PositionData":[147750],"SpawnPoint":[156321],"SpawnReservedBy":[157091],"SpawnSettlementTemplateId":[169692],"findMapCenter":[174713],"getLevelSpawnIndices":[177025],"spawnStarter":[174814],"spawnTemplateAt":[176615],"startMatchIfAllReady":[174657],"startMatchIfAllRegistered":[174563]},"nodeType":"SourceUnit","src":"32:3078:295","nodes":[{"id":174476,"nodeType":"PragmaDirective","src":"32:25:295","nodes":[],"literals":["solidity",">=","0.8",".24"]},{"id":174491,"nodeType":"ImportDirective","src":"59:228:295","nodes":[],"absolutePath":"src/codegen/index.sol","file":"../codegen/index.sol","nameLocation":"-1:-1:-1","scope":174815,"sourceUnit":87483,"symbolAliases":[{"foreign":{"id":174477,"name":"LevelPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":114630,"src":"68:13:295","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":174478,"name":"LevelPositionData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113402,"src":"83:17:295","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":174479,"name":"LevelTemplates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118786,"src":"102:14:295","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":174480,"name":"LevelTemplatesIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120591,"src":"118:19:295","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":174481,"name":"MatchConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125136,"src":"139:11:295","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":174482,"name":"MatchReady","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":134260,"src":"152:10:295","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":174483,"name":"Player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":147014,"src":"164:6:295","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":174484,"name":"Name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":144479,"src":"172:4:295","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":174485,"name":"SpawnPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":156321,"src":"178:10:295","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":174486,"name":"SpawnReservedBy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":157091,"src":"190:15:295","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":174487,"name":"Position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":148876,"src":"207:8:295","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":174488,"name":"PositionData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":147750,"src":"217:12:295","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":174489,"name":"PlayerReady","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":147720,"src":"231:11:295","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":174490,"name":"MatchPlayers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":132109,"src":"244:12:295","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":174494,"nodeType":"ImportDirective","src":"288:96:295","nodes":[],"absolutePath":"src/codegen/Templates.sol","file":"../codegen/Templates.sol","nameLocation":"-1:-1:-1","scope":174815,"sourceUnit":87281,"symbolAliases":[{"foreign":{"id":174492,"name":"MapCenterMarkerTemplateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":167877,"src":"297:25:295","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":174493,"name":"SpawnSettlementTemplateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":169692,"src":"324:25:295","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":174496,"nodeType":"ImportDirective","src":"386:63:295","nodes":[],"absolutePath":"src/libraries/LibTemplate.sol","file":"../libraries/LibTemplate.sol","nameLocation":"-1:-1:-1","scope":174815,"sourceUnit":176616,"symbolAliases":[{"foreign":{"id":174495,"name":"spawnTemplateAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":176615,"src":"395:15:295","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":174498,"nodeType":"ImportDirective","src":"450:65:295","nodes":[],"absolutePath":"src/libraries/LibUtils.sol","file":"../libraries/LibUtils.sol","nameLocation":"-1:-1:-1","scope":174815,"sourceUnit":177026,"symbolAliases":[{"foreign":{"id":174497,"name":"getLevelSpawnIndices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":177025,"src":"459:20:295","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":174501,"nodeType":"VariableDeclaration","src":"517:50:295","nodes":[],"constant":true,"mutability":"constant","name":"FULL_READY_START_WAIT","nameLocation":"534:21:295","scope":174815,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":174499,"name":"uint256","nodeType":"ElementaryTypeName","src":"517:7:295","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"35","id":174500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"558:9:295","subdenomination":"seconds","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"visibility":"internal"},{"id":174504,"nodeType":"VariableDeclaration","src":"569:45:295","nodes":[],"constant":true,"mutability":"constant","name":"FORCE_START_WAIT","nameLocation":"586:16:295","scope":174815,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":174502,"name":"uint256","nodeType":"ElementaryTypeName","src":"569:7:295","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32","id":174503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"605:9:295","subdenomination":"minutes","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"2"},"visibility":"internal"},{"id":174563,"nodeType":"FunctionDefinition","src":"617:559:295","nodes":[],"body":{"id":174562,"nodeType":"Block","src":"673:503:295","nodes":[],"statements":[{"assignments":[174510],"declarations":[{"constant":false,"id":174510,"mutability":"mutable","name":"copiedTime","nameLocation":"685:10:295","nodeType":"VariableDeclaration","scope":174562,"src":"677:18:295","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":174509,"name":"uint256","nodeType":"ElementaryTypeName","src":"677:7:295","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":174515,"initialValue":{"arguments":[{"id":174513,"name":"matchEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174506,"src":"713:11:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":174511,"name":"MatchReady","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":134260,"src":"698:10:295","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MatchReady_$134260_$","typeString":"type(library MatchReady)"}},"id":174512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"709:3:295","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":133916,"src":"698:14:295","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view returns (uint256)"}},"id":174514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"698:27:295","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"677:48:295"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":174523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":174518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":174516,"name":"copiedTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174510,"src":"773:10:295","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":174517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"787:1:295","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"773:15:295","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":174522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":174519,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"792:5:295","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":174520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"798:9:295","memberName":"timestamp","nodeType":"MemberAccess","src":"792:15:295","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":174521,"name":"copiedTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174510,"src":"811:10:295","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"792:29:295","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"773:48:295","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":174561,"nodeType":"IfStatement","src":"769:405:295","trueBody":{"id":174560,"nodeType":"Block","src":"823:351:295","statements":[{"assignments":[174525],"declarations":[{"constant":false,"id":174525,"mutability":"mutable","name":"levelId","nameLocation":"837:7:295","nodeType":"VariableDeclaration","scope":174560,"src":"829:15:295","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":174524,"name":"bytes32","nodeType":"ElementaryTypeName","src":"829:7:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":174530,"initialValue":{"arguments":[{"id":174528,"name":"matchEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174506,"src":"870:11:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":174526,"name":"MatchConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125136,"src":"847:11:295","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MatchConfig_$125136_$","typeString":"type(library MatchConfig)"}},"id":174527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"859:10:295","memberName":"getLevelId","nodeType":"MemberAccess","referencedDeclaration":124046,"src":"847:22:295","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":174529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"847:35:295","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"829:53:295"},{"assignments":[174535],"declarations":[{"constant":false,"id":174535,"mutability":"mutable","name":"playersInMatch","nameLocation":"905:14:295","nodeType":"VariableDeclaration","scope":174560,"src":"888:31:295","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":174533,"name":"bytes32","nodeType":"ElementaryTypeName","src":"888:7:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":174534,"nodeType":"ArrayTypeName","src":"888:9:295","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":174540,"initialValue":{"arguments":[{"id":174538,"name":"matchEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174506,"src":"939:11:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":174536,"name":"MatchPlayers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":132109,"src":"922:12:295","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MatchPlayers_$132109_$","typeString":"type(library MatchPlayers)"}},"id":174537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"935:3:295","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":130844,"src":"922:16:295","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (bytes32) view returns (bytes32[] memory)"}},"id":174539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"922:29:295","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"888:63:295"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":174547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":174541,"name":"playersInMatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174535,"src":"1019:14:295","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":174542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1034:6:295","memberName":"length","nodeType":"MemberAccess","src":"1019:21:295","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":174544,"name":"levelId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174525,"src":"1065:7:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":174543,"name":"getLevelSpawnIndices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":177025,"src":"1044:20:295","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (bytes32) view returns (uint256[] memory)"}},"id":174545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1044:29:295","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":174546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1074:6:295","memberName":"length","nodeType":"MemberAccess","src":"1044:36:295","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1019:61:295","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":174559,"nodeType":"IfStatement","src":"1015:155:295","trueBody":{"id":174558,"nodeType":"Block","src":"1082:88:295","statements":[{"expression":{"arguments":[{"id":174551,"name":"matchEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174506,"src":"1115:11:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":174555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":174552,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1128:5:295","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":174553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1134:9:295","memberName":"timestamp","nodeType":"MemberAccess","src":"1128:15:295","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":174554,"name":"FORCE_START_WAIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174504,"src":"1146:16:295","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1128:34:295","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":174548,"name":"MatchConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125136,"src":"1090:11:295","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MatchConfig_$125136_$","typeString":"type(library MatchConfig)"}},"id":174550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1102:12:295","memberName":"setStartTime","nodeType":"MemberAccess","referencedDeclaration":123794,"src":"1090:24:295","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":174556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1090:73:295","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":174557,"nodeType":"ExpressionStatement","src":"1090:73:295"}]}}]}}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"startMatchIfAllRegistered","nameLocation":"626:25:295","parameters":{"id":174507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":174506,"mutability":"mutable","name":"matchEntity","nameLocation":"660:11:295","nodeType":"VariableDeclaration","scope":174563,"src":"652:19:295","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":174505,"name":"bytes32","nodeType":"ElementaryTypeName","src":"652:7:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"651:21:295"},"returnParameters":{"id":174508,"nodeType":"ParameterList","parameters":[],"src":"673:0:295"},"scope":174815,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":174657,"nodeType":"FunctionDefinition","src":"1178:832:295","nodes":[],"body":{"id":174656,"nodeType":"Block","src":"1229:781:295","nodes":[],"statements":[{"assignments":[174569],"declarations":[{"constant":false,"id":174569,"mutability":"mutable","name":"copiedTime","nameLocation":"1241:10:295","nodeType":"VariableDeclaration","scope":174656,"src":"1233:18:295","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":174568,"name":"uint256","nodeType":"ElementaryTypeName","src":"1233:7:295","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":174574,"initialValue":{"arguments":[{"id":174572,"name":"matchEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174565,"src":"1269:11:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":174570,"name":"MatchReady","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":134260,"src":"1254:10:295","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MatchReady_$134260_$","typeString":"type(library MatchReady)"}},"id":174571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1265:3:295","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":133916,"src":"1254:14:295","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view returns (uint256)"}},"id":174573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1254:27:295","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1233:48:295"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":174582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":174577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":174575,"name":"copiedTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174569,"src":"1329:10:295","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":174576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1343:1:295","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1329:15:295","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":174581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":174578,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1348:5:295","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":174579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1354:9:295","memberName":"timestamp","nodeType":"MemberAccess","src":"1348:15:295","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":174580,"name":"copiedTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174569,"src":"1367:10:295","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1348:29:295","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1329:48:295","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":174655,"nodeType":"IfStatement","src":"1325:683:295","trueBody":{"id":174654,"nodeType":"Block","src":"1379:629:295","statements":[{"assignments":[174584],"declarations":[{"constant":false,"id":174584,"mutability":"mutable","name":"levelId","nameLocation":"1393:7:295","nodeType":"VariableDeclaration","scope":174654,"src":"1385:15:295","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":174583,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1385:7:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":174589,"initialValue":{"arguments":[{"id":174587,"name":"matchEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174565,"src":"1426:11:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":174585,"name":"MatchConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125136,"src":"1403:11:295","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MatchConfig_$125136_$","typeString":"type(library MatchConfig)"}},"id":174586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1415:10:295","memberName":"getLevelId","nodeType":"MemberAccess","referencedDeclaration":124046,"src":"1403:22:295","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":174588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1403:35:295","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1385:53:295"},{"assignments":[174594],"declarations":[{"constant":false,"id":174594,"mutability":"mutable","name":"playersInMatch","nameLocation":"1462:14:295","nodeType":"VariableDeclaration","scope":174654,"src":"1445:31:295","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":174592,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1445:7:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":174593,"nodeType":"ArrayTypeName","src":"1445:9:295","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":174599,"initialValue":{"arguments":[{"id":174597,"name":"matchEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174565,"src":"1496:11:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":174595,"name":"MatchPlayers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":132109,"src":"1479:12:295","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MatchPlayers_$132109_$","typeString":"type(library MatchPlayers)"}},"id":174596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1492:3:295","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":130844,"src":"1479:16:295","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (bytes32) view returns (bytes32[] memory)"}},"id":174598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1479:29:295","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"1445:63:295"},{"assignments":[174601],"declarations":[{"constant":false,"id":174601,"mutability":"mutable","name":"numberOfReadys","nameLocation":"1522:14:295","nodeType":"VariableDeclaration","scope":174654,"src":"1514:22:295","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":174600,"name":"uint256","nodeType":"ElementaryTypeName","src":"1514:7:295","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":174603,"initialValue":{"hexValue":"30","id":174602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1539:1:295","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1514:26:295"},{"body":{"id":174633,"nodeType":"Block","src":"1598:149:295","statements":[{"assignments":[174616],"declarations":[{"constant":false,"id":174616,"mutability":"mutable","name":"playerEntity","nameLocation":"1614:12:295","nodeType":"VariableDeclaration","scope":174633,"src":"1606:20:295","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":174615,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1606:7:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":174620,"initialValue":{"baseExpression":{"id":174617,"name":"playersInMatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174594,"src":"1629:14:295","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":174619,"indexExpression":{"id":174618,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174605,"src":"1644:1:295","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1629:17:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1606:40:295"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":174627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":174623,"name":"matchEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174565,"src":"1674:11:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":174624,"name":"playerEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174616,"src":"1687:12:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":174621,"name":"PlayerReady","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":147720,"src":"1658:11:295","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PlayerReady_$147720_$","typeString":"type(library PlayerReady)"}},"id":174622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1670:3:295","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":147312,"src":"1658:15:295","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32,bytes32) view returns (uint256)"}},"id":174625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1658:42:295","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":174626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1703:1:295","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1658:46:295","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":174632,"nodeType":"IfStatement","src":"1654:87:295","trueBody":{"id":174631,"nodeType":"Block","src":"1706:35:295","statements":[{"expression":{"id":174629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1716:16:295","subExpression":{"id":174628,"name":"numberOfReadys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174601,"src":"1716:14:295","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":174630,"nodeType":"ExpressionStatement","src":"1716:16:295"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":174611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":174608,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174605,"src":"1566:1:295","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":174609,"name":"playersInMatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174594,"src":"1570:14:295","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":174610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1585:6:295","memberName":"length","nodeType":"MemberAccess","src":"1570:21:295","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1566:25:295","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":174634,"initializationExpression":{"assignments":[174605],"declarations":[{"constant":false,"id":174605,"mutability":"mutable","name":"i","nameLocation":"1559:1:295","nodeType":"VariableDeclaration","scope":174634,"src":"1551:9:295","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":174604,"name":"uint256","nodeType":"ElementaryTypeName","src":"1551:7:295","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":174607,"initialValue":{"hexValue":"30","id":174606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1563:1:295","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1551:13:295"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":174613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1593:3:295","subExpression":{"id":174612,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174605,"src":"1593:1:295","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":174614,"nodeType":"ExpressionStatement","src":"1593:3:295"},"nodeType":"ForStatement","src":"1546:201:295"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":174641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":174635,"name":"numberOfReadys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174601,"src":"1829:14:295","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":174638,"name":"levelId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174584,"src":"1874:7:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":174639,"name":"SpawnSettlementTemplateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":169692,"src":"1883:25:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":174636,"name":"LevelTemplatesIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120591,"src":"1847:19:295","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LevelTemplatesIndex_$120591_$","typeString":"type(library LevelTemplatesIndex)"}},"id":174637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1867:6:295","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":119481,"src":"1847:26:295","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32,bytes32) view returns (uint256)"}},"id":174640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1847:62:295","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1829:80:295","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":174653,"nodeType":"IfStatement","src":"1825:179:295","trueBody":{"id":174652,"nodeType":"Block","src":"1911:93:295","statements":[{"expression":{"arguments":[{"id":174645,"name":"matchEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174565,"src":"1944:11:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":174649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":174646,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1957:5:295","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":174647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1963:9:295","memberName":"timestamp","nodeType":"MemberAccess","src":"1957:15:295","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":174648,"name":"FULL_READY_START_WAIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174501,"src":"1975:21:295","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1957:39:295","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":174642,"name":"MatchConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125136,"src":"1919:11:295","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MatchConfig_$125136_$","typeString":"type(library MatchConfig)"}},"id":174644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1931:12:295","memberName":"setStartTime","nodeType":"MemberAccess","referencedDeclaration":123794,"src":"1919:24:295","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":174650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1919:78:295","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":174651,"nodeType":"ExpressionStatement","src":"1919:78:295"}]}}]}}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"startMatchIfAllReady","nameLocation":"1187:20:295","parameters":{"id":174566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":174565,"mutability":"mutable","name":"matchEntity","nameLocation":"1216:11:295","nodeType":"VariableDeclaration","scope":174657,"src":"1208:19:295","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":174564,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1208:7:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1207:21:295"},"returnParameters":{"id":174567,"nodeType":"ParameterList","parameters":[],"src":"1229:0:295"},"scope":174815,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":174713,"nodeType":"FunctionDefinition","src":"2012:517:295","nodes":[],"body":{"id":174712,"nodeType":"Block","src":"2091:438:295","nodes":[],"statements":[{"assignments":[174666],"declarations":[{"constant":false,"id":174666,"mutability":"mutable","name":"levelId","nameLocation":"2103:7:295","nodeType":"VariableDeclaration","scope":174712,"src":"2095:15:295","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":174665,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2095:7:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":174671,"initialValue":{"arguments":[{"id":174669,"name":"matchEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174659,"src":"2136:11:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":174667,"name":"MatchConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125136,"src":"2113:11:295","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MatchConfig_$125136_$","typeString":"type(library MatchConfig)"}},"id":174668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2125:10:295","memberName":"getLevelId","nodeType":"MemberAccess","referencedDeclaration":124046,"src":"2113:22:295","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":174670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2113:35:295","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2095:53:295"},{"assignments":[174676],"declarations":[{"constant":false,"id":174676,"mutability":"mutable","name":"indices","nameLocation":"2245:7:295","nodeType":"VariableDeclaration","scope":174712,"src":"2228:24:295","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":174674,"name":"uint256","nodeType":"ElementaryTypeName","src":"2228:7:295","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":174675,"nodeType":"ArrayTypeName","src":"2228:9:295","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":174682,"initialValue":{"arguments":[{"id":174679,"name":"levelId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174666,"src":"2279:7:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":174680,"name":"MapCenterMarkerTemplateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":167877,"src":"2288:25:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":174677,"name":"LevelTemplatesIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120591,"src":"2255:19:295","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LevelTemplatesIndex_$120591_$","typeString":"type(library LevelTemplatesIndex)"}},"id":174678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2275:3:295","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":119090,"src":"2255:23:295","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (bytes32,bytes32) view returns (uint256[] memory)"}},"id":174681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2255:59:295","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2228:86:295"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":174686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":174683,"name":"indices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174676,"src":"2322:7:295","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":174684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2330:6:295","memberName":"length","nodeType":"MemberAccess","src":"2322:14:295","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":174685,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2339:1:295","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2322:18:295","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":174706,"nodeType":"IfStatement","src":"2318:169:295","trueBody":{"id":174705,"nodeType":"Block","src":"2342:145:295","statements":[{"assignments":[174689],"declarations":[{"constant":false,"id":174689,"mutability":"mutable","name":"position","nameLocation":"2373:8:295","nodeType":"VariableDeclaration","scope":174705,"src":"2348:33:295","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LevelPositionData_$113402_memory_ptr","typeString":"struct LevelPositionData"},"typeName":{"id":174688,"nodeType":"UserDefinedTypeName","pathNode":{"id":174687,"name":"LevelPositionData","nameLocations":["2348:17:295"],"nodeType":"IdentifierPath","referencedDeclaration":113402,"src":"2348:17:295"},"referencedDeclaration":113402,"src":"2348:17:295","typeDescriptions":{"typeIdentifier":"t_struct$_LevelPositionData_$113402_storage_ptr","typeString":"struct LevelPositionData"}},"visibility":"internal"}],"id":174697,"initialValue":{"arguments":[{"id":174692,"name":"levelId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174666,"src":"2402:7:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":174693,"name":"indices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174676,"src":"2411:7:295","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":174695,"indexExpression":{"hexValue":"30","id":174694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2419:1:295","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2411:10:295","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":174690,"name":"LevelPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":114630,"src":"2384:13:295","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LevelPosition_$114630_$","typeString":"type(library LevelPosition)"}},"id":174691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2398:3:295","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":114047,"src":"2384:17:295","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_uint256_$returns$_t_struct$_LevelPositionData_$113402_memory_ptr_$","typeString":"function (bytes32,uint256) view returns (struct LevelPositionData memory)"}},"id":174696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2384:38:295","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LevelPositionData_$113402_memory_ptr","typeString":"struct LevelPositionData memory"}},"nodeType":"VariableDeclarationStatement","src":"2348:74:295"},{"expression":{"arguments":[{"expression":{"id":174699,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174689,"src":"2454:8:295","typeDescriptions":{"typeIdentifier":"t_struct$_LevelPositionData_$113402_memory_ptr","typeString":"struct LevelPositionData memory"}},"id":174700,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2463:1:295","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":113399,"src":"2454:10:295","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},{"expression":{"id":174701,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174689,"src":"2469:8:295","typeDescriptions":{"typeIdentifier":"t_struct$_LevelPositionData_$113402_memory_ptr","typeString":"struct LevelPositionData memory"}},"id":174702,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2478:1:295","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":113401,"src":"2469:10:295","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int32","typeString":"int32"},{"typeIdentifier":"t_int32","typeString":"int32"}],"id":174698,"name":"PositionData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":147750,"src":"2436:12:295","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_PositionData_$147750_storage_ptr_$","typeString":"type(struct PositionData storage pointer)"}},"id":174703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2451:1:295","2466:1:295"],"names":["x","y"],"nodeType":"FunctionCall","src":"2436:46:295","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData memory"}},"functionReturnParameters":174664,"id":174704,"nodeType":"Return","src":"2429:53:295"}]}},{"expression":{"arguments":[{"hexValue":"30","id":174708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2516:1:295","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":174709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2522:1:295","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"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":174707,"name":"PositionData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":147750,"src":"2498:12:295","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_PositionData_$147750_storage_ptr_$","typeString":"type(struct PositionData storage pointer)"}},"id":174710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2513:1:295","2519:1:295"],"names":["x","y"],"nodeType":"FunctionCall","src":"2498:28:295","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData memory"}},"functionReturnParameters":174664,"id":174711,"nodeType":"Return","src":"2491:35:295"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"findMapCenter","nameLocation":"2021:13:295","parameters":{"id":174660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":174659,"mutability":"mutable","name":"matchEntity","nameLocation":"2043:11:295","nodeType":"VariableDeclaration","scope":174713,"src":"2035:19:295","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":174658,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2035:7:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2034:21:295"},"returnParameters":{"id":174664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":174663,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":174713,"src":"2070:19:295","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData"},"typeName":{"id":174662,"nodeType":"UserDefinedTypeName","pathNode":{"id":174661,"name":"PositionData","nameLocations":["2070:12:295"],"nodeType":"IdentifierPath","referencedDeclaration":147750,"src":"2070:12:295"},"referencedDeclaration":147750,"src":"2070:12:295","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_storage_ptr","typeString":"struct PositionData"}},"visibility":"internal"}],"src":"2069:21:295"},"scope":174815,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":174814,"nodeType":"FunctionDefinition","src":"2531:578:295","nodes":[],"body":{"id":174813,"nodeType":"Block","src":"2637:472:295","nodes":[],"statements":[{"assignments":[174727],"declarations":[{"constant":false,"id":174727,"mutability":"mutable","name":"mapCenter","nameLocation":"2661:9:295","nodeType":"VariableDeclaration","scope":174813,"src":"2641:29:295","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData"},"typeName":{"id":174726,"nodeType":"UserDefinedTypeName","pathNode":{"id":174725,"name":"PositionData","nameLocations":["2641:12:295"],"nodeType":"IdentifierPath","referencedDeclaration":147750,"src":"2641:12:295"},"referencedDeclaration":147750,"src":"2641:12:295","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_storage_ptr","typeString":"struct PositionData"}},"visibility":"internal"}],"id":174731,"initialValue":{"arguments":[{"id":174729,"name":"matchEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174715,"src":"2687:11:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":174728,"name":"findMapCenter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174713,"src":"2673:13:295","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_struct$_PositionData_$147750_memory_ptr_$","typeString":"function (bytes32) view returns (struct PositionData memory)"}},"id":174730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2673:26:295","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData memory"}},"nodeType":"VariableDeclarationStatement","src":"2641:58:295"},{"assignments":[174733],"declarations":[{"constant":false,"id":174733,"mutability":"mutable","name":"xDiff","nameLocation":"2710:5:295","nodeType":"VariableDeclaration","scope":174813,"src":"2704:11:295","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"},"typeName":{"id":174732,"name":"int32","nodeType":"ElementaryTypeName","src":"2704:5:295","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"visibility":"internal"}],"id":174739,"initialValue":{"commonType":{"typeIdentifier":"t_int32","typeString":"int32"},"id":174738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":174734,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174722,"src":"2718:8:295","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData memory"}},"id":174735,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2727:1:295","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":147747,"src":"2718:10:295","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":174736,"name":"mapCenter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174727,"src":"2731:9:295","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData memory"}},"id":174737,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2741:1:295","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":147747,"src":"2731:11:295","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"src":"2718:24:295","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"VariableDeclarationStatement","src":"2704:38:295"},{"assignments":[174741],"declarations":[{"constant":false,"id":174741,"mutability":"mutable","name":"yDiff","nameLocation":"2752:5:295","nodeType":"VariableDeclaration","scope":174813,"src":"2746:11:295","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"},"typeName":{"id":174740,"name":"int32","nodeType":"ElementaryTypeName","src":"2746:5:295","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"visibility":"internal"}],"id":174747,"initialValue":{"commonType":{"typeIdentifier":"t_int32","typeString":"int32"},"id":174746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":174742,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174722,"src":"2760:8:295","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData memory"}},"id":174743,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2769:1:295","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":147749,"src":"2760:10:295","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":174744,"name":"mapCenter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174727,"src":"2773:9:295","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData memory"}},"id":174745,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2783:1:295","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":147749,"src":"2773:11:295","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"src":"2760:24:295","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"VariableDeclarationStatement","src":"2746:38:295"},{"condition":{"commonType":{"typeIdentifier":"t_int32","typeString":"int32"},"id":174751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":174748,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174722,"src":"2793:8:295","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData memory"}},"id":174749,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2802:1:295","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":147747,"src":"2793:10:295","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":174750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2806:1:295","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2793:14:295","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_int32","typeString":"int32"},"id":174764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":174762,"name":"xDiff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174733,"src":"2857:5:295","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":174763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2865:1:295","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2857:9:295","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_int32","typeString":"int32"},"id":174777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":174775,"name":"yDiff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174741,"src":"2916:5:295","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":174776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2924:1:295","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2916:9:295","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":174797,"nodeType":"Block","src":"2971:38:295","statements":[{"expression":{"id":174795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":174788,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174722,"src":"2977:8:295","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData memory"}},"id":174790,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2986:1:295","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":147749,"src":"2977:10:295","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int32","typeString":"int32"},"id":174794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":174791,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174722,"src":"2990:8:295","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData memory"}},"id":174792,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2999:1:295","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":147749,"src":"2990:10:295","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":174793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3003:1:295","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2990:14:295","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"src":"2977:27:295","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"id":174796,"nodeType":"ExpressionStatement","src":"2977:27:295"}]},"id":174798,"nodeType":"IfStatement","src":"2912:97:295","trueBody":{"id":174787,"nodeType":"Block","src":"2927:38:295","statements":[{"expression":{"id":174785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":174778,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174722,"src":"2933:8:295","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData memory"}},"id":174780,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2942:1:295","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":147749,"src":"2933:10:295","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int32","typeString":"int32"},"id":174784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":174781,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174722,"src":"2946:8:295","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData memory"}},"id":174782,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2955:1:295","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":147749,"src":"2946:10:295","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":174783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2959:1:295","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2946:14:295","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"src":"2933:27:295","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"id":174786,"nodeType":"ExpressionStatement","src":"2933:27:295"}]}},"id":174799,"nodeType":"IfStatement","src":"2853:156:295","trueBody":{"id":174774,"nodeType":"Block","src":"2868:38:295","statements":[{"expression":{"id":174772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":174765,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174722,"src":"2874:8:295","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData memory"}},"id":174767,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2883:1:295","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":147747,"src":"2874:10:295","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int32","typeString":"int32"},"id":174771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":174768,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174722,"src":"2887:8:295","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData memory"}},"id":174769,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2896:1:295","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":147747,"src":"2887:10:295","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":174770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2900:1:295","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2887:14:295","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"src":"2874:27:295","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"id":174773,"nodeType":"ExpressionStatement","src":"2874:27:295"}]}},"id":174800,"nodeType":"IfStatement","src":"2789:220:295","trueBody":{"id":174761,"nodeType":"Block","src":"2809:38:295","statements":[{"expression":{"id":174759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":174752,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174722,"src":"2815:8:295","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData memory"}},"id":174754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2824:1:295","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":147747,"src":"2815:10:295","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int32","typeString":"int32"},"id":174758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":174755,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174722,"src":"2828:8:295","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData memory"}},"id":174756,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2837:1:295","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":147747,"src":"2828:10:295","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":174757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2841:1:295","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2828:14:295","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"src":"2815:27:295","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"id":174760,"nodeType":"ExpressionStatement","src":"2815:27:295"}]}},{"expression":{"arguments":[{"id":174802,"name":"matchEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174715,"src":"3029:11:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":174803,"name":"template","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174717,"src":"3042:8:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":174804,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174719,"src":"3052:5:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"expression":{"id":174806,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174722,"src":"3077:8:295","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData memory"}},"id":174807,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3086:1:295","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":147747,"src":"3077:10:295","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},{"expression":{"id":174808,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174722,"src":"3092:8:295","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData memory"}},"id":174809,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3101:1:295","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":147749,"src":"3092:10:295","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int32","typeString":"int32"},{"typeIdentifier":"t_int32","typeString":"int32"}],"id":174805,"name":"PositionData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":147750,"src":"3059:12:295","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_PositionData_$147750_storage_ptr_$","typeString":"type(struct PositionData storage pointer)"}},"id":174810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3074:1:295","3089:1:295"],"names":["x","y"],"nodeType":"FunctionCall","src":"3059:46:295","tryCall":false,"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_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData memory"}],"id":174801,"name":"spawnTemplateAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":176615,"src":"3013:15:295","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_struct$_PositionData_$147750_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32,struct PositionData memory) returns (bytes32)"}},"id":174811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3013:93:295","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":174812,"nodeType":"ExpressionStatement","src":"3013:93:295"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"spawnStarter","nameLocation":"2540:12:295","parameters":{"id":174723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":174715,"mutability":"mutable","name":"matchEntity","nameLocation":"2561:11:295","nodeType":"VariableDeclaration","scope":174814,"src":"2553:19:295","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":174714,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2553:7:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":174717,"mutability":"mutable","name":"template","nameLocation":"2582:8:295","nodeType":"VariableDeclaration","scope":174814,"src":"2574:16:295","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":174716,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2574:7:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":174719,"mutability":"mutable","name":"owner","nameLocation":"2600:5:295","nodeType":"VariableDeclaration","scope":174814,"src":"2592:13:295","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":174718,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2592:7:295","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":174722,"mutability":"mutable","name":"position","nameLocation":"2627:8:295","nodeType":"VariableDeclaration","scope":174814,"src":"2607:28:295","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_memory_ptr","typeString":"struct PositionData"},"typeName":{"id":174721,"nodeType":"UserDefinedTypeName","pathNode":{"id":174720,"name":"PositionData","nameLocations":["2607:12:295"],"nodeType":"IdentifierPath","referencedDeclaration":147750,"src":"2607:12:295"},"referencedDeclaration":147750,"src":"2607:12:295","typeDescriptions":{"typeIdentifier":"t_struct$_PositionData_$147750_storage_ptr","typeString":"struct PositionData"}},"visibility":"internal"}],"src":"2552:84:295"},"returnParameters":{"id":174724,"nodeType":"ParameterList","parameters":[],"src":"2637:0:295"},"scope":174815,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"license":"MIT"},"id":295}