{
  "contractName": "Assessment",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "MIN_ASSESSMENT_SIZE",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "cost",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "fathomToken",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "endTime",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "assessee",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "ASSESSORPOOL_SIZEFACTOR",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "concept",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "finalScore",
      "outputs": [
        {
          "name": "",
          "type": "int256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "size",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "assessmentStage",
      "outputs": [
        {
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "done",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "name": "data",
      "outputs": [
        {
          "name": "",
          "type": "bytes"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "salt",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "MEMBERCALL_CEILING_FACTOR",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "CONSENT_RADIUS",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "checkpoint",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "CHALLENGE_PERIOD",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "name": "assessorStage",
      "outputs": [
        {
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "oldData",
          "type": "bytes"
        },
        {
          "indexed": false,
          "name": "newData",
          "type": "bytes"
        }
      ],
      "name": "DataChanged",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "confirmAssessor",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_hash",
          "type": "bytes32"
        }
      ],
      "name": "commit",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_score",
          "type": "int128"
        },
        {
          "name": "_salt",
          "type": "string"
        },
        {
          "name": "_assessor",
          "type": "address"
        }
      ],
      "name": "steal",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_score",
          "type": "int128"
        },
        {
          "name": "_salt",
          "type": "string"
        }
      ],
      "name": "reveal",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_data",
          "type": "bytes"
        }
      ],
      "name": "addData",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_seed",
          "type": "uint256"
        },
        {
          "name": "_concept",
          "type": "address"
        },
        {
          "name": "_size",
          "type": "uint256"
        }
      ],
      "name": "setAssessorPool",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.5.0+commit.1d4f565a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"MIN_ASSESSMENT_SIZE\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cost\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"fathomToken\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_score\",\"type\":\"int128\"},{\"name\":\"_salt\",\"type\":\"string\"},{\"name\":\"_assessor\",\"type\":\"address\"}],\"name\":\"steal\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_seed\",\"type\":\"uint256\"},{\"name\":\"_concept\",\"type\":\"address\"},{\"name\":\"_size\",\"type\":\"uint256\"}],\"name\":\"setAssessorPool\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"endTime\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"assessee\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ASSESSORPOOL_SIZEFACTOR\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"concept\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"finalScore\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"addData\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"size\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"assessmentStage\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"done\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"data\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"salt\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MEMBERCALL_CEILING_FACTOR\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"CONSENT_RADIUS\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"checkpoint\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"CHALLENGE_PERIOD\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"assessorStage\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"commit\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"confirmAssessor\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_score\",\"type\":\"int128\"},{\"name\":\"_salt\",\"type\":\"string\"}],\"name\":\"reveal\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"oldData\",\"type\":\"bytes\"},{\"indexed\":false,\"name\":\"newData\",\"type\":\"bytes\"}],\"name\":\"DataChanged\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"commit(bytes32)\":{\"details\":\"If this function is called (by anyone) after the end of the commit phase, it will burn all non-committed assessors and cancel or advance the assessment.\"},\"confirmAssessor()\":{\"details\":\"The assessor's tokens are sent to the address of the assessment. Also, if the confirm-period is over, anyone's call to this function will cancel the assessment.\"},\"reveal(int128,string)\":{\"details\":\"Also cancels the assessment if there have been to few reveals in time.\"},\"steal(int128,string,address)\":{\"details\":\"The other half of the tokens will be burned when the payout is completed.\"}}},\"userdoc\":{\"methods\":{\"addData(bytes)\":{\"notice\":\"Called by assessors/assessee to store data on the assessment\"},\"commit(bytes32)\":{\"notice\":\"Called by assessors to commit a (hashed) score\"},\"confirmAssessor()\":{\"notice\":\"Adds a called assessor to the assessment by taking their stake\"},\"reveal(int128,string)\":{\"notice\":\"Called by assessors to reveal their score\"},\"steal(int128,string,address)\":{\"notice\":\"Called by anyone to steal half of an assessor's stake and remove them from the assessment\"}}}},\"settings\":{\"compilationTarget\":{\"/builds/fathom/assess/contracts/contracts/Assessment.sol\":\"Assessment\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/builds/fathom/assess/contracts/contracts/Assessment.sol\":{\"keccak256\":\"0x38e344165281f6b705d538b5b1e36c9f2000896abb0e66a0e365009dfcb154ba\",\"urls\":[\"bzzr://6de365b6fcd48d7ecb26877ce7446f74c7116a66c79f97bad235c17324787cdf\"]},\"/builds/fathom/assess/contracts/contracts/AssessmentData.sol\":{\"keccak256\":\"0xda71f848916d4c5c519b9bb0cbd80fff3ebdf66d93205bbd47aa746fb7ea3149\",\"urls\":[\"bzzr://3f315e743c548f163c24067c7e11e1f9783123d02ae96390640b65bb6664443d\"]},\"/builds/fathom/assess/contracts/contracts/AssessmentProxy.sol\":{\"keccak256\":\"0x1ad6915fbc6c7ab4d0c5a3c9fddd262ff1899b80f812ef5ef1d774dfe26dfde2\",\"urls\":[\"bzzr://803ff846e154c773e8e8f0cd69cf7142b1b7d500553f6d1c253efde0d4c51297\"]},\"/builds/fathom/assess/contracts/contracts/Concept.sol\":{\"keccak256\":\"0x89c39768cf2aa6cd14f08b619c9981fbe6140d8ed926003fa72e9a07feb81533\",\"urls\":[\"bzzr://49884001aa3460e710b5d8704b055e282703516ae945469b161edea7a091415c\"]},\"/builds/fathom/assess/contracts/contracts/ConceptData.sol\":{\"keccak256\":\"0xba5f44d67c4d25679f7ce9ae139145bca84f85ea53405ae258d1f6c79f68aef9\",\"urls\":[\"bzzr://614dbf61f171bddf5d29eb27396e012d8dae15d22314652df38a92d1b5a43f5a\"]},\"/builds/fathom/assess/contracts/contracts/ConceptProxy.sol\":{\"keccak256\":\"0xed6cf5d2434e41b7c5feef082320abfc4725347802465516760b6e082bba2fb1\",\"urls\":[\"bzzr://5e9c8a3f8da6ec7ba5eac85b39942d590b69863029310ca8dbecfed477b57cc7\"]},\"/builds/fathom/assess/contracts/contracts/ConceptRegistry.sol\":{\"keccak256\":\"0x37b9ea893f2e3714ed9e386871f16aff98621f6aac2c99214cddf1ddb286462c\",\"urls\":[\"bzzr://fe2531b7de74f5795710a510315edd555d208c8e18c7efbb5c28256aa47386f4\"]},\"/builds/fathom/assess/contracts/contracts/FathomToken.sol\":{\"keccak256\":\"0xd70c8cc96ac35367bebb4ecca938968b4b585ce5ac344540b538b4e08480a4c4\",\"urls\":[\"bzzr://be7d78ab6ae00ed2e18e7df4344cb062c79566e4b94a90502fd567e97b3af9d3\"]},\"/builds/fathom/assess/contracts/contracts/Math.sol\":{\"keccak256\":\"0x0e89dc6b2d825d93107a5c9b32312b94e18cb8e693aa8e0332a8f17d118ba207\",\"urls\":[\"bzzr://2dc75be49f09ed441c84240522225c9ceccc7577d3fad4bb5d39b0666947227c\"]},\"/builds/fathom/assess/contracts/contracts/Minter.sol\":{\"keccak256\":\"0x5c6a9bbd37b0f935ee951bf87fb8f4494555e3e98c99049c51234b383dbcf3a0\",\"urls\":[\"bzzr://a4ef613b4eb19182a63b3375aaedc1a455ce290dc23406c998742f1467a6ce1f\"]},\"/builds/fathom/assess/contracts/contracts/Proxy.sol\":{\"keccak256\":\"0xca112dd4cad6b82624ac9899cbb869884c78cf0a1b08a3efc0767d93f06a1d7c\",\"urls\":[\"bzzr://b4087ee1320cc97a872fb849fd9c7f0b1c2faf43c6b681ddcd77ad705060fcd6\"]},\"/builds/fathom/assess/contracts/contracts/ProxyFactory.sol\":{\"keccak256\":\"0x19e6c1094d0556a918710647e757f878a02750ae61d182aeae8168e864f39725\",\"urls\":[\"bzzr://ec7eeaee9c749149f541e4f61421acb4bd969344a586508a3eee9da67492df06\"]},\"/builds/fathom/assess/contracts/contracts/lib/openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x1aad84a4229d5da4b9ffb4433c58b2a91ba9ffbd7b11af0500f9a9795869d865\",\"urls\":[\"bzzr://b8e6b572cd2f7e04b58bf072ec24bbef7914c947e232a390cb8f07ffb1bc8157\"]},\"/builds/fathom/assess/contracts/contracts/lib/openzeppelin-solidity/contracts/token/ERC20/BasicToken.sol\":{\"keccak256\":\"0xc6f4c1d0822f8a8a78e0cb49fdb716acf26a7356109c4dcc6d5836b873e50b2d\",\"urls\":[\"bzzr://7f6656657ed55a5f0836a10b3e8517eddd25c0b9989c78b80a29075c304b20bd\"]},\"/builds/fathom/assess/contracts/contracts/lib/openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xe0490847690823c25e2e258c1f4689b54e6d051f784aca8ef2da8c0789f2be8a\",\"urls\":[\"bzzr://d324bd158255fbdb33d2294fd179a3b0456b72d31c2ba3212b428acfc18dcf88\"]},\"/builds/fathom/assess/contracts/contracts/lib/openzeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol\":{\"keccak256\":\"0x225613675e94acc479c38897f053e94f287a57730bb8a56ccae598074dd4469b\",\"urls\":[\"bzzr://80293b34ebc97ac3a32572451170e70d31c93f896cbd85d249b13362978ea11f\"]},\"/builds/fathom/assess/contracts/contracts/lib/openzeppelin-solidity/contracts/token/ERC20/StandardToken.sol\":{\"keccak256\":\"0x275f9b31e4ad7f868d8bd4a8e85e2bb68d1bed3b28e919e95df08310ff4de93d\",\"urls\":[\"bzzr://4eb59cdd2161bd6e9a02c3f0e735e285723f14963cae565c3543c38ccc3bb47d\"]}},\"version\":1}",
  "bytecode": "0x608060405234801561001057600080fd5b50612ec6806100206000396000f3fe6080604052600436106101245763ffffffff60e060020a6000350416630ea24e54811461012957806313faede6146101505780631684ae4d146101655780632ad1bc09146101965780632fa4f694146102605780633197cbb61461029f57806347c20ab7146102b4578063582d0b71146102c95780636732e966146102de578063739d9dc1146102f357806383017d4014610308578063949d225d146103bb5780639c6a1dfb146103d0578063ae8421e114610409578063b90d3d0c1461041e578063bfa0b133146104c6578063bfdfed0514610129578063c0b2e073146104db578063c2c4c5c1146104f0578063c3a079ed14610505578063d8273f3c1461051a578063f14fcbc81461054d578063f571da7f14610577578063fadf617b1461058c575b600080fd5b34801561013557600080fd5b5061013e610649565b60408051918252519081900360200190f35b34801561015c57600080fd5b5061013e61064e565b34801561017157600080fd5b5061017a610654565b60408051600160a060020a039092168252519081900360200190f35b3480156101a257600080fd5b5061025e600480360360608110156101b957600080fd5b8135600f0b91908101906040810160208201356401000000008111156101de57600080fd5b8201836020820111156101f057600080fd5b8035906020019184600183028401116401000000008311171561021257600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050509035600160a060020a031691506106639050565b005b34801561026c57600080fd5b5061025e6004803603606081101561028357600080fd5b50803590600160a060020a03602082013516906040013561083c565b3480156102ab57600080fd5b5061013e610cb1565b3480156102c057600080fd5b5061017a610cb7565b3480156102d557600080fd5b5061013e610cc6565b3480156102ea57600080fd5b5061017a610ccb565b3480156102ff57600080fd5b5061013e610cda565b34801561031457600080fd5b5061025e6004803603602081101561032b57600080fd5b81019060208101813564010000000081111561034657600080fd5b82018360208201111561035857600080fd5b8035906020019184600183028401116401000000008311171561037a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ce0945050505050565b3480156103c757600080fd5b5061013e611001565b3480156103dc57600080fd5b506103e5611007565b604051808260068111156103f557fe5b60ff16815260200191505060405180910390f35b34801561041557600080fd5b5061013e611010565b34801561042a57600080fd5b506104516004803603602081101561044157600080fd5b5035600160a060020a0316611016565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561048b578181015183820152602001610473565b50505050905090810190601f1680156104b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104d257600080fd5b5061013e6110b1565b3480156104e757600080fd5b5061013e6110b7565b3480156104fc57600080fd5b5061013e6110bc565b34801561051157600080fd5b5061013e6110c2565b34801561052657600080fd5b506103e56004803603602081101561053d57600080fd5b5035600160a060020a03166110c8565b34801561055957600080fd5b5061025e6004803603602081101561057057600080fd5b50356110dd565b34801561058357600080fd5b5061025e6111f9565b34801561059857600080fd5b5061025e600480360360408110156105af57600080fd5b8135600f0b91908101906040810160208201356401000000008111156105d457600080fd5b8201836020820111156105e657600080fd5b8035906020019184600183028401116401000000008311171561060857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506114d3945050505050565b600581565b60075481565b600254600160a060020a031681565b6003600160a060020a0382166000908152600c602052604090205460ff16600681111561068c57fe5b14156108375782826040516020018083600f0b600f0b70010000000000000000000000000000000002815260100182805190602001908083835b602083106106e55780518252601f1990920191602091820191016106c6565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405280519060200120600f600083600160a060020a0316600160a060020a031681526020019081526020016000205414156108245760028054600754604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815233600482015293909104602484015251600160a060020a039091169163a9059cbb9160448083019260209291908290030181600087803b1580156107be57600080fd5b505af11580156107d2573d6000803e3d6000fd5b505050506040513d60208110156107e857600080fd5b5050600160a060020a0381166000908152600c60205260409020805460ff19166005179055600680546000199081019091556009805490910190555b600560065410156108375761083761173c565b505050565b600154600160a060020a0316331461089e576040805160e560020a62461bcd02815260206004820152601360248201527f436f6e6365707420616363657373206f6e6c7900000000000000000000000000604482015290519081900360640190fd5b6000600a601483020490506000808490506000600a600583600160a060020a031663051f30eb6040518163ffffffff1660e060020a02815260040160206040518083038186803b1580156108f157600080fd5b505afa158015610905573d6000803e3d6000fd5b505050506040513d602081101561091b57600080fd5b50510281151561092757fe5b0490508381106109455761093c878588611b17565b83019250610c1c565b6000805b83600160a060020a031663eaa71b226040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561098557600080fd5b505afa158015610999573d6000803e3d6000fd5b505050506040513d60208110156109af57600080fd5b5051811015610b8657600084600160a060020a031663898572a6836040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b158015610a0157600080fd5b505afa158015610a15573d6000803e3d6000fd5b505050506040513d6020811015610a2b57600080fd5b5051604080517f44651d920000000000000000000000000000000000000000000000000000000081526004810185905290519192506000916103e891600160a060020a038916916344651d9291602480820192602092909190829003018186803b158015610a9857600080fd5b505afa158015610aac573d6000803e3d6000fd5b505050506040513d6020811015610ac257600080fd5b5051604080517f051f30eb0000000000000000000000000000000000000000000000000000000081529051600a91600591600160a060020a0388169163051f30eb916004808301926020929190829003018186803b158015610b2357600080fd5b505afa158015610b37573d6000803e3d6000fd5b505050506040513d6020811015610b4d57600080fd5b505102811515610b5957fe5b0402811515610b6457fe5b04938401939050610b788b84018284611b17565b909601955050600101610949565b50818101851115610c07576040805160e560020a62461bcd02815260206004820152602760248201527f4e6f7420656e6f756768206173736573736f727320696e20706172656e74206360448201527f6f6e636570747300000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610c1688611080018389611b17565b84019350505b6005831015610c9b576040805160e560020a62461bcd02815260206004820152602160248201527f546f6f20666577206173736573736f727320636f756c642062652063616c6c6560448201527f6400000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b5050600d805460ff191660011790555050505050565b60055481565b600354600160a060020a031681565b601481565b600154600160a060020a031681565b60085481565b600354600160a060020a0316331480610d1657506001336000908152600c602052604090205460ff166006811115610d1457fe5b115b1515610d92576040805160e560020a62461bcd02815260206004820152602660248201527f4d757374206265206173736573736565206f7220636f6e6669726d656420617360448201527f736573736f720000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003600d5460ff166006811115610da557fe5b10610e20576040805160e560020a62461bcd02815260206004820152602360248201527f446561646c696e6520666f7220616464696e672064617461206861732070617360448201527f7365640000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b336000908152600b602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845260609392830182828015610eb65780601f10610e8b57610100808354040283529160200191610eb6565b820191906000526020600020905b815481529060010190602001808311610e9957829003601f168201915b5050336000908152600b602090815260409091208751959650610ee29590945090870192509050612ddf565b507faadcd29446d57df33a9b095602a5f78d2578d4fd35b92ebb712fbf7e874893193382846040518084600160a060020a0316600160a060020a031681526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015610f60578181015183820152602001610f48565b50505050905090810190601f168015610f8d5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015610fc0578181015183820152602001610fa8565b50505050905090810190601f168015610fed5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a15050565b60065481565b600d5460ff1681565b60095481565b600b6020908152600091825260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156110a95780601f1061107e576101008083540402835291602001916110a9565b820191906000526020600020905b81548152906001019060200180831161108c57829003601f168201915b505050505081565b600a5481565b600d81565b60045481565b61a8c081565b600c6020526000908152604090205460ff1681565b600280600d5460ff1660068111156110f157fe5b14611143576040805160e560020a62461bcd02815260206004820152602480820152600080516020612e7b833981519152604482015260e060020a637461676502606482015290519081900360840190fd5b60055460019042111561115d5761115a6002611fa2565b90505b80151561116a57506111f5565b6002336000908152600c602052604090205460ff16600681111561118a57fe5b14156111c157336000908152600f60209081526040808320869055600c9091529020805460ff191660031790556009805460010190555b6006546009541415610837574261a8c0016004556111e160036005612092565b506000600955600d805460ff191660031790555b5050565b600180600d5460ff16600681111561120d57fe5b1461125f576040805160e560020a62461bcd02815260206004820152602480820152600080516020612e7b833981519152604482015260e060020a637461676502606482015290519081900360840190fd5b6004544211156112765761127161173c565b6114d0565b6001336000908152600c602052604090205460ff16600681111561129657fe5b1480156112a65750600654600e54105b801561135a5750600254600754600154604080517f27234ecc0000000000000000000000000000000000000000000000000000000081523360048201523060248201526044810193909352600160a060020a039182166064840152519216916327234ecc916084808201926020929091908290030181600087803b15801561132d57600080fd5b505af1158015611341573d6000803e3d6000fd5b505050506040513d602081101561135757600080fd5b50515b1561143557600e8054600181019091557fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd0180543373ffffffffffffffffffffffffffffffffffffffff1990911681179091556000818152600c6020526040808220805460ff191660029081179091558054825160e160020a633ddb504b028152600481019590955260248501919091529051600160a060020a0390911692637bb6a09692604480830193919282900301818387803b15801561141c57600080fd5b505af1158015611430573d6000803e3d6000fd5b505050505b600654600e5414156114d05761144d60026004612092565b6002546003546040805160e160020a633ddb504b028152600160a060020a03928316600480830191909152602482015290519190921691637bb6a09691604480830192600092919082900301818387803b1580156114aa57600080fd5b505af11580156114be573d6000803e3d6000fd5b5050600d805460ff1916600217905550505b50565b600380600d5460ff1660068111156114e757fe5b14611539576040805160e560020a62461bcd02815260206004820152602480820152600080516020612e7b833981519152604482015260e060020a637461676502606482015290519081900360840190fd5b6004544211611592576040805160e560020a62461bcd02815260206004820152601d60248201527f4368616c6c656e676520706572696f64206d757374206265206f766572000000604482015290519081900360640190fd5b60055460019062015180014211156115b1576115ae6003611fa2565b90505b8015156115be5750610837565b6003336000908152600c602052604090205460ff1660068111156115de57fe5b14801561169d575083836040516020018083600f0b600f0b70010000000000000000000000000000000002815260100182805190602001908083835b602083106116395780518252601f19909201916020918201910161161a565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405280519060200120600f600033600160a060020a0316600160a060020a0316815260200190815260200160002054145b15611710573360009081526010602090815260408083208054600f89900b6fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff19909116179055855186830120600a80549091189055600c9091529020805460ff191660041790556009805460010190555b600654600954141561173657600d805460ff1916600417905561173161219b565b426005555b50505050565b60006001600d5460ff16600681111561175157fe5b1461176257600e546007540261176a565b600654600754025b600254600354604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03928316600482015260248101859052905193945091169163a9059cbb916044808201926020929091908290030181600087803b1580156117de57600080fd5b505af11580156117f2573d6000803e3d6000fd5b505050506040513d602081101561180857600080fd5b5050600254600380546040805160e160020a633ddb504b028152600160a060020a039283166004820152602481019390935251921691637bb6a0969160448082019260009290919082900301818387803b15801561186557600080fd5b505af1158015611879573d6000803e3d6000fd5b506000925050505b600e54811015611a1a576005600c6000600e848154811015156118a057fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1660068111156118d357fe5b14611a1257600254600e8054600160a060020a039092169163a9059cbb9190849081106118fc57fe5b60009182526020808320909101546007546040805160e060020a63ffffffff8816028152600160a060020a03909316600484015260248301919091525160448083019491928390030190829087803b15801561195757600080fd5b505af115801561196b573d6000803e3d6000fd5b505050506040513d602081101561198157600080fd5b5050600254600e8054600160a060020a0390921691637bb6a0969190849081106119a757fe5b60009182526020822001546040805163ffffffff851660e060020a028152600160a060020a03909216600483015260036024830152516044808301939282900301818387803b1580156119f957600080fd5b505af1158015611a0d573d6000803e3d6000fd5b505050505b600101611881565b50600d805460ff19166005179055600254604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916367fbd2899183916370a0823191602480820192602092909190829003018186803b158015611a9457600080fd5b505afa158015611aa8573d6000803e3d6000fd5b505050506040513d6020811015611abe57600080fd5b50516040805160e060020a63ffffffff8516028152600481019290925251602480830192600092919082900301818387803b158015611afc57600080fd5b505af1158015611b10573d6000803e3d6000fd5b5050505050565b6000808490506000839050606081600160a060020a0316639f73f34d6040518163ffffffff1660e060020a02815260040160006040518083038186803b158015611b6057600080fd5b505afa158015611b74573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611b9d57600080fd5b810190808051640100000000811115611bb557600080fd5b82016020810184811115611bc857600080fd5b8151856020820283011164010000000082111715611be557600080fd5b50508051909450925060009150505b87811015611f9657600073__Math__________________________________636e68fc0a87600186036040518363ffffffff1660e060020a028152600401808381526020018281526020019250505060206040518083038186803b158015611c5b57600080fd5b505af4158015611c6f573d6000803e3d6000fd5b505050506040513d6020811015611c8557600080fd5b5051604080517f6e68fc0a00000000000000000000000000000000000000000000000000000000815260028902600482015260001986016024820152905191925060009173__Math__________________________________91636e68fc0a916044808301926020929190829003018186803b158015611d0457600080fd5b505af4158015611d18573d6000803e3d6000fd5b505050506040513d6020811015611d2e57600080fd5b50518551909150600090600160a060020a0388169063ac6c525190889086908110611d5557fe5b906020019060200201516040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a0316815260200191505060206040518083038186803b158015611da857600080fd5b505afa158015611dbc573d6000803e3d6000fd5b505050506040513d6020811015611dd257600080fd5b50518651909150600090600160a060020a0389169063ac6c525190899086908110611df957fe5b906020019060200201516040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a0316815260200191505060206040518083038186803b158015611e4c57600080fd5b505afa158015611e60573d6000803e3d6000fd5b505050506040513d6020811015611e7657600080fd5b505190506000818310611ee2578785815181101515611e9157fe5b9060200190602002015190508760018803815181101515611eae57fe5b906020019060200201518886815181101515611ec657fe5b600160a060020a03909216602092830290910190910152611f3d565b8784815181101515611ef057fe5b9060200190602002015190508760018803815181101515611f0d57fe5b906020019060200201518885815181101515611f2557fe5b600160a060020a039092166020928302909101909101525b808860018903815181101515611f4f57fe5b600160a060020a03909216602092830290910190910152611f6f816125f4565b15611f7b5760018b019a505b505050600a9690960195505060001990910190600101611bf4565b50505050509392505050565b6000805b600e5481101561206d57826006811115611fbc57fe5b600c6000600e84815481101515611fcf57fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff16600681111561200257fe5b1415612065576005600c6000600e8481548110151561201d57fe5b6000918252602080832090910154600160a060020a031683528201929092526040019020805460ff1916600183600681111561205557fe5b0217905550600680546000190190555b600101611fa6565b50600560065410156120895761208161173c565b50600061208d565b5060015b919050565b60005b600e548110156108375782600c6000600e848154811015156120b357fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1660068111156120e657fe5b141561219357600254600e8054600160a060020a0390921691637bb6a09691908490811061211057fe5b60009182526020909120015460405160e060020a63ffffffff8416028152600160a060020a0390911660048201818152909186919060240182600781111561215457fe5b60ff16815260200192505050600060405180830381600087803b15801561217a57600080fd5b505af115801561218e573d6000803e3d6000fd5b505050505b600101612095565b600480600d5460ff1660068111156121af57fe5b14612201576040805160e560020a62461bcd02815260206004820152602480820152600080516020612e7b833981519152604482015260e060020a637461676502606482015290519081900360840190fd5b606060095460405190808252806020026020018201604052801561222f578160200160208202803883390190505b5090506000805b600e548110156122f6576004600c6000600e8481548110151561225557fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff16600681111561228857fe5b14156122ee5760106000600e838154811015156122a157fe5b6000918252602080832090910154600160a060020a031683528201929092526040019020548351600f91820b90910b908490849081106122dd57fe5b602090810290910101526001909101905b600101612236565b50600073__Math__________________________________634f7df3e684600d6040518363ffffffff1660e060020a0281526004018080602001838152602001828103825284818151815260200191508051906020019060200280838360005b8381101561236e578181015183820152602001612356565b505050509050019350505050604080518083038186803b15801561239157600080fd5b505af41580156123a5573d6000803e3d6000fd5b505050506040513d60408110156123bb57600080fd5b50805160209091015160089190915560095490915060029004811115612481576123e4816126db565b6000600854131561247c57600154600354600854604080517f98041ea3000000000000000000000000000000000000000000000000000000008152600160a060020a03938416600482015291850260248301525191909216916398041ea391604480830192600092919082900301818387803b15801561246357600080fd5b505af1158015612477573d6000803e3d6000fd5b505050505b61257b565b600254604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916367fbd2899183916370a0823191602480820192602092909190829003018186803b1580156124ed57600080fd5b505afa158015612501573d6000803e3d6000fd5b505050506040513d602081101561251757600080fd5b50516040805160e060020a63ffffffff8516028152600481019290925251602480830192600092919082900301818387803b15801561255557600080fd5b505af1158015612569573d6000803e3d6000fd5b5050600d805460ff1916600517905550505b6002546003546040805160e160020a633ddb504b028152600160a060020a0392831660048201526007602482015290519190921691637bb6a09691604480830192600092919082900301818387803b1580156125d657600080fd5b505af11580156125ea573d6000803e3d6000fd5b5050505050505050565b600354600090600160a060020a038381169116148015906126395750600160a060020a0382166000908152600c602052604081205460ff16600681111561263757fe5b145b1561208d576002546040805160e160020a633ddb504b028152600160a060020a0385811660048301526001602483015291519190921691637bb6a09691604480830192600092919082900301818387803b15801561269657600080fd5b505af11580156126aa573d6000803e3d6000fd5b50505050600160a060020a0382166000908152600c60205260409020805460ff19166001908117909155905061208d565b600480600d5460ff1660068111156126ef57fe5b14612741576040805160e560020a62461bcd02815260206004820152602480820152600080516020612e7b833981519152604482015260e060020a637461676502606482015290519081900360840190fd5b600e54604080518281526020808402820101909152600091606091908015612773578160200160208202803883390190505b5090506060600e805490506040519080825280602002602001820160405280156127a7578160200160208202803883390190505b50905060005b600e54811015612b4e576004600c6000600e848154811015156127cc57fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1660068111156127ff57fe5b1415612b465760008073__Math__________________________________6366cc606473__Math__________________________________631b5ac4b560085460106000600e8a81548110151561285257fe5b6000918252602080832090910154600160a060020a03168352828101939093526040918201902054815160e060020a63ffffffff8716028152600f91820b90910b93909303600484015251602480840193829003018186803b1580156128b757600080fd5b505af41580156128cb573d6000803e3d6000fd5b505050506040513d60208110156128e157600080fd5b50516007546040805160e060020a63ffffffff861602815260048101939093526024830191909152600d60448301528051606480840193829003018186803b15801561292c57600080fd5b505af4158015612940573d6000803e3d6000fd5b505050506040513d604081101561295657600080fd5b50805160209091015190925090508015612b09576006600c6000600e8681548110151561297f57fe5b6000918252602080832090910154600160a060020a031683528201929092526040019020805460ff191660018360068111156129b757fe5b02179055508160075403860195506000821115612a7657600254600e8054600160a060020a039092169163a9059cbb9190869081106129f257fe5b60009182526020808320909101546040805160e060020a63ffffffff8716028152600160a060020a039092166004830152602482018890525160448083019491928390030190829087803b158015612a4957600080fd5b505af1158015612a5d573d6000803e3d6000fd5b505050506040513d6020811015612a7357600080fd5b50505b600254600e8054600160a060020a0390921691637bb6a096919086908110612a9a57fe5b60009182526020822001546040805163ffffffff851660e060020a028152600160a060020a03909216600483015260066024830152516044808301939282900301818387803b158015612aec57600080fd5b505af1158015612b00573d6000803e3d6000fd5b50505050612b43565b60018584815181101515612b1957fe5b91151560209283029091019091015283518290859085908110612b3857fe5b602090810290910101525b50505b6001016127ad565b5060005b8151811015612ceb578281815181101515612b6957fe5b9060200190602002015115612ce357600254600e8054600160a060020a039092169163a9059cbb919084908110612b9c57fe5b600091825260209091200154600160a060020a03168887811515612bbc57fe5b048585815181101515612bcb57fe5b90602001906020020151016040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015612c2857600080fd5b505af1158015612c3c573d6000803e3d6000fd5b505050506040513d6020811015612c5257600080fd5b5050600254600e8054600160a060020a0390921691637bb6a096919084908110612c7857fe5b60009182526020822001546040805163ffffffff851660e060020a028152600160a060020a03909216600483015260066024830152516044808301939282900301818387803b158015612cca57600080fd5b505af1158015612cde573d6000803e3d6000fd5b505050505b600101612b52565b50600254604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916367fbd2899183916370a0823191602480820192602092909190829003018186803b158015612d5857600080fd5b505afa158015612d6c573d6000803e3d6000fd5b505050506040513d6020811015612d8257600080fd5b50516040805160e060020a63ffffffff8516028152600481019290925251602480830192600092919082900301818387803b158015612dc057600080fd5b505af1158015612dd4573d6000803e3d6000fd5b505050505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612e2057805160ff1916838001178555612e4d565b82800160010185558215612e4d579182015b82811115612e4d578251825591602001919060010190612e32565b50612e59929150612e5d565b5090565b612e7791905b80821115612e595760008155600101612e63565b9056fe43616c6c656420647572696e672077726f6e67206173736573736d656e742073a165627a7a723058209fe2577dbee586d9f85f0ba62330f2812221ded70479364092a7c2e2fa6946900029",
  "deployedBytecode": "0x6080604052600436106101245763ffffffff60e060020a6000350416630ea24e54811461012957806313faede6146101505780631684ae4d146101655780632ad1bc09146101965780632fa4f694146102605780633197cbb61461029f57806347c20ab7146102b4578063582d0b71146102c95780636732e966146102de578063739d9dc1146102f357806383017d4014610308578063949d225d146103bb5780639c6a1dfb146103d0578063ae8421e114610409578063b90d3d0c1461041e578063bfa0b133146104c6578063bfdfed0514610129578063c0b2e073146104db578063c2c4c5c1146104f0578063c3a079ed14610505578063d8273f3c1461051a578063f14fcbc81461054d578063f571da7f14610577578063fadf617b1461058c575b600080fd5b34801561013557600080fd5b5061013e610649565b60408051918252519081900360200190f35b34801561015c57600080fd5b5061013e61064e565b34801561017157600080fd5b5061017a610654565b60408051600160a060020a039092168252519081900360200190f35b3480156101a257600080fd5b5061025e600480360360608110156101b957600080fd5b8135600f0b91908101906040810160208201356401000000008111156101de57600080fd5b8201836020820111156101f057600080fd5b8035906020019184600183028401116401000000008311171561021257600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050509035600160a060020a031691506106639050565b005b34801561026c57600080fd5b5061025e6004803603606081101561028357600080fd5b50803590600160a060020a03602082013516906040013561083c565b3480156102ab57600080fd5b5061013e610cb1565b3480156102c057600080fd5b5061017a610cb7565b3480156102d557600080fd5b5061013e610cc6565b3480156102ea57600080fd5b5061017a610ccb565b3480156102ff57600080fd5b5061013e610cda565b34801561031457600080fd5b5061025e6004803603602081101561032b57600080fd5b81019060208101813564010000000081111561034657600080fd5b82018360208201111561035857600080fd5b8035906020019184600183028401116401000000008311171561037a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ce0945050505050565b3480156103c757600080fd5b5061013e611001565b3480156103dc57600080fd5b506103e5611007565b604051808260068111156103f557fe5b60ff16815260200191505060405180910390f35b34801561041557600080fd5b5061013e611010565b34801561042a57600080fd5b506104516004803603602081101561044157600080fd5b5035600160a060020a0316611016565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561048b578181015183820152602001610473565b50505050905090810190601f1680156104b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104d257600080fd5b5061013e6110b1565b3480156104e757600080fd5b5061013e6110b7565b3480156104fc57600080fd5b5061013e6110bc565b34801561051157600080fd5b5061013e6110c2565b34801561052657600080fd5b506103e56004803603602081101561053d57600080fd5b5035600160a060020a03166110c8565b34801561055957600080fd5b5061025e6004803603602081101561057057600080fd5b50356110dd565b34801561058357600080fd5b5061025e6111f9565b34801561059857600080fd5b5061025e600480360360408110156105af57600080fd5b8135600f0b91908101906040810160208201356401000000008111156105d457600080fd5b8201836020820111156105e657600080fd5b8035906020019184600183028401116401000000008311171561060857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506114d3945050505050565b600581565b60075481565b600254600160a060020a031681565b6003600160a060020a0382166000908152600c602052604090205460ff16600681111561068c57fe5b14156108375782826040516020018083600f0b600f0b70010000000000000000000000000000000002815260100182805190602001908083835b602083106106e55780518252601f1990920191602091820191016106c6565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405280519060200120600f600083600160a060020a0316600160a060020a031681526020019081526020016000205414156108245760028054600754604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815233600482015293909104602484015251600160a060020a039091169163a9059cbb9160448083019260209291908290030181600087803b1580156107be57600080fd5b505af11580156107d2573d6000803e3d6000fd5b505050506040513d60208110156107e857600080fd5b5050600160a060020a0381166000908152600c60205260409020805460ff19166005179055600680546000199081019091556009805490910190555b600560065410156108375761083761173c565b505050565b600154600160a060020a0316331461089e576040805160e560020a62461bcd02815260206004820152601360248201527f436f6e6365707420616363657373206f6e6c7900000000000000000000000000604482015290519081900360640190fd5b6000600a601483020490506000808490506000600a600583600160a060020a031663051f30eb6040518163ffffffff1660e060020a02815260040160206040518083038186803b1580156108f157600080fd5b505afa158015610905573d6000803e3d6000fd5b505050506040513d602081101561091b57600080fd5b50510281151561092757fe5b0490508381106109455761093c878588611b17565b83019250610c1c565b6000805b83600160a060020a031663eaa71b226040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561098557600080fd5b505afa158015610999573d6000803e3d6000fd5b505050506040513d60208110156109af57600080fd5b5051811015610b8657600084600160a060020a031663898572a6836040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b158015610a0157600080fd5b505afa158015610a15573d6000803e3d6000fd5b505050506040513d6020811015610a2b57600080fd5b5051604080517f44651d920000000000000000000000000000000000000000000000000000000081526004810185905290519192506000916103e891600160a060020a038916916344651d9291602480820192602092909190829003018186803b158015610a9857600080fd5b505afa158015610aac573d6000803e3d6000fd5b505050506040513d6020811015610ac257600080fd5b5051604080517f051f30eb0000000000000000000000000000000000000000000000000000000081529051600a91600591600160a060020a0388169163051f30eb916004808301926020929190829003018186803b158015610b2357600080fd5b505afa158015610b37573d6000803e3d6000fd5b505050506040513d6020811015610b4d57600080fd5b505102811515610b5957fe5b0402811515610b6457fe5b04938401939050610b788b84018284611b17565b909601955050600101610949565b50818101851115610c07576040805160e560020a62461bcd02815260206004820152602760248201527f4e6f7420656e6f756768206173736573736f727320696e20706172656e74206360448201527f6f6e636570747300000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610c1688611080018389611b17565b84019350505b6005831015610c9b576040805160e560020a62461bcd02815260206004820152602160248201527f546f6f20666577206173736573736f727320636f756c642062652063616c6c6560448201527f6400000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b5050600d805460ff191660011790555050505050565b60055481565b600354600160a060020a031681565b601481565b600154600160a060020a031681565b60085481565b600354600160a060020a0316331480610d1657506001336000908152600c602052604090205460ff166006811115610d1457fe5b115b1515610d92576040805160e560020a62461bcd02815260206004820152602660248201527f4d757374206265206173736573736565206f7220636f6e6669726d656420617360448201527f736573736f720000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003600d5460ff166006811115610da557fe5b10610e20576040805160e560020a62461bcd02815260206004820152602360248201527f446561646c696e6520666f7220616464696e672064617461206861732070617360448201527f7365640000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b336000908152600b602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845260609392830182828015610eb65780601f10610e8b57610100808354040283529160200191610eb6565b820191906000526020600020905b815481529060010190602001808311610e9957829003601f168201915b5050336000908152600b602090815260409091208751959650610ee29590945090870192509050612ddf565b507faadcd29446d57df33a9b095602a5f78d2578d4fd35b92ebb712fbf7e874893193382846040518084600160a060020a0316600160a060020a031681526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015610f60578181015183820152602001610f48565b50505050905090810190601f168015610f8d5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015610fc0578181015183820152602001610fa8565b50505050905090810190601f168015610fed5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a15050565b60065481565b600d5460ff1681565b60095481565b600b6020908152600091825260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156110a95780601f1061107e576101008083540402835291602001916110a9565b820191906000526020600020905b81548152906001019060200180831161108c57829003601f168201915b505050505081565b600a5481565b600d81565b60045481565b61a8c081565b600c6020526000908152604090205460ff1681565b600280600d5460ff1660068111156110f157fe5b14611143576040805160e560020a62461bcd02815260206004820152602480820152600080516020612e7b833981519152604482015260e060020a637461676502606482015290519081900360840190fd5b60055460019042111561115d5761115a6002611fa2565b90505b80151561116a57506111f5565b6002336000908152600c602052604090205460ff16600681111561118a57fe5b14156111c157336000908152600f60209081526040808320869055600c9091529020805460ff191660031790556009805460010190555b6006546009541415610837574261a8c0016004556111e160036005612092565b506000600955600d805460ff191660031790555b5050565b600180600d5460ff16600681111561120d57fe5b1461125f576040805160e560020a62461bcd02815260206004820152602480820152600080516020612e7b833981519152604482015260e060020a637461676502606482015290519081900360840190fd5b6004544211156112765761127161173c565b6114d0565b6001336000908152600c602052604090205460ff16600681111561129657fe5b1480156112a65750600654600e54105b801561135a5750600254600754600154604080517f27234ecc0000000000000000000000000000000000000000000000000000000081523360048201523060248201526044810193909352600160a060020a039182166064840152519216916327234ecc916084808201926020929091908290030181600087803b15801561132d57600080fd5b505af1158015611341573d6000803e3d6000fd5b505050506040513d602081101561135757600080fd5b50515b1561143557600e8054600181019091557fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd0180543373ffffffffffffffffffffffffffffffffffffffff1990911681179091556000818152600c6020526040808220805460ff191660029081179091558054825160e160020a633ddb504b028152600481019590955260248501919091529051600160a060020a0390911692637bb6a09692604480830193919282900301818387803b15801561141c57600080fd5b505af1158015611430573d6000803e3d6000fd5b505050505b600654600e5414156114d05761144d60026004612092565b6002546003546040805160e160020a633ddb504b028152600160a060020a03928316600480830191909152602482015290519190921691637bb6a09691604480830192600092919082900301818387803b1580156114aa57600080fd5b505af11580156114be573d6000803e3d6000fd5b5050600d805460ff1916600217905550505b50565b600380600d5460ff1660068111156114e757fe5b14611539576040805160e560020a62461bcd02815260206004820152602480820152600080516020612e7b833981519152604482015260e060020a637461676502606482015290519081900360840190fd5b6004544211611592576040805160e560020a62461bcd02815260206004820152601d60248201527f4368616c6c656e676520706572696f64206d757374206265206f766572000000604482015290519081900360640190fd5b60055460019062015180014211156115b1576115ae6003611fa2565b90505b8015156115be5750610837565b6003336000908152600c602052604090205460ff1660068111156115de57fe5b14801561169d575083836040516020018083600f0b600f0b70010000000000000000000000000000000002815260100182805190602001908083835b602083106116395780518252601f19909201916020918201910161161a565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405280519060200120600f600033600160a060020a0316600160a060020a0316815260200190815260200160002054145b15611710573360009081526010602090815260408083208054600f89900b6fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff19909116179055855186830120600a80549091189055600c9091529020805460ff191660041790556009805460010190555b600654600954141561173657600d805460ff1916600417905561173161219b565b426005555b50505050565b60006001600d5460ff16600681111561175157fe5b1461176257600e546007540261176a565b600654600754025b600254600354604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03928316600482015260248101859052905193945091169163a9059cbb916044808201926020929091908290030181600087803b1580156117de57600080fd5b505af11580156117f2573d6000803e3d6000fd5b505050506040513d602081101561180857600080fd5b5050600254600380546040805160e160020a633ddb504b028152600160a060020a039283166004820152602481019390935251921691637bb6a0969160448082019260009290919082900301818387803b15801561186557600080fd5b505af1158015611879573d6000803e3d6000fd5b506000925050505b600e54811015611a1a576005600c6000600e848154811015156118a057fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1660068111156118d357fe5b14611a1257600254600e8054600160a060020a039092169163a9059cbb9190849081106118fc57fe5b60009182526020808320909101546007546040805160e060020a63ffffffff8816028152600160a060020a03909316600484015260248301919091525160448083019491928390030190829087803b15801561195757600080fd5b505af115801561196b573d6000803e3d6000fd5b505050506040513d602081101561198157600080fd5b5050600254600e8054600160a060020a0390921691637bb6a0969190849081106119a757fe5b60009182526020822001546040805163ffffffff851660e060020a028152600160a060020a03909216600483015260036024830152516044808301939282900301818387803b1580156119f957600080fd5b505af1158015611a0d573d6000803e3d6000fd5b505050505b600101611881565b50600d805460ff19166005179055600254604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916367fbd2899183916370a0823191602480820192602092909190829003018186803b158015611a9457600080fd5b505afa158015611aa8573d6000803e3d6000fd5b505050506040513d6020811015611abe57600080fd5b50516040805160e060020a63ffffffff8516028152600481019290925251602480830192600092919082900301818387803b158015611afc57600080fd5b505af1158015611b10573d6000803e3d6000fd5b5050505050565b6000808490506000839050606081600160a060020a0316639f73f34d6040518163ffffffff1660e060020a02815260040160006040518083038186803b158015611b6057600080fd5b505afa158015611b74573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611b9d57600080fd5b810190808051640100000000811115611bb557600080fd5b82016020810184811115611bc857600080fd5b8151856020820283011164010000000082111715611be557600080fd5b50508051909450925060009150505b87811015611f9657600073__Math__________________________________636e68fc0a87600186036040518363ffffffff1660e060020a028152600401808381526020018281526020019250505060206040518083038186803b158015611c5b57600080fd5b505af4158015611c6f573d6000803e3d6000fd5b505050506040513d6020811015611c8557600080fd5b5051604080517f6e68fc0a00000000000000000000000000000000000000000000000000000000815260028902600482015260001986016024820152905191925060009173__Math__________________________________91636e68fc0a916044808301926020929190829003018186803b158015611d0457600080fd5b505af4158015611d18573d6000803e3d6000fd5b505050506040513d6020811015611d2e57600080fd5b50518551909150600090600160a060020a0388169063ac6c525190889086908110611d5557fe5b906020019060200201516040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a0316815260200191505060206040518083038186803b158015611da857600080fd5b505afa158015611dbc573d6000803e3d6000fd5b505050506040513d6020811015611dd257600080fd5b50518651909150600090600160a060020a0389169063ac6c525190899086908110611df957fe5b906020019060200201516040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a0316815260200191505060206040518083038186803b158015611e4c57600080fd5b505afa158015611e60573d6000803e3d6000fd5b505050506040513d6020811015611e7657600080fd5b505190506000818310611ee2578785815181101515611e9157fe5b9060200190602002015190508760018803815181101515611eae57fe5b906020019060200201518886815181101515611ec657fe5b600160a060020a03909216602092830290910190910152611f3d565b8784815181101515611ef057fe5b9060200190602002015190508760018803815181101515611f0d57fe5b906020019060200201518885815181101515611f2557fe5b600160a060020a039092166020928302909101909101525b808860018903815181101515611f4f57fe5b600160a060020a03909216602092830290910190910152611f6f816125f4565b15611f7b5760018b019a505b505050600a9690960195505060001990910190600101611bf4565b50505050509392505050565b6000805b600e5481101561206d57826006811115611fbc57fe5b600c6000600e84815481101515611fcf57fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff16600681111561200257fe5b1415612065576005600c6000600e8481548110151561201d57fe5b6000918252602080832090910154600160a060020a031683528201929092526040019020805460ff1916600183600681111561205557fe5b0217905550600680546000190190555b600101611fa6565b50600560065410156120895761208161173c565b50600061208d565b5060015b919050565b60005b600e548110156108375782600c6000600e848154811015156120b357fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1660068111156120e657fe5b141561219357600254600e8054600160a060020a0390921691637bb6a09691908490811061211057fe5b60009182526020909120015460405160e060020a63ffffffff8416028152600160a060020a0390911660048201818152909186919060240182600781111561215457fe5b60ff16815260200192505050600060405180830381600087803b15801561217a57600080fd5b505af115801561218e573d6000803e3d6000fd5b505050505b600101612095565b600480600d5460ff1660068111156121af57fe5b14612201576040805160e560020a62461bcd02815260206004820152602480820152600080516020612e7b833981519152604482015260e060020a637461676502606482015290519081900360840190fd5b606060095460405190808252806020026020018201604052801561222f578160200160208202803883390190505b5090506000805b600e548110156122f6576004600c6000600e8481548110151561225557fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff16600681111561228857fe5b14156122ee5760106000600e838154811015156122a157fe5b6000918252602080832090910154600160a060020a031683528201929092526040019020548351600f91820b90910b908490849081106122dd57fe5b602090810290910101526001909101905b600101612236565b50600073__Math__________________________________634f7df3e684600d6040518363ffffffff1660e060020a0281526004018080602001838152602001828103825284818151815260200191508051906020019060200280838360005b8381101561236e578181015183820152602001612356565b505050509050019350505050604080518083038186803b15801561239157600080fd5b505af41580156123a5573d6000803e3d6000fd5b505050506040513d60408110156123bb57600080fd5b50805160209091015160089190915560095490915060029004811115612481576123e4816126db565b6000600854131561247c57600154600354600854604080517f98041ea3000000000000000000000000000000000000000000000000000000008152600160a060020a03938416600482015291850260248301525191909216916398041ea391604480830192600092919082900301818387803b15801561246357600080fd5b505af1158015612477573d6000803e3d6000fd5b505050505b61257b565b600254604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916367fbd2899183916370a0823191602480820192602092909190829003018186803b1580156124ed57600080fd5b505afa158015612501573d6000803e3d6000fd5b505050506040513d602081101561251757600080fd5b50516040805160e060020a63ffffffff8516028152600481019290925251602480830192600092919082900301818387803b15801561255557600080fd5b505af1158015612569573d6000803e3d6000fd5b5050600d805460ff1916600517905550505b6002546003546040805160e160020a633ddb504b028152600160a060020a0392831660048201526007602482015290519190921691637bb6a09691604480830192600092919082900301818387803b1580156125d657600080fd5b505af11580156125ea573d6000803e3d6000fd5b5050505050505050565b600354600090600160a060020a038381169116148015906126395750600160a060020a0382166000908152600c602052604081205460ff16600681111561263757fe5b145b1561208d576002546040805160e160020a633ddb504b028152600160a060020a0385811660048301526001602483015291519190921691637bb6a09691604480830192600092919082900301818387803b15801561269657600080fd5b505af11580156126aa573d6000803e3d6000fd5b50505050600160a060020a0382166000908152600c60205260409020805460ff19166001908117909155905061208d565b600480600d5460ff1660068111156126ef57fe5b14612741576040805160e560020a62461bcd02815260206004820152602480820152600080516020612e7b833981519152604482015260e060020a637461676502606482015290519081900360840190fd5b600e54604080518281526020808402820101909152600091606091908015612773578160200160208202803883390190505b5090506060600e805490506040519080825280602002602001820160405280156127a7578160200160208202803883390190505b50905060005b600e54811015612b4e576004600c6000600e848154811015156127cc57fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1660068111156127ff57fe5b1415612b465760008073__Math__________________________________6366cc606473__Math__________________________________631b5ac4b560085460106000600e8a81548110151561285257fe5b6000918252602080832090910154600160a060020a03168352828101939093526040918201902054815160e060020a63ffffffff8716028152600f91820b90910b93909303600484015251602480840193829003018186803b1580156128b757600080fd5b505af41580156128cb573d6000803e3d6000fd5b505050506040513d60208110156128e157600080fd5b50516007546040805160e060020a63ffffffff861602815260048101939093526024830191909152600d60448301528051606480840193829003018186803b15801561292c57600080fd5b505af4158015612940573d6000803e3d6000fd5b505050506040513d604081101561295657600080fd5b50805160209091015190925090508015612b09576006600c6000600e8681548110151561297f57fe5b6000918252602080832090910154600160a060020a031683528201929092526040019020805460ff191660018360068111156129b757fe5b02179055508160075403860195506000821115612a7657600254600e8054600160a060020a039092169163a9059cbb9190869081106129f257fe5b60009182526020808320909101546040805160e060020a63ffffffff8716028152600160a060020a039092166004830152602482018890525160448083019491928390030190829087803b158015612a4957600080fd5b505af1158015612a5d573d6000803e3d6000fd5b505050506040513d6020811015612a7357600080fd5b50505b600254600e8054600160a060020a0390921691637bb6a096919086908110612a9a57fe5b60009182526020822001546040805163ffffffff851660e060020a028152600160a060020a03909216600483015260066024830152516044808301939282900301818387803b158015612aec57600080fd5b505af1158015612b00573d6000803e3d6000fd5b50505050612b43565b60018584815181101515612b1957fe5b91151560209283029091019091015283518290859085908110612b3857fe5b602090810290910101525b50505b6001016127ad565b5060005b8151811015612ceb578281815181101515612b6957fe5b9060200190602002015115612ce357600254600e8054600160a060020a039092169163a9059cbb919084908110612b9c57fe5b600091825260209091200154600160a060020a03168887811515612bbc57fe5b048585815181101515612bcb57fe5b90602001906020020151016040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015612c2857600080fd5b505af1158015612c3c573d6000803e3d6000fd5b505050506040513d6020811015612c5257600080fd5b5050600254600e8054600160a060020a0390921691637bb6a096919084908110612c7857fe5b60009182526020822001546040805163ffffffff851660e060020a028152600160a060020a03909216600483015260066024830152516044808301939282900301818387803b158015612cca57600080fd5b505af1158015612cde573d6000803e3d6000fd5b505050505b600101612b52565b50600254604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916367fbd2899183916370a0823191602480820192602092909190829003018186803b158015612d5857600080fd5b505afa158015612d6c573d6000803e3d6000fd5b505050506040513d6020811015612d8257600080fd5b50516040805160e060020a63ffffffff8516028152600481019290925251602480830192600092919082900301818387803b158015612dc057600080fd5b505af1158015612dd4573d6000803e3d6000fd5b505050505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612e2057805160ff1916838001178555612e4d565b82800160010185558215612e4d579182015b82811115612e4d578251825591602001919060010190612e32565b50612e59929150612e5d565b5090565b612e7791905b80821115612e595760008155600101612e63565b9056fe43616c6c656420647572696e672077726f6e67206173736573736d656e742073a165627a7a723058209fe2577dbee586d9f85f0ba62330f2812221ded70479364092a7c2e2fa6946900029",
  "sourceMap": "324:16118:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;324:16118:0;;;;;;;",
  "deployedSourceMap": "324:16118:0:-;;;;;;;;;-1:-1:-1;;;324:16118:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;733:44:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;733:44:1;;;;;;;;;;;;;;;;;;;;2236:16;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2236:16:1;;;;1711:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1711:30:1;;;;;;;;-1:-1:-1;;;;;1711:30:1;;;;;;;;;;;;;;3371:508:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3371:508:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3371:508:0;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;3371:508:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3371:508:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3371:508:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;3371:508:0;;-1:-1:-1;;;3371:508:0;;-1:-1:-1;;;;;3371:508:0;;-1:-1:-1;3371:508:0;;-1:-1:-1;3371:508:0;;;6060:2014;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6060:2014:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6060:2014:0;;;-1:-1:-1;;;;;6060:2014:0;;;;;;;;;;;2128:19:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2128:19:1;;;;1748:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1748:23:1;;;;874:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;874:49:1;;;;1682:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1682:22:1;;;;2323:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2323:21:1;;;;5297:431:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5297:431:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5297:431:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;5297:431:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5297:431:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;5297:431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;5297:431:0;;-1:-1:-1;5297:431:0;;-1:-1:-1;;;;;5297:431:0;2181:16:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2181:16:1;;;;3051:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3051:28:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2421:16;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2421:16:1;;;;2620:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2620:38:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2620:38:1;-1:-1:-1;;;;;2620:38:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2620:38:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2525:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2525:19:1;;;;1135:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1135:40:1;;;;1937:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1937:22:1;;;;1013:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1013:48:1;;;;2915:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2915:47:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2915:47:1;-1:-1:-1;;;;;2915:47:1;;;2307:852:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2307:852:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2307:852:0;;;1034:1018;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1034:1018:0;;;;4041:1173;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4041:1173:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4041:1173:0;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;4041:1173:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4041:1173:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;4041:1173:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;4041:1173:0;;-1:-1:-1;4041:1173:0;;-1:-1:-1;;;;;4041:1173:0;733:44:1;776:1;733:44;:::o;2236:16::-;;;;:::o;1711:30::-;;;-1:-1:-1;;;;;1711:30:1;;:::o;3371:508:0:-;3490:15;-1:-1:-1;;;;;3462:24:0;;;;;;:13;:24;;;;;;;;:43;;;;;;;;;3458:415;;;3574:6;3582:5;3557:31;;;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3557:31:0;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3557:31:0;;;3547:42;;;;;;3525:7;:18;3533:9;-1:-1:-1;;;;;3525:18:0;-1:-1:-1;;;;;3525:18:0;;;;;;;;;;;;;:64;3521:248;;;3609:11;;;3642:4;;3609:40;;;;;;3630:10;3609:40;;;;3642:6;;;;3609:40;;;;;-1:-1:-1;;;;;3609:11:0;;;;:20;;:40;;;;;;;;;;;;;;-1:-1:-1;3609:11:0;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;3609:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3609:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;;3667:24:0;;;;;;:13;3609:40;3667:24;;;;:39;;-1:-1:-1;;3667:39:0;3694:12;3667:39;;;3724:4;:6;;-1:-1:-1;;3724:6:0;;;;;;3748:4;:6;;;;;;;3521:248;776:1:1;3786:4:0;;:26;3782:81;;;3830:18;:16;:18::i;:::-;3371:508;;;:::o;6060:2014::-;431:7;;-1:-1:-1;;;;;431:7:0;409:10;:30;401:62;;;;;-1:-1:-1;;;;;401:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;6233:15;6287:2;921::1;6252:31:0;;6251:38;6233:56;;6380:16;6407:23;6441:8;6407:43;;6460:18;6559:2;675:1:1;6482:15:0;-1:-1:-1;;;;;6482:43:0;;:45;;;;;-1:-1:-1;;;6482:45:0;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6482:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6482:45:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6482:45:0;:73;6481:80;;;;;;;;;-1:-1:-1;6635:27:0;;;6631:1307;;6765:46;6783:5;6790:10;6802:8;6765:17;:46::i;:::-;6750:61;;;;6631:1307;;;6929:24;;7039:522;7060:15;-1:-1:-1;;;;;7060:34:0;;:36;;;;;-1:-1:-1;;;7060:36:0;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7060:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7060:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7060:36:0;7056:40;;7039:522;;;7121:14;7146:15;-1:-1:-1;;;;;7146:23:0;;7170:1;7146:26;;;;;-1:-1:-1;;;7146:26:0;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7146:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7146:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7146:26:0;7334:32;;;;;;;;;;;;;;7146:26;;-1:-1:-1;7191:22:0;;7387:4;;-1:-1:-1;;;;;7334:29:0;;;;;:32;;;;;7146:26;;7334:32;;;;;;;;:29;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;7334:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7334:32:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7334:32:0;7240:36;;;;;;;;7308:2;;675:1:1;;-1:-1:-1;;;;;7240:34:0;;;;;:36;;;;;7334:32;;7240:36;;;;;;;:34;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;7240:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7240:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7240:36:0;:64;7239:71;;;;;;;;7238:128;7216:175;;;;;;;;7409:40;;;;7216:175;-1:-1:-1;7482:64:0;7500:9;;;7216:175;7538:6;7482:17;:64::i;:::-;7467:79;;;;-1:-1:-1;;7098:3:0;;7039:522;;;-1:-1:-1;7662:35:0;;;:49;-1:-1:-1;7662:49:0;7654:101;;;;;-1:-1:-1;;;;;7654:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7871:56;7889:5;7897:4;7889:12;7903:13;7918:8;7871:17;:56::i;:::-;7856:71;;;;6631:1307;;776:1:1;7955:34:0;;;7947:80;;;;;-1:-1:-1;;;;;7947:80:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8037:15:0;:30;;-1:-1:-1;;8037:30:0;8055:12;8037:30;;;-1:-1:-1;;;;;6060:2014:0:o;2128:19:1:-;;;;:::o;1748:23::-;;;-1:-1:-1;;;;;1748:23:1;;:::o;874:49::-;921:2;874:49;:::o;1682:22::-;;;-1:-1:-1;;;;;1682:22:1;;:::o;2323:21::-;;;;:::o;5297:431:0:-;5373:8;;-1:-1:-1;;;;;5373:8:0;5359:10;:22;;:66;;-1:-1:-1;5413:12:0;5399:10;5385:25;;;;:13;:25;;;;;;;;:40;;;;;;;;;5359:66;5351:142;;;;;;;-1:-1:-1;;;;;5351:142:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5529:15;5511;;;;:33;;;;;;;;;5503:81;;;;;-1:-1:-1;;;;;5503:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5622:10;5617:16;;;;:4;:16;;;;;;;;;5594:39;;;;;;-1:-1:-1;;5594:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:20;;:39;;;5617:16;5594:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5648:10:0;5643:16;;;;:4;:16;;;;;;;;:24;;5594:39;;-1:-1:-1;5643:24:0;;:16;;-1:-1:-1;5643:24:0;;;;-1:-1:-1;5643:24:0;-1:-1:-1;5643:24:0;:::i;:::-;;5682:39;5694:10;5706:7;5715:5;5682:39;;;;-1:-1:-1;;;;;5682:39:0;-1:-1:-1;;;;;5682:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;5682:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5682:39:0;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;5682:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5297:431;;:::o;2181:16:1:-;;;;:::o;3051:28::-;;;;;;:::o;2421:16::-;;;;:::o;2620:38::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2620:38:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2525:19::-;;;;:::o;1135:40::-;1173:2;1135:40;:::o;1937:22::-;;;;:::o;1013:48::-;1053:8;1013:48;:::o;2915:47::-;;;;;;;;;;;;;;;:::o;2307:852:0:-;2357:15;;540;;;;:25;;;;;;;;;532:74;;;;;-1:-1:-1;;;;;532:74:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;532:74:0;;;;-1:-1:-1;;;;;532:74:0;;;;;;;;;;;;;;;2513:7;;2489:4;;2507:3;:13;2503:92;;;2557:27;2568:15;2557:10;:27::i;:::-;2536:48;;2503:92;2608:27;;;2604:40;;2637:7;;;2604:40;2687:15;2672:10;2658:25;;;;:13;:25;;;;;;;;:44;;;;;;;;;2654:179;;;2726:10;2718:19;;;;:7;:19;;;;;;;;:27;;;2759:13;:25;;;;;:43;;-1:-1:-1;;2759:43:0;2787:15;2759:43;;;2816:4;:6;;2759:43;2816:6;;;2654:179;2936:4;;2928;;:12;2924:229;;;2969:3;1053:8:1;2969:22:0;2956:10;:35;3005:68;3026:15;3044:28;3005:15;:68::i;:::-;-1:-1:-1;3094:1:0;3087:4;:8;3109:15;:33;;-1:-1:-1;;3109:33:0;3127:15;3109:33;;;616:1;2307:852;;:::o;1034:1018::-;1080:12;;540:15;;;;:25;;;;;;;;;532:74;;;;;-1:-1:-1;;;;;532:74:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;532:74:0;;;;-1:-1:-1;;;;;532:74:0;;;;;;;;;;;;;;;1228:10;;1222:3;:16;1218:72;;;1261:18;:16;:18::i;:::-;1254:25;;1218:72;1383:12;1368:10;1354:25;;;;:13;:25;;;;;;;;:41;;;;;;;;;:80;;;;-1:-1:-1;1430:4:0;;1411:9;:16;:23;1354:80;:170;;;;-1:-1:-1;1450:11:0;;1501:4;;1450:11;1515:7;1450:74;;;;;;1474:10;1450:74;;;;1494:4;1450:74;;;;;;;;;;;-1:-1:-1;;;;;1515:7:0;;;1450:74;;;;;:11;;;:23;;:74;;;;;;;;;;;;;;;:11;;:74;;;5:2:-1;;;;30:1;27;20:12;5:2;1450:74:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1450:74:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1450:74:0;1354:170;1350:376;;;1540:9;27:10:-1;;39:1;23:18;;45:23;;;1540:26:0;;;;1555:10;-1:-1:-1;;1540:26:0;;;;;;;;-1:-1:-1;1580:25:0;;;:13;1540:26;1580:25;;;;;:43;;-1:-1:-1;;1580:43:0;1608:15;1580:43;;;;;;1637:11;;:78;;-1:-1:-1;;;;;1637:78:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:11:0;;;;:28;;:78;;;;;-1:-1:-1;;1637:78:0;;;;;-1:-1:-1;1637:11:0;:78;;;5:2:-1;;;;30:1;27;20:12;5:2;1637:78:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1637:78:0;;;;1350:376;1804:4;;1784:9;:16;:24;1780:266;;;1824:75;1845:15;1863:35;1824:15;:75::i;:::-;1913:11;;1942:8;;1913:75;;;-1:-1:-1;;;;;1913:75:0;;-1:-1:-1;;;;;1942:8:0;;;1952:35;1913:75;;;;;;;;;;;;;:11;;;;;:28;;:75;;;;;-1:-1:-1;;1913:75:0;;;;;;;-1:-1:-1;1913:11:0;:75;;;5:2:-1;;;;30:1;27;20:12;5:2;1913:75:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2002:15:0;:33;;-1:-1:-1;;2002:33:0;2020:15;2002:33;;;-1:-1:-1;;1780:266:0;1034:1018;:::o;4041:1173::-;4112:15;;540;;;;:25;;;;;;;;;532:74;;;;;-1:-1:-1;;;;;532:74:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;532:74:0;;;;-1:-1:-1;;;;;532:74:0;;;;;;;;;;;;;;;4349:10;;4343:3;:16;4335:58;;;;;-1:-1:-1;;;;;4335:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4522:7;;4498:4;;4532:8;4522:18;4516:3;:24;4512:103;;;4577:27;4588:15;4577:10;:27::i;:::-;4556:48;;4512:103;4628:27;;;4624:40;;4657:7;;;4624:40;4764:15;4749:10;4735:25;;;;:13;:25;;;;;;;;:44;;;;;;;;;:125;;;;;4845:6;4853:5;4828:31;;;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4828:31:0;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;4828:31:0;;;4818:42;;;;;;4795:7;:19;4803:10;-1:-1:-1;;;;;4795:19:0;-1:-1:-1;;;;;4795:19:0;;;;;;;;;;;;;:65;4735:125;4731:308;;;4883:10;4876:18;;;;:6;:18;;;;;;;;:27;;;;;;;;-1:-1:-1;;4876:27:0;;;;;;4932:23;;;;;;4924:4;;;:32;;;4917:39;;4970:13;:25;;;;;:38;;-1:-1:-1;;4970:38:0;4998:10;4970:38;;;5022:4;:6;;-1:-1:-1;5022:6:0;;;4731:308;5091:4;;5083;;:12;5079:129;;;5111:15;:28;;-1:-1:-1;;5111:28:0;5129:10;5111:28;;;5153:17;:15;:17::i;:::-;5194:3;5184:7;:13;5079:129;616:1;4041:1173;;;:::o;10446:698::-;10492:19;10533:12;10514:15;;;;:31;;;;;;;;;:71;;10569:9;:16;10562:4;;:23;10514:71;;;10555:4;;10548;;:11;10514:71;10595:11;;10616:8;;10595:46;;;;;;-1:-1:-1;;;;;10616:8:0;;;10595:46;;;;;;;;;;;;10492:93;;-1:-1:-1;10595:11:0;;;:20;;:46;;;;;;;;;;;;;;;:11;;:46;;;5:2:-1;;;;30:1;27;20:12;5:2;10595:46:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10595:46:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;10651:11:0;;10680:8;;;10651:76;;;-1:-1:-1;;;;;10651:76:0;;-1:-1:-1;;;;;10680:8:0;;;10651:76;;;;;;;;;;;;:11;;;:28;;:76;;;;;-1:-1:-1;;10651:76:0;;;;;;;;-1:-1:-1;10651:11:0;:76;;;5:2:-1;;;;30:1;27;20:12;5:2;10651:76:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;10742:6:0;;-1:-1:-1;;;10737:288:0;10758:9;:16;10754:20;;10737:288;;;10830:12;10799:13;:27;10813:9;10823:1;10813:12;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10813:12:0;10799:27;;;;;;;;;;;;;;;:43;;;;;;;;;10795:220;;10862:11;;10883:9;:12;;-1:-1:-1;;;;;10862:11:0;;;;:20;;10883:9;10893:1;;10883:12;;;;;;;;;;;;;;;;;;10897:4;;10862:40;;;-1:-1:-1;;;10862:40:0;;;;;;-1:-1:-1;;;;;10883:12:0;;;10862:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;10862:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10862:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;10920:11:0;;10949:9;:12;;-1:-1:-1;;;;;10920:11:0;;;;:28;;10949:9;10959:1;;10949:12;;;;;;;;;;;;;;;10920:80;;;;;;-1:-1:-1;;;10920:80:0;;;-1:-1:-1;;;;;10949:12:0;;;10920:80;;;;10963:36;10920:80;;;;;;;;;;10949:12;10920:80;;;;;10949:12;10920:80;;;;5:2:-1;;;;30:1;27;20:12;5:2;10920:80:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10920:80:0;;;;10795:220;10776:3;;10737:288;;;-1:-1:-1;11034:15:0;:30;;-1:-1:-1;;11034:30:0;11052:12;11034:30;;;11074:11;;11100:36;;;;;;11130:4;11100:36;;;;;;-1:-1:-1;;;;;11074:11:0;;;;:25;;:11;;11100:21;;:36;;;;;;;;;;;;;;;11074:11;11100:36;;;5:2:-1;;;;30:1;27;20:12;5:2;11100:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11100:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11100:36:0;11074:63;;;-1:-1:-1;;;11074:63:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11074:63:0;;;;;;;-1:-1:-1;11074:63:0;;;;5:2:-1;;;;30:1;27;20:12;5:2;11074:63:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11074:63:0;;;;10446:698;:::o;8560:1671::-;8664:23;8703:9;8715:5;8703:17;;8730:23;8764:8;8730:43;;8783:33;8819:15;-1:-1:-1;;;;;8819:35:0;;:37;;;;;-1:-1:-1;;;8819:37:0;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8819:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8819:37:0;;;;;;39:16:-1;36:1;17:17;2:54;101:4;8819:37:0;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;8819:37:0;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;219:3;213:10;331:9;325:2;311:12;307:21;289:16;285:44;282:59;261:11;247:12;244:29;233:116;230:2;;;362:1;359;352:12;230:2;-1:-1;;9040:23:0;;8819:37;;-1:-1:-1;9040:23:0;-1:-1:-1;9026:11:0;;-1:-1:-1;;9073:1152:0;9094:7;9090:1;:11;9073:1152;;;9122:11;9136:4;:20;9157:4;9172:1;9163:6;:10;9136:38;;;;;-1:-1:-1;;;9136:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9136:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9136:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9136:38:0;9202:42;;;;;;9230:1;9223:8;;9202:42;;;;-1:-1:-1;;9233:10:0;;9202:42;;;;;;9136:38;;-1:-1:-1;9188:11:0;;9202:4;;:20;;:42;;;;;9136:38;;9202:42;;;;;;;:4;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;9202:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9202:42:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9202:42:0;9299:24;;9202:42;;-1:-1:-1;9258:12:0;;-1:-1:-1;;;;;9273:25:0;;;;;9299:16;;9316:6;;9299:24;;;;;;;;;;;;;;9273:51;;;;;-1:-1:-1;;;9273:51:0;;;;;;;-1:-1:-1;;;;;9273:51:0;-1:-1:-1;;;;;9273:51:0;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9273:51:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9273:51:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9273:51:0;9379:24;;9273:51;;-1:-1:-1;9338:12:0;;-1:-1:-1;;;;;9353:25:0;;;;;9379:16;;9396:6;;9379:24;;;;;;;;;;;;;;9353:51;;;;;-1:-1:-1;;;9353:51:0;;;;;;;-1:-1:-1;;;;;9353:51:0;-1:-1:-1;;;;;9353:51:0;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9353:51:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9353:51:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9353:51:0;;-1:-1:-1;9419:22:0;9459:18;;;9455:324;;9514:16;9531:6;9514:24;;;;;;;;;;;;;;;;;;9497:41;;9583:16;9609:1;9600:6;:10;9583:28;;;;;;;;;;;;;;;;;;9556:16;9573:6;9556:24;;;;;;;;;;-1:-1:-1;;;;;9556:55:0;;;:24;;;;;;;;;;:55;9455:324;;;9667:16;9684:6;9667:24;;;;;;;;;;;;;;;;;;9650:41;;9736:16;9762:1;9753:6;:10;9736:28;;;;;;;;;;;;;;;;;;9709:16;9726:6;9709:24;;;;;;;;;;-1:-1:-1;;;;;9709:55:0;;;:24;;;;;;;;;;:55;9455:324;9821:14;9792:16;9816:1;9809:6;:8;9792:26;;;;;;;;;;-1:-1:-1;;;;;9792:43:0;;;:26;;;;;;;;;;:43;10030:33;10048:14;10030:17;:33::i;:::-;10026:62;;;10087:1;10065:23;;;;10026:62;-1:-1:-1;;;10110:2:0;10102:10;;;;;-1:-1:-1;;;;10206:8:0;;;;;9103:3;9073:1152;;;;8560:1671;;;;;;;;;:::o;11946:485::-;11996:23;;12031:210;12052:9;:16;12048:20;;12031:210;;;12124:6;12093:37;;;;;;;;:13;:27;12107:9;12117:1;12107:12;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12107:12:0;12093:27;;;;;;;;;;;;;;;:37;;;;;;;;;12089:142;;;12180:12;12150:13;:27;12164:9;12174:1;12164:12;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12164:12:0;12150:27;;;;;;;;;;;;:42;;-1:-1:-1;;12150:42:0;12164:12;12150:42;;;;;;;;;;;;;-1:-1:-1;12210:4:0;:6;;-1:-1:-1;;12210:6:0;;;12089:142;12070:3;;12031:210;;;;776:1:1;12254:4:0;;:26;12250:175;;;12298:18;:16;:18::i;:::-;-1:-1:-1;12353:5:0;12250:175;;;-1:-1:-1;12410:4:0;12250:175;11946:485;;;:::o;12536:285::-;12622:6;12617:198;12636:9;:16;12632:20;;12617:198;;;12714:6;12682:13;:27;12696:9;12706:1;12696:12;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12696:12:0;12682:27;;;;;;;;;;;;;;;12677:33;;;;;;;;:43;12673:132;;;12740:11;;12769:9;:12;;-1:-1:-1;;;;;12740:11:0;;;;:28;;12769:9;12779:1;;12769:12;;;;;;;;;;;;;;;;12740:50;;-1:-1:-1;;;12740:50:0;;;;;;-1:-1:-1;;;;;12769:12:0;;;12740:50;;;;;;12769:12;;12783:6;;12740:50;;;12783:6;12740:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12740:50:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12740:50:0;;;;12673:132;12654:3;;12617:198;;13020:1192;13067:10;;540:15;;;;:25;;;;;;;;;532:74;;;;;-1:-1:-1;;;;;532:74:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;532:74:0;;;;-1:-1:-1;;;;;532:74:0;;;;;;;;;;;;;;;13169:24;13206:4;;13196:15;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;13196:15:0;-1:-1:-1;13169:42:0;-1:-1:-1;13221:8:0;;13242:210;13263:9;:16;13259:20;;13242:210;;;13335:10;13304:13;:27;13318:9;13328:1;13318:12;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13318:12:0;13304:27;;;;;;;;;;;;;;;:41;;;;;;;;;13300:142;;;13384:6;:20;13391:9;13401:1;13391:12;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13391:12:0;13384:20;;;;;;;;;;;;;13365:16;;13384:20;;;;13365:39;;;;:11;;13377:3;;13365:16;;;;;;;;;;;;;;:39;13422:5;;;;;13300:142;13281:3;;13242:210;;;;13461:26;13535:4;:18;13554:11;1173:2:1;13535:47:0;;;;;-1:-1:-1;;;13535:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;13535:47:0;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13535:47:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13535:47:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13535:47:0;;;;;;;13498:10;13497:85;;;;13707:4;;13535:47;;-1:-1:-1;13712:1:0;;13707:6;13683:21;:30;13679:442;;;13729:29;13736:21;13729:6;:29::i;:::-;13789:1;13776:10;;:14;13772:122;;;13810:7;;13828:8;;13843:10;;13810:69;;;;;;-1:-1:-1;;;;;13828:8:0;;;13810:69;;;;13838:40;;;13810:69;;;;;:7;;;;;:17;;:69;;;;;:7;;:69;;;;;;;:7;;:69;;;5:2:-1;;;;30:1;27;20:12;5:2;13810:69:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13810:69:0;;;;13772:122;13679:442;;;14003:11;;14029:36;;;;;;14059:4;14029:36;;;;;;-1:-1:-1;;;;;14003:11:0;;;;:25;;:11;;14029:21;;:36;;;;;;;;;;;;;;;14003:11;14029:36;;;5:2:-1;;;;30:1;27;20:12;5:2;14029:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14029:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14029:36:0;14003:63;;;-1:-1:-1;;;14003:63:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14003:63:0;;;;;;;-1:-1:-1;14003:63:0;;;;5:2:-1;;;;30:1;27;20:12;5:2;14003:63:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;14080:15:0;:30;;-1:-1:-1;;14080:30:0;14098:12;14080:30;;;-1:-1:-1;;13679:442:0;14130:11;;14159:8;;14130:75;;;-1:-1:-1;;;;;14130:75:0;;-1:-1:-1;;;;;14159:8:0;;;14130:75;;;;14169:35;14130:75;;;;;;:11;;;;;:28;;:75;;;;;-1:-1:-1;;14130:75:0;;;;;;;-1:-1:-1;14130:11:0;:75;;;5:2:-1;;;;30:1;27;20:12;5:2;14130:75:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14130:75:0;;;;616:1;;;13020:1192;:::o;11359:330::-;11454:8;;11421:4;;-1:-1:-1;;;;;11441:21:0;;;11454:8;;11441:21;;;;:63;;-1:-1:-1;;;;;;11466:24:0;;11494:10;11466:24;;;:13;:24;;;;;;;;:38;;;;;;;;;11441:63;11437:246;;;11520:11;;:74;;;-1:-1:-1;;;;;11520:74:0;;-1:-1:-1;;;;;11520:74:0;;;;;;;:11;:74;;;;;;:11;;;;;:28;;:74;;;;;-1:-1:-1;;11520:74:0;;;;;;;-1:-1:-1;11520:11:0;:74;;;5:2:-1;;;;30:1;27;20:12;5:2;11520:74:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;;;;;;11608:24:0;;;;;;:13;:24;;;;;:39;;-1:-1:-1;;11608:39:0;11635:12;11608:39;;;;;;11635:12;-1:-1:-1;11661:11:0;;14377:2063;14442:10;;540:15;;;;:25;;;;;;;;;532:74;;;;;-1:-1:-1;;;;;532:74:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;532:74:0;;;;-1:-1:-1;;;;;532:74:0;;;;;;;;;;;;;;;14697:9;:16;14686:28;;;;;;;;;;;;;;;;14547:17;;14659:24;;14686:28;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;14686:28:0;;14659:55;;14769:30;14813:9;:16;;;;14802:28;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;14802:28:0;-1:-1:-1;14769:61:0;-1:-1:-1;15000:6:0;14995:934;15016:9;:16;15012:20;;14995:934;;;15088:10;15057:13;:27;15071:9;15081:1;15071:12;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15071:12:0;15057:27;;;;;;;;;;;;;;;:41;;;;;;;;;15053:866;;;15118:16;15152:15;15213:4;:14;15249:4;:8;15281:10;;15258:6;:20;15265:9;15275:1;15265:12;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15265:12:0;15258:20;;;;;;;;;;;;;;;;15249:43;;-1:-1:-1;;;15249:43:0;;;;;;15258:20;;;;:33;;;;;;;15249:43;;;;;;;;;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;15249:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15249:43:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15249:43:0;15314:4;;15213:159;;;-1:-1:-1;;;15213:159:0;;;;;;;;;;;;;;;;;;;;1173:2:1;15213:159:0;;;;;;;;;;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;15213:159:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15213:159:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15213:159:0;;;;;;;;;-1:-1:-1;15213:159:0;-1:-1:-1;15390:515:0;;;;15458:13;15428;:27;15442:9;15452:1;15442:12;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15442:12:0;15428:27;;;;;;;;;;;;:43;;-1:-1:-1;;15428:43:0;15442:12;15428:43;;;;;;;;;;;;;;15516:11;15509:4;;:18;15493:34;;;;15567:1;15553:11;:15;15549:117;;;15596:11;;15617:9;:12;;-1:-1:-1;;;;;15596:11:0;;;;:20;;15617:9;15627:1;;15617:12;;;;;;;;;;;;;;;;;;15596:47;;;-1:-1:-1;;;15596:47:0;;;;;;-1:-1:-1;;;;;15617:12:0;;;15596:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;15596:47:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15596:47:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;15549:117:0;15687:11;;15716:9;:12;;-1:-1:-1;;;;;15687:11:0;;;;:28;;15716:9;15726:1;;15716:12;;;;;;;;;;;;;;;15687:77;;;;;;-1:-1:-1;;;15687:77:0;;;-1:-1:-1;;;;;15716:12:0;;;15687:77;;;;15730:33;15687:77;;;;;;;;;;15716:12;15687:77;;;;;15716:12;15687:77;;;;5:2:-1;;;;30:1;27;20:12;5:2;15687:77:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15687:77:0;;;;15390:515;;;15827:4;15811:10;15822:1;15811:13;;;;;;;;;;:20;;;:13;;;;;;;;;;:20;15853:19;;15875:11;;15853:16;;15870:1;;15853:19;;;;;;;;;;;;;;:33;15390:515;15053:866;;;15034:3;;14995:934;;;-1:-1:-1;16051:6:0;16046:315;16067:16;:23;16063:1;:27;16046:315;;;16115:10;16126:1;16115:13;;;;;;;;;;;;;;;;;;16111:240;;;16148:11;;16169:9;:12;;-1:-1:-1;;;;;16148:11:0;;;;:20;;16169:9;16179:1;;16169:12;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16169:12:0;16218:22;16205:12;:35;;;;;;;;16183:16;16200:1;16183:19;;;;;;;;;;;;;;;;;;:57;16148:93;;;;;-1:-1:-1;;;16148:93:0;;;;;;;-1:-1:-1;;;;;16148:93:0;-1:-1:-1;;;;;16148:93:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16148:93:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16148:93:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;16259:11:0;;16288:9;:12;;-1:-1:-1;;;;;16259:11:0;;;;:28;;16288:9;16298:1;;16288:12;;;;;;;;;;;;;;;16259:77;;;;;;-1:-1:-1;;;16259:77:0;;;-1:-1:-1;;;;;16288:12:0;;;16259:77;;;;16302:33;16259:77;;;;;;;;;;16288:12;16259:77;;;;;16288:12;16259:77;;;;5:2:-1;;;;30:1;27;20:12;5:2;16259:77:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16259:77:0;;;;16111:240;16092:3;;16046:315;;;-1:-1:-1;16370:11:0;;16396:36;;;;;;16426:4;16396:36;;;;;;-1:-1:-1;;;;;16370:11:0;;;;:25;;:11;;16396:21;;:36;;;;;;;;;;;;;;;16370:11;16396:36;;;5:2:-1;;;;30:1;27;20:12;5:2;16396:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16396:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16396:36:0;16370:63;;;-1:-1:-1;;;16370:63:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16370:63:0;;;;;;;-1:-1:-1;16370:63:0;;;;5:2:-1;;;;30:1;27;20:12;5:2;16370:63:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16370:63:0;;;;616:1;;;14377:2063;;:::o;324:16118::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;324:16118:0;;;-1:-1:-1;324:16118:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o",
  "source": "pragma solidity ^0.5.0;\n\nimport \"./Math.sol\";\nimport \"./Concept.sol\";\nimport \"./FathomToken.sol\";\nimport \"./AssessmentData.sol\";\n\n\n/*\n @notice This contract implements the assessment game that adds new members to a concept.\n @dev See AssessmentProxy.sol for the constructor and AssessmentData.sol for the storage layout\n */\ncontract Assessment is AssessmentData {\n    modifier onlyConcept() {\n        require(msg.sender == address(concept), \"Concept access only\");\n        _;\n    }\n\n    modifier onlyInStage(Stage _stage) {\n        require(assessmentStage == _stage, \"Called during wrong assessment stage\");\n        _;\n    }\n\n    // ********************************************\n    // PUBLIC FUNCTIONS\n    // ********************************************\n    /**\n       @notice Adds a called assessor to the assessment by taking their stake\n       @dev The assessor's tokens are sent to the address of the assessment. Also, if the\n         confirm-period is over, anyone's call to this function will cancel the assessment.\n     */\n    function confirmAssessor() public onlyInStage(Stage.Called) {\n        // cancel if the assessment is past its startTime\n        // if time to confirm is over cancel and refund\n        if (now > checkpoint) {\n            return cancelAssessment();\n        }\n        // withdraw stake, save to list and notify\n        if (assessorStage[msg.sender] == Stage.Called &&\n            assessors.length < size &&\n            fathomToken.takeBalance(msg.sender, address(this), cost, address(concept))) {\n            assessors.push(msg.sender);\n            assessorStage[msg.sender] = Stage.Confirmed;\n            fathomToken.emitNotification(msg.sender, FathomToken.Note.ConfirmedAsAssessor);\n        }\n        // if sufficient, advance assessment\n        if (assessors.length == size) {\n            notifyAssessors(uint(Stage.Confirmed), FathomToken.Note.AssessmentHasBegun);\n            fathomToken.emitNotification(assessee, FathomToken.Note.AssessmentHasBegun);\n            assessmentStage = Stage.Confirmed;\n        }\n    }\n\n    /**\n       @notice Called by assessors to commit a (hashed) score\n       @dev If this function is called (by anyone) after the end of the commit phase,\n       it will burn all non-committed assessors and cancel or advance the assessment.\n    */\n    function commit(bytes32 _hash) public onlyInStage(Stage.Confirmed) {\n        // if commit-phase is over, burn stakes and cancel+refund if necessary\n        bool continueAssessment = true;\n        if (now > endTime) {\n            continueAssessment = burnStakes(Stage.Confirmed);\n        }\n        if (continueAssessment == false) return;\n\n        if (assessorStage[msg.sender] == Stage.Confirmed) {\n            commits[msg.sender] = _hash;\n            assessorStage[msg.sender] = Stage.Committed;\n            done++;\n        }\n        // advance assessment, set checkpoint to earliest possible time to reveal\n        if (done == size) {\n            checkpoint = now + CHALLENGE_PERIOD;\n            notifyAssessors(uint(Stage.Committed), FathomToken.Note.RevealScore);\n            done = 0;\n            assessmentStage = Stage.Committed;\n        }\n    }\n\n    /**\n       @notice Called by anyone to steal half of an assessor's stake and remove them from the assessment\n       @dev The other half of the tokens will be burned when the payout is completed.\n    */\n    function steal(int128 _score, string memory _salt, address _assessor) public {\n        if (assessorStage[_assessor] == Stage.Committed) {\n            if (commits[_assessor] == keccak256(abi.encodePacked(_score, _salt))) {\n                fathomToken.transfer(msg.sender, cost/2);\n                assessorStage[_assessor] = Stage.Burned;\n                size--;\n                done--;\n            }\n            if (size < MIN_ASSESSMENT_SIZE) {\n              cancelAssessment();\n            }\n        }\n    }\n\n    /**\n       @notice Called by assessors to reveal their score\n       @dev Also cancels the assessment if there have been to few reveals in time.\n\n    */\n    function reveal(int128 _score, string memory _salt) public onlyInStage(Stage.Committed) {\n        // See if challenge period is over: This is true at the earliest 12\n        // hours after the latest commit and at the latest 24 hours after the\n        // desired end of the assessment.\n        require(now > checkpoint, \"Challenge period must be over\");\n\n        // If reveal-phase has passed burn all unrevealed assessors\n        bool continueAssessment = true;\n        if (now > endTime + 24 hours) {\n            continueAssessment = burnStakes(Stage.Committed);\n        }\n        if (continueAssessment == false) return; // assessment has been cancelled\n\n        // reveal score\n        if (assessorStage[msg.sender] == Stage.Committed &&\n            commits[msg.sender] == keccak256(abi.encodePacked(_score, _salt))) {\n            scores[msg.sender] = _score;\n            salt = salt ^ (keccak256(bytes(_salt)));\n            assessorStage[msg.sender] = Stage.Done;\n            done++;\n        }\n\n        // advance assessment\n        if (done == size) {\n            assessmentStage = Stage.Done;\n            calculateResult();\n            endTime = now;\n        }\n    }\n\n    /// @notice Called by assessors/assessee to store data on the assessment\n    function addData(bytes memory _data) public {\n        require(msg.sender == assessee || assessorStage[msg.sender] > Stage.Called,\n                \"Must be assessee or confirmed assessor\"\n        );\n        require(assessmentStage < Stage.Committed, \"Deadline for adding data has passed\");\n        bytes memory oldData = data[msg.sender];\n        data[msg.sender] = _data;\n        emit DataChanged(msg.sender, oldData, _data);\n    }\n\n    /*\n      @notice Assembles a pool of assessors from the assessed concept and its parents.\n      @dev The number of assessor to draw per concept is limited by the amount\n       of its available members (multiplied by a constant factor). For\n       parent-concepts it is also proportional to the connection strength.\n    */\n    function setAssessorPool(uint _seed, address _concept, uint _size) public onlyConcept() {\n        // Total desired number of assessors for the pool to be big enough\n        uint toBeCalled = (_size * ASSESSORPOOL_SIZEFACTOR) / 10;\n        // Total number of distinct assessors that have successfully been called\n        uint totalCalled;\n\n        Concept assessedConcept = Concept(_concept);\n        uint availableHere = (assessedConcept.getNumberOfAvailableMembers() * MEMBERCALL_CEILING_FACTOR) / 10;\n\n        // Enough assessors or start calling from parents?\n        if (availableHere >= toBeCalled) {\n            // Actually try calling assessors from the assessed concept\n            totalCalled += callRandomMembers(_seed, toBeCalled, _concept);\n        } else {\n            // Total number of assessors that could be called from the parent-concepts\n            uint availableViaParents;\n            // See how many are available AND actually try calling them\n            for (uint k = 0; k < assessedConcept.getNumberOfParents(); k++) {\n                Concept parent = Concept(assessedConcept.parents(k));\n                uint availableInParent = (\n                    ((parent.getNumberOfAvailableMembers() * MEMBERCALL_CEILING_FACTOR) / 10) *\n                    assessedConcept.parentFactors(k)\n                ) / 1000;\n                availableViaParents += availableInParent;\n                totalCalled += callRandomMembers(_seed + k, availableInParent, address(parent));\n            }\n            // Check if there are enough assessors in concept & parent combined\n            require(availableHere + availableViaParents >= toBeCalled, \"Not enough assessors in parent concepts\");\n            // Then also try to actually calling the members from the assessed concept\n            totalCalled += callRandomMembers(_seed + 4224, availableHere, _concept);\n        }\n        require(totalCalled >= MIN_ASSESSMENT_SIZE, \"Too few assessors could be called\");\n        assessmentStage = Stage.Called;\n    }\n\n    // ********************************************\n    // INTERNAL FUNCTIONS\n    // ********************************************\n    /**\n       @notice Tries to probabilistically call a given amount of members from a given concept\n        and its parents. Members with higher weights having better chances of being called.\n       @dev This assumes there are >=amount members in the concept.\n       @return how many members have actually been added to the assessment pool.\n    */\n    function callRandomMembers(uint _seed, uint _amount, address _concept)\n        internal\n        returns(uint successfullyCalled)\n    {\n        uint seed = _seed;\n        Concept assessorConcept = Concept(_concept);\n        address[] memory availableMembers = assessorConcept.getAvailableMembers();\n\n        // Select two random members and choose the one with higher weight\n        // Also switch selected member with last address in array (to remove later)\n        uint length = availableMembers.length;\n        for (uint i = 0; i < _amount; i++) {\n            uint index1 = Math.getRandomNumber(seed, length - 1);\n            uint index2 = Math.getRandomNumber(seed * 2, length - 1);\n            uint weight1 = assessorConcept.getWeight(availableMembers[index1]);\n            uint weight2 = assessorConcept.getWeight(availableMembers[index2]);\n\n            address calledAssessor;\n            if (weight1 >= weight2) {\n                calledAssessor = availableMembers[index1];\n                availableMembers[index1] = availableMembers[length - 1];\n            } else {\n                calledAssessor = availableMembers[index2];\n                availableMembers[index2] = availableMembers[length - 1];\n            }\n            availableMembers[length-1] = calledAssessor;\n\n            // Try adding the selected member. If they are the assessee or have already\n            // been added to the pool from another concept, adding them again will fail\n            if (addAssessorToPool(calledAssessor)) successfullyCalled += 1;\n            seed += 10;\n            // remove last address (calledAssessor) from list to not draw again\n            length--;\n        }\n    }\n\n    // ********************************************\n    // PRIVATE FUNCTIONS\n    // ********************************************\n    /// @notice Called to cancel an assessment, refund all non-burned assessors\n    function cancelAssessment() private {\n        uint assesseeRefund = assessmentStage == Stage.Called ? cost * size : cost * assessors.length;\n        fathomToken.transfer(assessee, assesseeRefund);\n        fathomToken.emitNotification(assessee, FathomToken.Note.AssessmentCancelled);\n        for (uint i = 0; i < assessors.length; i++) {\n            if (assessorStage[assessors[i]] != Stage.Burned) {\n                fathomToken.transfer(assessors[i], cost);\n                fathomToken.emitNotification(assessors[i], FathomToken.Note.AssessmentCancelled);\n            }\n        }\n        assessmentStage = Stage.Burned;\n        fathomToken.destroyTokens(fathomToken.balanceOf(address(this)));\n    }\n\n    /**\n       @notice Adds an address to the pool of potential assessors that will be allowed to\n        accept (stake on) the assessment\n       @return flag whether the address was added successfully\n    */\n    function addAssessorToPool(address _assessor) private returns(bool) {\n        if (_assessor != assessee && assessorStage[_assessor] == Stage.None) {\n            fathomToken.emitNotification(_assessor, FathomToken.Note.CalledAsAssessor);\n            assessorStage[_assessor] = Stage.Called;\n            return true;\n        }\n    }\n\n    /**\n       @dev Burns stakes of all assessors who are in a given stage and cancels the assessment\n        if there are less than five assessors left\n       @return continueAssessment flag whether there are enough assessors left to continue\n    */\n    function burnStakes(Stage _stage) private returns(bool continueAssessment) {\n        for (uint i = 0; i < assessors.length; i++) {\n            if (assessorStage[assessors[i]] == _stage) {\n                assessorStage[assessors[i]] = Stage.Burned;\n                size--;\n            }\n        }\n        if (size < MIN_ASSESSMENT_SIZE) {\n              cancelAssessment();\n              continueAssessment = false;\n        } else {\n            continueAssessment = true;\n        }\n    }\n\n    /// @notice Triggers notification events with a given topic for all assessors in a given stage\n    function notifyAssessors(uint _stage, FathomToken.Note _topic) private {\n        for (uint i=0; i < assessors.length; i++) {\n            if (uint(assessorStage[assessors[i]]) == _stage) {\n                fathomToken.emitNotification(assessors[i], _topic);\n            }\n        }\n    }\n\n    /**\n       @notice Calculates the outcome (pass/fail/invalid) of the assessment, triggers the\n        payout and ,upon positive outcome, adds the assessee as a member to the concept\n    */\n    function calculateResult() private onlyInStage(Stage.Done) {\n        // Store committed scores of all assessors who completed the assessment\n        int[] memory finalScores = new int[](done);\n        uint idx =0;\n        for (uint j = 0; j < assessors.length; j++) {\n            if (assessorStage[assessors[j]] == Stage.Done) {\n                finalScores[idx] = scores[assessors[j]];\n                idx++;\n            }\n        }\n        uint greatestClusterLength;\n        (finalScore, greatestClusterLength) = Math.getFinalScore(finalScores, CONSENT_RADIUS);\n        // The finalScore must be the supported by a true majority (>50%) of assessors\n        if (greatestClusterLength > done/2) {\n            payout(greatestClusterLength);\n            if (finalScore > 0) {\n                concept.addMember(assessee, uint(finalScore) * greatestClusterLength);\n            }\n        } else {\n            // no consensus, burn all tokens and mark assessment as incomplete\n            fathomToken.destroyTokens(fathomToken.balanceOf(address(this)));\n            assessmentStage = Stage.Burned;\n        }\n        fathomToken.emitNotification(assessee, FathomToken.Note.AssessmentFinished);\n    }\n\n    /**\n      @notice Payout the assessors stake and proportional reward, redistribute\n        from dissenting assessors and burn all remaining tokens.\n    */\n    function payout(uint _greatestClusterLength) private onlyInStage(Stage.Done) {\n\n        // Total amount of tokens from dissenting assessors (to be redistributed)\n        uint dissentBonus = 0;\n        // save whether an assessor is part of the winning-cluser (the majority)\n        bool[] memory inAssessor = new bool[](assessors.length);\n        // Save individual payouts + rewards\n        uint[] memory inAssessorPayout = new uint[](assessors.length);\n\n        // Pay out dissenting assessors their reduced stake, set their Stage to dissent\n        // and save how much stake to redistribute to the winners\n        for (uint i = 0; i < assessors.length; i++) {\n            if (assessorStage[assessors[i]] == Stage.Done) {\n                uint payoutValue;\n                bool dissenting;\n                (payoutValue, dissenting) = Math.getPayout(\n                    Math.abs(scores[assessors[i]] - finalScore),\n                    cost,\n                    CONSENT_RADIUS\n                );\n                if (dissenting) {\n                    assessorStage[assessors[i]] = Stage.Dissent;\n                    dissentBonus += cost - payoutValue;\n                    if (payoutValue > 0) {\n                        fathomToken.transfer(assessors[i], payoutValue);\n                    }\n                    fathomToken.emitNotification(assessors[i], FathomToken.Note.ConsensusReached);\n                } else {\n                    inAssessor[i] = true;\n                    inAssessorPayout[i] = payoutValue;\n                }\n            }\n        }\n        // Pay out the majority-assessors their share of stake + the remainders of any dissenting assessors\n        for (uint j = 0; j < inAssessorPayout.length; j++) {\n            if (inAssessor[j]) {\n                fathomToken.transfer(assessors[j], inAssessorPayout[j] + dissentBonus/_greatestClusterLength);\n                fathomToken.emitNotification(assessors[j], FathomToken.Note.ConsensusReached);\n            }\n        }\n        fathomToken.destroyTokens(fathomToken.balanceOf(address(this)));\n    }\n}\n",
  "sourcePath": "/builds/fathom/assess/contracts/contracts/Assessment.sol",
  "ast": {
    "absolutePath": "/builds/fathom/assess/contracts/contracts/Assessment.sol",
    "exportedSymbols": {
      "Assessment": [
        1295
      ]
    },
    "id": 1296,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1,
        "literals": [
          "solidity",
          "^",
          "0.5",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:0"
      },
      {
        "absolutePath": "/builds/fathom/assess/contracts/contracts/Math.sol",
        "file": "./Math.sol",
        "id": 2,
        "nodeType": "ImportDirective",
        "scope": 1296,
        "sourceUnit": 3285,
        "src": "25:20:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/builds/fathom/assess/contracts/contracts/Concept.sol",
        "file": "./Concept.sol",
        "id": 3,
        "nodeType": "ImportDirective",
        "scope": 1296,
        "sourceUnit": 2248,
        "src": "46:23:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/builds/fathom/assess/contracts/contracts/FathomToken.sol",
        "file": "./FathomToken.sol",
        "id": 4,
        "nodeType": "ImportDirective",
        "scope": 1296,
        "sourceUnit": 3063,
        "src": "70:27:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/builds/fathom/assess/contracts/contracts/AssessmentData.sol",
        "file": "./AssessmentData.sol",
        "id": 5,
        "nodeType": "ImportDirective",
        "scope": 1296,
        "sourceUnit": 1439,
        "src": "98:30:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 6,
              "name": "AssessmentData",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1382,
              "src": "347:14:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_AssessmentData_$1382",
                "typeString": "contract AssessmentData"
              }
            },
            "id": 7,
            "nodeType": "InheritanceSpecifier",
            "src": "347:14:0"
          }
        ],
        "contractDependencies": [
          1317,
          1326,
          1382,
          5139
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 1295,
        "linearizedBaseContracts": [
          1295,
          1382,
          1317,
          1326,
          5139
        ],
        "name": "Assessment",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 20,
              "nodeType": "Block",
              "src": "391:90:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 15,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 10,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5967,
                            "src": "409:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 11,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "409:10:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 13,
                              "name": "concept",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1334,
                              "src": "431:7:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Concept_$2247",
                                "typeString": "contract Concept"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_Concept_$2247",
                                "typeString": "contract Concept"
                              }
                            ],
                            "id": 12,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "423:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 14,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "423:16:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "409:30:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "436f6e6365707420616363657373206f6e6c79",
                        "id": 16,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "441:21:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_428a6fe69f8b45e30a1960be85beb438081af458f3130d47043a1c786f83477d",
                          "typeString": "literal_string \"Concept access only\""
                        },
                        "value": "Concept access only"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_428a6fe69f8b45e30a1960be85beb438081af458f3130d47043a1c786f83477d",
                          "typeString": "literal_string \"Concept access only\""
                        }
                      ],
                      "id": 9,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5970,
                        5971
                      ],
                      "referencedDeclaration": 5971,
                      "src": "401:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 17,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "401:62:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18,
                  "nodeType": "ExpressionStatement",
                  "src": "401:62:0"
                },
                {
                  "id": 19,
                  "nodeType": "PlaceholderStatement",
                  "src": "473:1:0"
                }
              ]
            },
            "documentation": null,
            "id": 21,
            "name": "onlyConcept",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 8,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "388:2:0"
            },
            "src": "368:113:0",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 33,
              "nodeType": "Block",
              "src": "522:102:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Stage_$1364",
                          "typeString": "enum AssessmentData.Stage"
                        },
                        "id": 28,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 26,
                          "name": "assessmentStage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1370,
                          "src": "540:15:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 27,
                          "name": "_stage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23,
                          "src": "559:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          }
                        },
                        "src": "540:25:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "43616c6c656420647572696e672077726f6e67206173736573736d656e74207374616765",
                        "id": 29,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "567:38:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_3fc9bf6611ed249ab3252e9f538e78a8f6bc41403b9cdc771c1ef8139de690bc",
                          "typeString": "literal_string \"Called during wrong assessment stage\""
                        },
                        "value": "Called during wrong assessment stage"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_3fc9bf6611ed249ab3252e9f538e78a8f6bc41403b9cdc771c1ef8139de690bc",
                          "typeString": "literal_string \"Called during wrong assessment stage\""
                        }
                      ],
                      "id": 25,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5970,
                        5971
                      ],
                      "referencedDeclaration": 5971,
                      "src": "532:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 30,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "532:74:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 31,
                  "nodeType": "ExpressionStatement",
                  "src": "532:74:0"
                },
                {
                  "id": 32,
                  "nodeType": "PlaceholderStatement",
                  "src": "616:1:0"
                }
              ]
            },
            "documentation": null,
            "id": 34,
            "name": "onlyInStage",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 24,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23,
                  "name": "_stage",
                  "nodeType": "VariableDeclaration",
                  "scope": 34,
                  "src": "508:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Stage_$1364",
                    "typeString": "enum AssessmentData.Stage"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 22,
                    "name": "Stage",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1364,
                    "src": "508:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Stage_$1364",
                      "typeString": "enum AssessmentData.Stage"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "507:14:0"
            },
            "src": "487:137:0",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 131,
              "nodeType": "Block",
              "src": "1094:958:0",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 43,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 41,
                      "name": "now",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5969,
                      "src": "1222:3:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 42,
                      "name": "checkpoint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1340,
                      "src": "1228:10:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1222:16:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 48,
                  "nodeType": "IfStatement",
                  "src": "1218:72:0",
                  "trueBody": {
                    "id": 47,
                    "nodeType": "Block",
                    "src": "1240:50:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 44,
                            "name": "cancelAssessment",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 836,
                            "src": "1261:16:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                              "typeString": "function ()"
                            }
                          },
                          "id": 45,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1261:18:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "functionReturnParameters": 40,
                        "id": 46,
                        "nodeType": "Return",
                        "src": "1254:25:0"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 73,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "id": 60,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Stage_$1364",
                          "typeString": "enum AssessmentData.Stage"
                        },
                        "id": 55,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 49,
                            "name": "assessorStage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1368,
                            "src": "1354:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                              "typeString": "mapping(address => enum AssessmentData.Stage)"
                            }
                          },
                          "id": 52,
                          "indexExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 50,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5967,
                              "src": "1368:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 51,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1368:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "1354:25:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 53,
                            "name": "Stage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1364,
                            "src": "1383:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                              "typeString": "type(enum AssessmentData.Stage)"
                            }
                          },
                          "id": 54,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "Called",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1383:12:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          }
                        },
                        "src": "1354:41:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&&",
                      "rightExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 59,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 56,
                            "name": "assessors",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1373,
                            "src": "1411:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage",
                              "typeString": "address[] storage ref"
                            }
                          },
                          "id": 57,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1411:16:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 58,
                          "name": "size",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1344,
                          "src": "1430:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "1411:23:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "src": "1354:80:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 63,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5967,
                            "src": "1474:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 64,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1474:10:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 66,
                              "name": "this",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6024,
                              "src": "1494:4:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Assessment_$1295",
                                "typeString": "contract Assessment"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_Assessment_$1295",
                                "typeString": "contract Assessment"
                              }
                            ],
                            "id": 65,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "1486:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 67,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1486:13:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 68,
                          "name": "cost",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1346,
                          "src": "1501:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 70,
                              "name": "concept",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1334,
                              "src": "1515:7:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Concept_$2247",
                                "typeString": "contract Concept"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_Concept_$2247",
                                "typeString": "contract Concept"
                              }
                            ],
                            "id": 69,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "1507:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 71,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1507:16:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          },
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 61,
                          "name": "fathomToken",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1336,
                          "src": "1450:11:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_FathomToken_$3062",
                            "typeString": "contract FathomToken"
                          }
                        },
                        "id": 62,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "takeBalance",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2932,
                        "src": "1450:23:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_$returns$_t_bool_$",
                          "typeString": "function (address,address,uint256,address) external returns (bool)"
                        }
                      },
                      "id": 72,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1450:74:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "1354:170:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 100,
                  "nodeType": "IfStatement",
                  "src": "1350:376:0",
                  "trueBody": {
                    "id": 99,
                    "nodeType": "Block",
                    "src": "1526:200:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 77,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5967,
                                "src": "1555:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 78,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1555:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 74,
                              "name": "assessors",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1373,
                              "src": "1540:9:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                "typeString": "address[] storage ref"
                              }
                            },
                            "id": 76,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "push",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1540:14:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$",
                              "typeString": "function (address) returns (uint256)"
                            }
                          },
                          "id": 79,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1540:26:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 80,
                        "nodeType": "ExpressionStatement",
                        "src": "1540:26:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 87,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 81,
                              "name": "assessorStage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1368,
                              "src": "1580:13:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                                "typeString": "mapping(address => enum AssessmentData.Stage)"
                              }
                            },
                            "id": 84,
                            "indexExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 82,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5967,
                                "src": "1594:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 83,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1594:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "1580:25:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 85,
                              "name": "Stage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1364,
                              "src": "1608:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                "typeString": "type(enum AssessmentData.Stage)"
                              }
                            },
                            "id": 86,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "Confirmed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1608:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "src": "1580:43:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          }
                        },
                        "id": 88,
                        "nodeType": "ExpressionStatement",
                        "src": "1580:43:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 92,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5967,
                                "src": "1666:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 93,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1666:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 94,
                                  "name": "FathomToken",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3062,
                                  "src": "1678:11:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_FathomToken_$3062_$",
                                    "typeString": "type(contract FathomToken)"
                                  }
                                },
                                "id": 95,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "Note",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2799,
                                "src": "1678:16:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_Note_$2799_$",
                                  "typeString": "type(enum FathomToken.Note)"
                                }
                              },
                              "id": 96,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "ConfirmedAsAssessor",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1678:36:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_Note_$2799",
                                "typeString": "enum FathomToken.Note"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              },
                              {
                                "typeIdentifier": "t_enum$_Note_$2799",
                                "typeString": "enum FathomToken.Note"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 89,
                              "name": "fathomToken",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1336,
                              "src": "1637:11:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_FathomToken_$3062",
                                "typeString": "contract FathomToken"
                              }
                            },
                            "id": 91,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "emitNotification",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2851,
                            "src": "1637:28:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_enum$_Note_$2799_$returns$__$",
                              "typeString": "function (address,enum FathomToken.Note) external"
                            }
                          },
                          "id": 97,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1637:78:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 98,
                        "nodeType": "ExpressionStatement",
                        "src": "1637:78:0"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 104,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 101,
                        "name": "assessors",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1373,
                        "src": "1784:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 102,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1784:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 103,
                      "name": "size",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1344,
                      "src": "1804:4:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1784:24:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 130,
                  "nodeType": "IfStatement",
                  "src": "1780:266:0",
                  "trueBody": {
                    "id": 129,
                    "nodeType": "Block",
                    "src": "1810:236:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 107,
                                    "name": "Stage",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1364,
                                    "src": "1845:5:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                      "typeString": "type(enum AssessmentData.Stage)"
                                    }
                                  },
                                  "id": 108,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Confirmed",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "1845:15:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Stage_$1364",
                                    "typeString": "enum AssessmentData.Stage"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_enum$_Stage_$1364",
                                    "typeString": "enum AssessmentData.Stage"
                                  }
                                ],
                                "id": 106,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "1840:4:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": "uint"
                              },
                              "id": 109,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1840:21:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 110,
                                  "name": "FathomToken",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3062,
                                  "src": "1863:11:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_FathomToken_$3062_$",
                                    "typeString": "type(contract FathomToken)"
                                  }
                                },
                                "id": 111,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "Note",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2799,
                                "src": "1863:16:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_Note_$2799_$",
                                  "typeString": "type(enum FathomToken.Note)"
                                }
                              },
                              "id": 112,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "AssessmentHasBegun",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1863:35:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_Note_$2799",
                                "typeString": "enum FathomToken.Note"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_enum$_Note_$2799",
                                "typeString": "enum FathomToken.Note"
                              }
                            ],
                            "id": 105,
                            "name": "notifyAssessors",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 974,
                            "src": "1824:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_enum$_Note_$2799_$returns$__$",
                              "typeString": "function (uint256,enum FathomToken.Note)"
                            }
                          },
                          "id": 113,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1824:75:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 114,
                        "nodeType": "ExpressionStatement",
                        "src": "1824:75:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 118,
                              "name": "assessee",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1338,
                              "src": "1942:8:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 119,
                                  "name": "FathomToken",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3062,
                                  "src": "1952:11:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_FathomToken_$3062_$",
                                    "typeString": "type(contract FathomToken)"
                                  }
                                },
                                "id": 120,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "Note",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2799,
                                "src": "1952:16:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_Note_$2799_$",
                                  "typeString": "type(enum FathomToken.Note)"
                                }
                              },
                              "id": 121,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "AssessmentHasBegun",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1952:35:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_Note_$2799",
                                "typeString": "enum FathomToken.Note"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_enum$_Note_$2799",
                                "typeString": "enum FathomToken.Note"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 115,
                              "name": "fathomToken",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1336,
                              "src": "1913:11:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_FathomToken_$3062",
                                "typeString": "contract FathomToken"
                              }
                            },
                            "id": 117,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "emitNotification",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2851,
                            "src": "1913:28:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_enum$_Note_$2799_$returns$__$",
                              "typeString": "function (address,enum FathomToken.Note) external"
                            }
                          },
                          "id": 122,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1913:75:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 123,
                        "nodeType": "ExpressionStatement",
                        "src": "1913:75:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 127,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 124,
                            "name": "assessmentStage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1370,
                            "src": "2002:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 125,
                              "name": "Stage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1364,
                              "src": "2020:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                "typeString": "type(enum AssessmentData.Stage)"
                              }
                            },
                            "id": 126,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "Confirmed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "2020:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "src": "2002:33:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          }
                        },
                        "id": 128,
                        "nodeType": "ExpressionStatement",
                        "src": "2002:33:0"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@notice Adds a called assessor to the assessment by taking their stake\n@dev The assessor's tokens are sent to the address of the assessment. Also, if the\nconfirm-period is over, anyone's call to this function will cancel the assessment.",
            "id": 132,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 37,
                      "name": "Stage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1364,
                      "src": "1080:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                        "typeString": "type(enum AssessmentData.Stage)"
                      }
                    },
                    "id": 38,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "Called",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "1080:12:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Stage_$1364",
                      "typeString": "enum AssessmentData.Stage"
                    }
                  }
                ],
                "id": 39,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 36,
                  "name": "onlyInStage",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 34,
                  "src": "1068:11:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Stage_$1364_$",
                    "typeString": "modifier (enum AssessmentData.Stage)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1068:25:0"
              }
            ],
            "name": "confirmAssessor",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 35,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1058:2:0"
            },
            "returnParameters": {
              "id": 40,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1094:0:0"
            },
            "scope": 1295,
            "src": "1034:1018:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 219,
              "nodeType": "Block",
              "src": "2374:785:0",
              "statements": [
                {
                  "assignments": [
                    142
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 142,
                      "name": "continueAssessment",
                      "nodeType": "VariableDeclaration",
                      "scope": 219,
                      "src": "2463:23:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 141,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "2463:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 144,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 143,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "2489:4:0",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2463:30:0"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 147,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 145,
                      "name": "now",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5969,
                      "src": "2507:3:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 146,
                      "name": "endTime",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1342,
                      "src": "2513:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2507:13:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 156,
                  "nodeType": "IfStatement",
                  "src": "2503:92:0",
                  "trueBody": {
                    "id": 155,
                    "nodeType": "Block",
                    "src": "2522:73:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 153,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 148,
                            "name": "continueAssessment",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 142,
                            "src": "2536:18:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 150,
                                  "name": "Stage",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1364,
                                  "src": "2568:5:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                    "typeString": "type(enum AssessmentData.Stage)"
                                  }
                                },
                                "id": 151,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberName": "Confirmed",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "2568:15:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_Stage_$1364",
                                  "typeString": "enum AssessmentData.Stage"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_enum$_Stage_$1364",
                                  "typeString": "enum AssessmentData.Stage"
                                }
                              ],
                              "id": 149,
                              "name": "burnStakes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 933,
                              "src": "2557:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_Stage_$1364_$returns$_t_bool_$",
                                "typeString": "function (enum AssessmentData.Stage) returns (bool)"
                              }
                            },
                            "id": 152,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2557:27:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "2536:48:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 154,
                        "nodeType": "ExpressionStatement",
                        "src": "2536:48:0"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 159,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 157,
                      "name": "continueAssessment",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 142,
                      "src": "2608:18:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 158,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2630:5:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "src": "2608:27:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 161,
                  "nodeType": "IfStatement",
                  "src": "2604:40:0",
                  "trueBody": {
                    "expression": null,
                    "functionReturnParameters": 140,
                    "id": 160,
                    "nodeType": "Return",
                    "src": "2637:7:0"
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Stage_$1364",
                      "typeString": "enum AssessmentData.Stage"
                    },
                    "id": 168,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 162,
                        "name": "assessorStage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1368,
                        "src": "2658:13:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                          "typeString": "mapping(address => enum AssessmentData.Stage)"
                        }
                      },
                      "id": 165,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 163,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5967,
                          "src": "2672:3:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 164,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2672:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "2658:25:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Stage_$1364",
                        "typeString": "enum AssessmentData.Stage"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 166,
                        "name": "Stage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1364,
                        "src": "2687:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                          "typeString": "type(enum AssessmentData.Stage)"
                        }
                      },
                      "id": 167,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Confirmed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2687:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Stage_$1364",
                        "typeString": "enum AssessmentData.Stage"
                      }
                    },
                    "src": "2658:44:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 188,
                  "nodeType": "IfStatement",
                  "src": "2654:179:0",
                  "trueBody": {
                    "id": 187,
                    "nodeType": "Block",
                    "src": "2704:129:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 174,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 169,
                              "name": "commits",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1377,
                              "src": "2718:7:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_bytes32_$",
                                "typeString": "mapping(address => bytes32)"
                              }
                            },
                            "id": 172,
                            "indexExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 170,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5967,
                                "src": "2726:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 171,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "2726:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "2718:19:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 173,
                            "name": "_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 134,
                            "src": "2740:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "2718:27:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 175,
                        "nodeType": "ExpressionStatement",
                        "src": "2718:27:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 182,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 176,
                              "name": "assessorStage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1368,
                              "src": "2759:13:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                                "typeString": "mapping(address => enum AssessmentData.Stage)"
                              }
                            },
                            "id": 179,
                            "indexExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 177,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5967,
                                "src": "2773:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 178,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "2773:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "2759:25:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 180,
                              "name": "Stage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1364,
                              "src": "2787:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                "typeString": "type(enum AssessmentData.Stage)"
                              }
                            },
                            "id": 181,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "Committed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "2787:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "src": "2759:43:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          }
                        },
                        "id": 183,
                        "nodeType": "ExpressionStatement",
                        "src": "2759:43:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 185,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "++",
                          "prefix": false,
                          "src": "2816:6:0",
                          "subExpression": {
                            "argumentTypes": null,
                            "id": 184,
                            "name": "done",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1350,
                            "src": "2816:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 186,
                        "nodeType": "ExpressionStatement",
                        "src": "2816:6:0"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 191,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 189,
                      "name": "done",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1350,
                      "src": "2928:4:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 190,
                      "name": "size",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1344,
                      "src": "2936:4:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2928:12:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 218,
                  "nodeType": "IfStatement",
                  "src": "2924:229:0",
                  "trueBody": {
                    "id": 217,
                    "nodeType": "Block",
                    "src": "2942:211:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 196,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 192,
                            "name": "checkpoint",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1340,
                            "src": "2956:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 195,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 193,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5969,
                              "src": "2969:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 194,
                              "name": "CHALLENGE_PERIOD",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1313,
                              "src": "2975:16:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "2969:22:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2956:35:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 197,
                        "nodeType": "ExpressionStatement",
                        "src": "2956:35:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 200,
                                    "name": "Stage",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1364,
                                    "src": "3026:5:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                      "typeString": "type(enum AssessmentData.Stage)"
                                    }
                                  },
                                  "id": 201,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Committed",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "3026:15:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Stage_$1364",
                                    "typeString": "enum AssessmentData.Stage"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_enum$_Stage_$1364",
                                    "typeString": "enum AssessmentData.Stage"
                                  }
                                ],
                                "id": 199,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "3021:4:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": "uint"
                              },
                              "id": 202,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3021:21:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 203,
                                  "name": "FathomToken",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3062,
                                  "src": "3044:11:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_FathomToken_$3062_$",
                                    "typeString": "type(contract FathomToken)"
                                  }
                                },
                                "id": 204,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "Note",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2799,
                                "src": "3044:16:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_Note_$2799_$",
                                  "typeString": "type(enum FathomToken.Note)"
                                }
                              },
                              "id": 205,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "RevealScore",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "3044:28:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_Note_$2799",
                                "typeString": "enum FathomToken.Note"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_enum$_Note_$2799",
                                "typeString": "enum FathomToken.Note"
                              }
                            ],
                            "id": 198,
                            "name": "notifyAssessors",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 974,
                            "src": "3005:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_enum$_Note_$2799_$returns$__$",
                              "typeString": "function (uint256,enum FathomToken.Note)"
                            }
                          },
                          "id": 206,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3005:68:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 207,
                        "nodeType": "ExpressionStatement",
                        "src": "3005:68:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 210,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 208,
                            "name": "done",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1350,
                            "src": "3087:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 209,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3094:1:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "3087:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 211,
                        "nodeType": "ExpressionStatement",
                        "src": "3087:8:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 215,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 212,
                            "name": "assessmentStage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1370,
                            "src": "3109:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 213,
                              "name": "Stage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1364,
                              "src": "3127:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                "typeString": "type(enum AssessmentData.Stage)"
                              }
                            },
                            "id": 214,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "Committed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "3127:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "src": "3109:33:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          }
                        },
                        "id": 216,
                        "nodeType": "ExpressionStatement",
                        "src": "3109:33:0"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@notice Called by assessors to commit a (hashed) score\n@dev If this function is called (by anyone) after the end of the commit phase,\nit will burn all non-committed assessors and cancel or advance the assessment.",
            "id": 220,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 137,
                      "name": "Stage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1364,
                      "src": "2357:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                        "typeString": "type(enum AssessmentData.Stage)"
                      }
                    },
                    "id": 138,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "Confirmed",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "2357:15:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Stage_$1364",
                      "typeString": "enum AssessmentData.Stage"
                    }
                  }
                ],
                "id": 139,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 136,
                  "name": "onlyInStage",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 34,
                  "src": "2345:11:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Stage_$1364_$",
                    "typeString": "modifier (enum AssessmentData.Stage)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2345:28:0"
              }
            ],
            "name": "commit",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 135,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 134,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 220,
                  "src": "2323:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 133,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2323:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2322:15:0"
            },
            "returnParameters": {
              "id": 140,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2374:0:0"
            },
            "scope": 1295,
            "src": "2307:852:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 281,
              "nodeType": "Block",
              "src": "3448:431:0",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Stage_$1364",
                      "typeString": "enum AssessmentData.Stage"
                    },
                    "id": 234,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 229,
                        "name": "assessorStage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1368,
                        "src": "3462:13:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                          "typeString": "mapping(address => enum AssessmentData.Stage)"
                        }
                      },
                      "id": 231,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 230,
                        "name": "_assessor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 226,
                        "src": "3476:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "3462:24:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Stage_$1364",
                        "typeString": "enum AssessmentData.Stage"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 232,
                        "name": "Stage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1364,
                        "src": "3490:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                          "typeString": "type(enum AssessmentData.Stage)"
                        }
                      },
                      "id": 233,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Committed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "3490:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Stage_$1364",
                        "typeString": "enum AssessmentData.Stage"
                      }
                    },
                    "src": "3462:43:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 280,
                  "nodeType": "IfStatement",
                  "src": "3458:415:0",
                  "trueBody": {
                    "id": 279,
                    "nodeType": "Block",
                    "src": "3507:366:0",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 245,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 235,
                              "name": "commits",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1377,
                              "src": "3525:7:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_bytes32_$",
                                "typeString": "mapping(address => bytes32)"
                              }
                            },
                            "id": 237,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 236,
                              "name": "_assessor",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 226,
                              "src": "3533:9:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3525:18:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 241,
                                    "name": "_score",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 222,
                                    "src": "3574:6:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int128",
                                      "typeString": "int128"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 242,
                                    "name": "_salt",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 224,
                                    "src": "3582:5:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_int128",
                                      "typeString": "int128"
                                    },
                                    {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 239,
                                    "name": "abi",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5954,
                                    "src": "3557:3:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_abi",
                                      "typeString": "abi"
                                    }
                                  },
                                  "id": 240,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "encodePacked",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "3557:16:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                    "typeString": "function () pure returns (bytes memory)"
                                  }
                                },
                                "id": 243,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3557:31:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "id": 238,
                              "name": "keccak256",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5961,
                              "src": "3547:9:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                "typeString": "function (bytes memory) pure returns (bytes32)"
                              }
                            },
                            "id": 244,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3547:42:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "3525:64:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 270,
                        "nodeType": "IfStatement",
                        "src": "3521:248:0",
                        "trueBody": {
                          "id": 269,
                          "nodeType": "Block",
                          "src": "3591:178:0",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 249,
                                      "name": "msg",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5967,
                                      "src": "3630:3:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_magic_message",
                                        "typeString": "msg"
                                      }
                                    },
                                    "id": 250,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "sender",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": null,
                                    "src": "3630:10:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address_payable",
                                      "typeString": "address payable"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 253,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "id": 251,
                                      "name": "cost",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1346,
                                      "src": "3642:4:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "/",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "32",
                                      "id": 252,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "3647:1:0",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_2_by_1",
                                        "typeString": "int_const 2"
                                      },
                                      "value": "2"
                                    },
                                    "src": "3642:6:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address_payable",
                                      "typeString": "address payable"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 246,
                                    "name": "fathomToken",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1336,
                                    "src": "3609:11:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_FathomToken_$3062",
                                      "typeString": "contract FathomToken"
                                    }
                                  },
                                  "id": 248,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "transfer",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 5569,
                                  "src": "3609:20:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                    "typeString": "function (address,uint256) external returns (bool)"
                                  }
                                },
                                "id": 254,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3609:40:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "id": 255,
                              "nodeType": "ExpressionStatement",
                              "src": "3609:40:0"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 261,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 256,
                                    "name": "assessorStage",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1368,
                                    "src": "3667:13:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                                      "typeString": "mapping(address => enum AssessmentData.Stage)"
                                    }
                                  },
                                  "id": 258,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 257,
                                    "name": "_assessor",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 226,
                                    "src": "3681:9:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "3667:24:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Stage_$1364",
                                    "typeString": "enum AssessmentData.Stage"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 259,
                                    "name": "Stage",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1364,
                                    "src": "3694:5:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                      "typeString": "type(enum AssessmentData.Stage)"
                                    }
                                  },
                                  "id": 260,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Burned",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "3694:12:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Stage_$1364",
                                    "typeString": "enum AssessmentData.Stage"
                                  }
                                },
                                "src": "3667:39:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_Stage_$1364",
                                  "typeString": "enum AssessmentData.Stage"
                                }
                              },
                              "id": 262,
                              "nodeType": "ExpressionStatement",
                              "src": "3667:39:0"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 264,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "--",
                                "prefix": false,
                                "src": "3724:6:0",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "id": 263,
                                  "name": "size",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1344,
                                  "src": "3724:4:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 265,
                              "nodeType": "ExpressionStatement",
                              "src": "3724:6:0"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 267,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "--",
                                "prefix": false,
                                "src": "3748:6:0",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "id": 266,
                                  "name": "done",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1350,
                                  "src": "3748:4:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 268,
                              "nodeType": "ExpressionStatement",
                              "src": "3748:6:0"
                            }
                          ]
                        }
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 273,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 271,
                            "name": "size",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1344,
                            "src": "3786:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 272,
                            "name": "MIN_ASSESSMENT_SIZE",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1307,
                            "src": "3793:19:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "3786:26:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 278,
                        "nodeType": "IfStatement",
                        "src": "3782:81:0",
                        "trueBody": {
                          "id": 277,
                          "nodeType": "Block",
                          "src": "3814:49:0",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "id": 274,
                                  "name": "cancelAssessment",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 836,
                                  "src": "3830:16:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                                    "typeString": "function ()"
                                  }
                                },
                                "id": 275,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3830:18:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 276,
                              "nodeType": "ExpressionStatement",
                              "src": "3830:18:0"
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@notice Called by anyone to steal half of an assessor's stake and remove them from the assessment\n@dev The other half of the tokens will be burned when the payout is completed.",
            "id": 282,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "steal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 227,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 222,
                  "name": "_score",
                  "nodeType": "VariableDeclaration",
                  "scope": 282,
                  "src": "3386:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 221,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "3386:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 224,
                  "name": "_salt",
                  "nodeType": "VariableDeclaration",
                  "scope": 282,
                  "src": "3401:19:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 223,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3401:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 226,
                  "name": "_assessor",
                  "nodeType": "VariableDeclaration",
                  "scope": 282,
                  "src": "3422:17:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 225,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3422:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3385:55:0"
            },
            "returnParameters": {
              "id": 228,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3448:0:0"
            },
            "scope": 1295,
            "src": "3371:508:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 391,
              "nodeType": "Block",
              "src": "4129:1085:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 296,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 294,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5969,
                          "src": "4343:3:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 295,
                          "name": "checkpoint",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1340,
                          "src": "4349:10:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "4343:16:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4368616c6c656e676520706572696f64206d757374206265206f766572",
                        "id": 297,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4361:31:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_95f6da86c2326c991f57db05fd5f7aba15e094c969ee5650c323c90fc8a98f94",
                          "typeString": "literal_string \"Challenge period must be over\""
                        },
                        "value": "Challenge period must be over"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_95f6da86c2326c991f57db05fd5f7aba15e094c969ee5650c323c90fc8a98f94",
                          "typeString": "literal_string \"Challenge period must be over\""
                        }
                      ],
                      "id": 293,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5970,
                        5971
                      ],
                      "referencedDeclaration": 5971,
                      "src": "4335:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 298,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4335:58:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 299,
                  "nodeType": "ExpressionStatement",
                  "src": "4335:58:0"
                },
                {
                  "assignments": [
                    301
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 301,
                      "name": "continueAssessment",
                      "nodeType": "VariableDeclaration",
                      "scope": 391,
                      "src": "4472:23:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 300,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "4472:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 303,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 302,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "4498:4:0",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4472:30:0"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 308,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 304,
                      "name": "now",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5969,
                      "src": "4516:3:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 307,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 305,
                        "name": "endTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1342,
                        "src": "4522:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "+",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "3234",
                        "id": 306,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4532:8:0",
                        "subdenomination": "hours",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_86400_by_1",
                          "typeString": "int_const 86400"
                        },
                        "value": "24"
                      },
                      "src": "4522:18:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4516:24:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 317,
                  "nodeType": "IfStatement",
                  "src": "4512:103:0",
                  "trueBody": {
                    "id": 316,
                    "nodeType": "Block",
                    "src": "4542:73:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 314,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 309,
                            "name": "continueAssessment",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 301,
                            "src": "4556:18:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 311,
                                  "name": "Stage",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1364,
                                  "src": "4588:5:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                    "typeString": "type(enum AssessmentData.Stage)"
                                  }
                                },
                                "id": 312,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberName": "Committed",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "4588:15:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_Stage_$1364",
                                  "typeString": "enum AssessmentData.Stage"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_enum$_Stage_$1364",
                                  "typeString": "enum AssessmentData.Stage"
                                }
                              ],
                              "id": 310,
                              "name": "burnStakes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 933,
                              "src": "4577:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_Stage_$1364_$returns$_t_bool_$",
                                "typeString": "function (enum AssessmentData.Stage) returns (bool)"
                              }
                            },
                            "id": 313,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4577:27:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "4556:48:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 315,
                        "nodeType": "ExpressionStatement",
                        "src": "4556:48:0"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 320,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 318,
                      "name": "continueAssessment",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 301,
                      "src": "4628:18:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 319,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4650:5:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "src": "4628:27:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 322,
                  "nodeType": "IfStatement",
                  "src": "4624:40:0",
                  "trueBody": {
                    "expression": null,
                    "functionReturnParameters": 292,
                    "id": 321,
                    "nodeType": "Return",
                    "src": "4657:7:0"
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 342,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_enum$_Stage_$1364",
                        "typeString": "enum AssessmentData.Stage"
                      },
                      "id": 329,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 323,
                          "name": "assessorStage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1368,
                          "src": "4735:13:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                            "typeString": "mapping(address => enum AssessmentData.Stage)"
                          }
                        },
                        "id": 326,
                        "indexExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 324,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5967,
                            "src": "4749:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 325,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "4749:10:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4735:25:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Stage_$1364",
                          "typeString": "enum AssessmentData.Stage"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 327,
                          "name": "Stage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1364,
                          "src": "4764:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                            "typeString": "type(enum AssessmentData.Stage)"
                          }
                        },
                        "id": 328,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "Committed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4764:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Stage_$1364",
                          "typeString": "enum AssessmentData.Stage"
                        }
                      },
                      "src": "4735:44:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 341,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 330,
                          "name": "commits",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1377,
                          "src": "4795:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_bytes32_$",
                            "typeString": "mapping(address => bytes32)"
                          }
                        },
                        "id": 333,
                        "indexExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 331,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5967,
                            "src": "4803:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 332,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "4803:10:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4795:19:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 337,
                                "name": "_score",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 284,
                                "src": "4845:6:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int128",
                                  "typeString": "int128"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 338,
                                "name": "_salt",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 286,
                                "src": "4853:5:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_int128",
                                  "typeString": "int128"
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 335,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5954,
                                "src": "4828:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 336,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "encodePacked",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "4828:16:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 339,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4828:31:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 334,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5961,
                          "src": "4818:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (bytes memory) pure returns (bytes32)"
                          }
                        },
                        "id": 340,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4818:42:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "4795:65:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4735:125:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 373,
                  "nodeType": "IfStatement",
                  "src": "4731:308:0",
                  "trueBody": {
                    "id": 372,
                    "nodeType": "Block",
                    "src": "4862:177:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 348,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 343,
                              "name": "scores",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1381,
                              "src": "4876:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_int128_$",
                                "typeString": "mapping(address => int128)"
                              }
                            },
                            "id": 346,
                            "indexExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 344,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5967,
                                "src": "4883:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 345,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "4883:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "4876:18:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int128",
                              "typeString": "int128"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 347,
                            "name": "_score",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 284,
                            "src": "4897:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int128",
                              "typeString": "int128"
                            }
                          },
                          "src": "4876:27:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        },
                        "id": 349,
                        "nodeType": "ExpressionStatement",
                        "src": "4876:27:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 359,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 350,
                            "name": "salt",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1352,
                            "src": "4917:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 358,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 351,
                              "name": "salt",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1352,
                              "src": "4924:4:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "^",
                            "rightExpression": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "id": 354,
                                          "name": "_salt",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 286,
                                          "src": "4948:5:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_string_memory_ptr",
                                            "typeString": "string memory"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_string_memory_ptr",
                                            "typeString": "string memory"
                                          }
                                        ],
                                        "id": 353,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "4942:5:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                          "typeString": "type(bytes storage pointer)"
                                        },
                                        "typeName": "bytes"
                                      },
                                      "id": 355,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "4942:12:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    ],
                                    "id": 352,
                                    "name": "keccak256",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5961,
                                    "src": "4932:9:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                      "typeString": "function (bytes memory) pure returns (bytes32)"
                                    }
                                  },
                                  "id": 356,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "4932:23:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "id": 357,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "4931:25:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "src": "4924:32:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "4917:39:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 360,
                        "nodeType": "ExpressionStatement",
                        "src": "4917:39:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 367,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 361,
                              "name": "assessorStage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1368,
                              "src": "4970:13:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                                "typeString": "mapping(address => enum AssessmentData.Stage)"
                              }
                            },
                            "id": 364,
                            "indexExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 362,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5967,
                                "src": "4984:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 363,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "4984:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "4970:25:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 365,
                              "name": "Stage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1364,
                              "src": "4998:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                "typeString": "type(enum AssessmentData.Stage)"
                              }
                            },
                            "id": 366,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "Done",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "4998:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "src": "4970:38:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          }
                        },
                        "id": 368,
                        "nodeType": "ExpressionStatement",
                        "src": "4970:38:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 370,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "++",
                          "prefix": false,
                          "src": "5022:6:0",
                          "subExpression": {
                            "argumentTypes": null,
                            "id": 369,
                            "name": "done",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1350,
                            "src": "5022:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 371,
                        "nodeType": "ExpressionStatement",
                        "src": "5022:6:0"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 376,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 374,
                      "name": "done",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1350,
                      "src": "5083:4:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 375,
                      "name": "size",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1344,
                      "src": "5091:4:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5083:12:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 390,
                  "nodeType": "IfStatement",
                  "src": "5079:129:0",
                  "trueBody": {
                    "id": 389,
                    "nodeType": "Block",
                    "src": "5097:111:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 380,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 377,
                            "name": "assessmentStage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1370,
                            "src": "5111:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 378,
                              "name": "Stage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1364,
                              "src": "5129:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                "typeString": "type(enum AssessmentData.Stage)"
                              }
                            },
                            "id": 379,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "Done",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "5129:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "src": "5111:28:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          }
                        },
                        "id": 381,
                        "nodeType": "ExpressionStatement",
                        "src": "5111:28:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 382,
                            "name": "calculateResult",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1098,
                            "src": "5153:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                              "typeString": "function ()"
                            }
                          },
                          "id": 383,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5153:17:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 384,
                        "nodeType": "ExpressionStatement",
                        "src": "5153:17:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 387,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 385,
                            "name": "endTime",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1342,
                            "src": "5184:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 386,
                            "name": "now",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5969,
                            "src": "5194:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5184:13:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 388,
                        "nodeType": "ExpressionStatement",
                        "src": "5184:13:0"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@notice Called by assessors to reveal their score\n@dev Also cancels the assessment if there have been to few reveals in time.",
            "id": 392,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 289,
                      "name": "Stage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1364,
                      "src": "4112:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                        "typeString": "type(enum AssessmentData.Stage)"
                      }
                    },
                    "id": 290,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "Committed",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "4112:15:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Stage_$1364",
                      "typeString": "enum AssessmentData.Stage"
                    }
                  }
                ],
                "id": 291,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 288,
                  "name": "onlyInStage",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 34,
                  "src": "4100:11:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Stage_$1364_$",
                    "typeString": "modifier (enum AssessmentData.Stage)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "4100:28:0"
              }
            ],
            "name": "reveal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 287,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 284,
                  "name": "_score",
                  "nodeType": "VariableDeclaration",
                  "scope": 392,
                  "src": "4057:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 283,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "4057:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 286,
                  "name": "_salt",
                  "nodeType": "VariableDeclaration",
                  "scope": 392,
                  "src": "4072:19:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 285,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "4072:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4056:36:0"
            },
            "returnParameters": {
              "id": 292,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4129:0:0"
            },
            "scope": 1295,
            "src": "4041:1173:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 442,
              "nodeType": "Block",
              "src": "5341:387:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 409,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 401,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 398,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5967,
                              "src": "5359:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 399,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "5359:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 400,
                            "name": "assessee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1338,
                            "src": "5373:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "5359:22:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          },
                          "id": 408,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 402,
                              "name": "assessorStage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1368,
                              "src": "5385:13:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                                "typeString": "mapping(address => enum AssessmentData.Stage)"
                              }
                            },
                            "id": 405,
                            "indexExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 403,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5967,
                                "src": "5399:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 404,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "5399:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "5385:25:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 406,
                              "name": "Stage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1364,
                              "src": "5413:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                "typeString": "type(enum AssessmentData.Stage)"
                              }
                            },
                            "id": 407,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "Called",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "5413:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "src": "5385:40:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "5359:66:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4d757374206265206173736573736565206f7220636f6e6669726d6564206173736573736f72",
                        "id": 410,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5443:40:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c68f615f2b45316f8c13537c4e62f4aa827e7786becc796f22625af82d551122",
                          "typeString": "literal_string \"Must be assessee or confirmed assessor\""
                        },
                        "value": "Must be assessee or confirmed assessor"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c68f615f2b45316f8c13537c4e62f4aa827e7786becc796f22625af82d551122",
                          "typeString": "literal_string \"Must be assessee or confirmed assessor\""
                        }
                      ],
                      "id": 397,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5970,
                        5971
                      ],
                      "referencedDeclaration": 5971,
                      "src": "5351:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 411,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5351:142:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 412,
                  "nodeType": "ExpressionStatement",
                  "src": "5351:142:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Stage_$1364",
                          "typeString": "enum AssessmentData.Stage"
                        },
                        "id": 417,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 414,
                          "name": "assessmentStage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1370,
                          "src": "5511:15:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 415,
                            "name": "Stage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1364,
                            "src": "5529:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                              "typeString": "type(enum AssessmentData.Stage)"
                            }
                          },
                          "id": 416,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "Committed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "5529:15:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          }
                        },
                        "src": "5511:33:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "446561646c696e6520666f7220616464696e6720646174612068617320706173736564",
                        "id": 418,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5546:37:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e1057e4ae40e5daedbe387aef649bc5b0c7b7f3ad943e6a92c289767d27d1557",
                          "typeString": "literal_string \"Deadline for adding data has passed\""
                        },
                        "value": "Deadline for adding data has passed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e1057e4ae40e5daedbe387aef649bc5b0c7b7f3ad943e6a92c289767d27d1557",
                          "typeString": "literal_string \"Deadline for adding data has passed\""
                        }
                      ],
                      "id": 413,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5970,
                        5971
                      ],
                      "referencedDeclaration": 5971,
                      "src": "5503:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 419,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5503:81:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 420,
                  "nodeType": "ExpressionStatement",
                  "src": "5503:81:0"
                },
                {
                  "assignments": [
                    422
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 422,
                      "name": "oldData",
                      "nodeType": "VariableDeclaration",
                      "scope": 442,
                      "src": "5594:20:0",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 421,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "5594:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 427,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 423,
                      "name": "data",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1356,
                      "src": "5617:4:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_address_$_t_bytes_storage_$",
                        "typeString": "mapping(address => bytes storage ref)"
                      }
                    },
                    "id": 426,
                    "indexExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 424,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5967,
                        "src": "5622:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 425,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "5622:10:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "5617:16:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage",
                      "typeString": "bytes storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5594:39:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 433,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 428,
                        "name": "data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1356,
                        "src": "5643:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_bytes_storage_$",
                          "typeString": "mapping(address => bytes storage ref)"
                        }
                      },
                      "id": 431,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 429,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5967,
                          "src": "5648:3:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 430,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "5648:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5643:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_storage",
                        "typeString": "bytes storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 432,
                      "name": "_data",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 394,
                      "src": "5662:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes memory"
                      }
                    },
                    "src": "5643:24:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage",
                      "typeString": "bytes storage ref"
                    }
                  },
                  "id": 434,
                  "nodeType": "ExpressionStatement",
                  "src": "5643:24:0"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 436,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5967,
                          "src": "5694:3:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 437,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "5694:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 438,
                        "name": "oldData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 422,
                        "src": "5706:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 439,
                        "name": "_data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 394,
                        "src": "5715:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 435,
                      "name": "DataChanged",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1325,
                      "src": "5682:11:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (address,bytes memory,bytes memory)"
                      }
                    },
                    "id": 440,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5682:39:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 441,
                  "nodeType": "EmitStatement",
                  "src": "5677:44:0"
                }
              ]
            },
            "documentation": "@notice Called by assessors/assessee to store data on the assessment",
            "id": 443,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "addData",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 395,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 394,
                  "name": "_data",
                  "nodeType": "VariableDeclaration",
                  "scope": 443,
                  "src": "5314:18:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 393,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "5314:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5313:20:0"
            },
            "returnParameters": {
              "id": 396,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5341:0:0"
            },
            "scope": 1295,
            "src": "5297:431:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 590,
              "nodeType": "Block",
              "src": "6148:1926:0",
              "statements": [
                {
                  "assignments": [
                    455
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 455,
                      "name": "toBeCalled",
                      "nodeType": "VariableDeclaration",
                      "scope": 590,
                      "src": "6233:15:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 454,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "6233:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 462,
                  "initialValue": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 461,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 458,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 456,
                            "name": "_size",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 449,
                            "src": "6252:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 457,
                            "name": "ASSESSORPOOL_SIZEFACTOR",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1310,
                            "src": "6260:23:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "6252:31:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 459,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "6251:33:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "/",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "3130",
                      "id": 460,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "6287:2:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_10_by_1",
                        "typeString": "int_const 10"
                      },
                      "value": "10"
                    },
                    "src": "6251:38:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6233:56:0"
                },
                {
                  "assignments": [
                    464
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 464,
                      "name": "totalCalled",
                      "nodeType": "VariableDeclaration",
                      "scope": 590,
                      "src": "6380:16:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 463,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "6380:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 465,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6380:16:0"
                },
                {
                  "assignments": [
                    467
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 467,
                      "name": "assessedConcept",
                      "nodeType": "VariableDeclaration",
                      "scope": 590,
                      "src": "6407:23:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Concept_$2247",
                        "typeString": "contract Concept"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 466,
                        "name": "Concept",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 2247,
                        "src": "6407:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Concept_$2247",
                          "typeString": "contract Concept"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 471,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 469,
                        "name": "_concept",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 447,
                        "src": "6441:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 468,
                      "name": "Concept",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2247,
                      "src": "6433:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_Concept_$2247_$",
                        "typeString": "type(contract Concept)"
                      }
                    },
                    "id": 470,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6433:17:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Concept_$2247",
                      "typeString": "contract Concept"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6407:43:0"
                },
                {
                  "assignments": [
                    473
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 473,
                      "name": "availableHere",
                      "nodeType": "VariableDeclaration",
                      "scope": 590,
                      "src": "6460:18:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 472,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "6460:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 482,
                  "initialValue": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 481,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 478,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "id": 474,
                                "name": "assessedConcept",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 467,
                                "src": "6482:15:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Concept_$2247",
                                  "typeString": "contract Concept"
                                }
                              },
                              "id": 475,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "getNumberOfAvailableMembers",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2166,
                              "src": "6482:43:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                "typeString": "function () view external returns (uint256)"
                              }
                            },
                            "id": 476,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6482:45:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 477,
                            "name": "MEMBERCALL_CEILING_FACTOR",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1304,
                            "src": "6530:25:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "6482:73:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 479,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "6481:75:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "/",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "3130",
                      "id": 480,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "6559:2:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_10_by_1",
                        "typeString": "int_const 10"
                      },
                      "value": "10"
                    },
                    "src": "6481:80:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6460:101:0"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 485,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 483,
                      "name": "availableHere",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 473,
                      "src": "6635:13:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 484,
                      "name": "toBeCalled",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 455,
                      "src": "6652:10:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6635:27:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 576,
                    "nodeType": "Block",
                    "src": "6828:1110:0",
                    "statements": [
                      {
                        "assignments": [
                          496
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 496,
                            "name": "availableViaParents",
                            "nodeType": "VariableDeclaration",
                            "scope": 576,
                            "src": "6929:24:0",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 495,
                              "name": "uint",
                              "nodeType": "ElementaryTypeName",
                              "src": "6929:4:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 497,
                        "initialValue": null,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "6929:24:0"
                      },
                      {
                        "body": {
                          "id": 555,
                          "nodeType": "Block",
                          "src": "7103:458:0",
                          "statements": [
                            {
                              "assignments": [
                                511
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 511,
                                  "name": "parent",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 555,
                                  "src": "7121:14:0",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Concept_$2247",
                                    "typeString": "contract Concept"
                                  },
                                  "typeName": {
                                    "contractScope": null,
                                    "id": 510,
                                    "name": "Concept",
                                    "nodeType": "UserDefinedTypeName",
                                    "referencedDeclaration": 2247,
                                    "src": "7121:7:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_Concept_$2247",
                                      "typeString": "contract Concept"
                                    }
                                  },
                                  "value": null,
                                  "visibility": "internal"
                                }
                              ],
                              "id": 518,
                              "initialValue": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "id": 515,
                                        "name": "k",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 499,
                                        "src": "7170:1:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 513,
                                        "name": "assessedConcept",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 467,
                                        "src": "7146:15:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_contract$_Concept_$2247",
                                          "typeString": "contract Concept"
                                        }
                                      },
                                      "id": 514,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "parents",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 2278,
                                      "src": "7146:23:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$",
                                        "typeString": "function (uint256) view external returns (address)"
                                      }
                                    },
                                    "id": 516,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "7146:26:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "id": 512,
                                  "name": "Concept",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2247,
                                  "src": "7138:7:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_Concept_$2247_$",
                                    "typeString": "type(contract Concept)"
                                  }
                                },
                                "id": 517,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "7138:35:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Concept_$2247",
                                  "typeString": "contract Concept"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "7121:52:0"
                            },
                            {
                              "assignments": [
                                520
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 520,
                                  "name": "availableInParent",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 555,
                                  "src": "7191:22:0",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "typeName": {
                                    "id": 519,
                                    "name": "uint",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "7191:4:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "value": null,
                                  "visibility": "internal"
                                }
                              ],
                              "id": 538,
                              "initialValue": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 537,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "components": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 534,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "components": [
                                          {
                                            "argumentTypes": null,
                                            "commonType": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            },
                                            "id": 528,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                              "argumentTypes": null,
                                              "components": [
                                                {
                                                  "argumentTypes": null,
                                                  "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                  },
                                                  "id": 525,
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "leftExpression": {
                                                    "argumentTypes": null,
                                                    "arguments": [],
                                                    "expression": {
                                                      "argumentTypes": [],
                                                      "expression": {
                                                        "argumentTypes": null,
                                                        "id": 521,
                                                        "name": "parent",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 511,
                                                        "src": "7240:6:0",
                                                        "typeDescriptions": {
                                                          "typeIdentifier": "t_contract$_Concept_$2247",
                                                          "typeString": "contract Concept"
                                                        }
                                                      },
                                                      "id": 522,
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "memberName": "getNumberOfAvailableMembers",
                                                      "nodeType": "MemberAccess",
                                                      "referencedDeclaration": 2166,
                                                      "src": "7240:34:0",
                                                      "typeDescriptions": {
                                                        "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                                        "typeString": "function () view external returns (uint256)"
                                                      }
                                                    },
                                                    "id": 523,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "7240:36:0",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_uint256",
                                                      "typeString": "uint256"
                                                    }
                                                  },
                                                  "nodeType": "BinaryOperation",
                                                  "operator": "*",
                                                  "rightExpression": {
                                                    "argumentTypes": null,
                                                    "id": 524,
                                                    "name": "MEMBERCALL_CEILING_FACTOR",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 1304,
                                                    "src": "7279:25:0",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_uint256",
                                                      "typeString": "uint256"
                                                    }
                                                  },
                                                  "src": "7240:64:0",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                  }
                                                }
                                              ],
                                              "id": 526,
                                              "isConstant": false,
                                              "isInlineArray": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "nodeType": "TupleExpression",
                                              "src": "7239:66:0",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "/",
                                            "rightExpression": {
                                              "argumentTypes": null,
                                              "hexValue": "3130",
                                              "id": 527,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "7308:2:0",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_10_by_1",
                                                "typeString": "int_const 10"
                                              },
                                              "value": "10"
                                            },
                                            "src": "7239:71:0",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          }
                                        ],
                                        "id": 529,
                                        "isConstant": false,
                                        "isInlineArray": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "TupleExpression",
                                        "src": "7238:73:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "*",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "id": 532,
                                            "name": "k",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 499,
                                            "src": "7364:1:0",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 530,
                                            "name": "assessedConcept",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 467,
                                            "src": "7334:15:0",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_contract$_Concept_$2247",
                                              "typeString": "contract Concept"
                                            }
                                          },
                                          "id": 531,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "parentFactors",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 2281,
                                          "src": "7334:29:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$",
                                            "typeString": "function (uint256) view external returns (uint256)"
                                          }
                                        },
                                        "id": 533,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "7334:32:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "7238:128:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "id": 535,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "7216:168:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "/",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "31303030",
                                  "id": 536,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "7387:4:0",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1000_by_1",
                                    "typeString": "int_const 1000"
                                  },
                                  "value": "1000"
                                },
                                "src": "7216:175:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "7191:200:0"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 541,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 539,
                                  "name": "availableViaParents",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 496,
                                  "src": "7409:19:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "+=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 540,
                                  "name": "availableInParent",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 520,
                                  "src": "7432:17:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "7409:40:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 542,
                              "nodeType": "ExpressionStatement",
                              "src": "7409:40:0"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 553,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 543,
                                  "name": "totalCalled",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 464,
                                  "src": "7467:11:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "+=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 547,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "id": 545,
                                        "name": "_seed",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 445,
                                        "src": "7500:5:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "+",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "id": 546,
                                        "name": "k",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 499,
                                        "src": "7508:1:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "7500:9:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 548,
                                      "name": "availableInParent",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 520,
                                      "src": "7511:17:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "id": 550,
                                          "name": "parent",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 511,
                                          "src": "7538:6:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_Concept_$2247",
                                            "typeString": "contract Concept"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_contract$_Concept_$2247",
                                            "typeString": "contract Concept"
                                          }
                                        ],
                                        "id": 549,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "7530:7:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_address_$",
                                          "typeString": "type(address)"
                                        },
                                        "typeName": "address"
                                      },
                                      "id": 551,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "7530:15:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    ],
                                    "id": 544,
                                    "name": "callRandomMembers",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 742,
                                    "src": "7482:17:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$_t_uint256_$",
                                      "typeString": "function (uint256,uint256,address) returns (uint256)"
                                    }
                                  },
                                  "id": 552,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "7482:64:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "7467:79:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 554,
                              "nodeType": "ExpressionStatement",
                              "src": "7467:79:0"
                            }
                          ]
                        },
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 506,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 502,
                            "name": "k",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 499,
                            "src": "7056:1:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "id": 503,
                                "name": "assessedConcept",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 467,
                                "src": "7060:15:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Concept_$2247",
                                  "typeString": "contract Concept"
                                }
                              },
                              "id": 504,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "getNumberOfParents",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2187,
                              "src": "7060:34:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                "typeString": "function () view external returns (uint256)"
                              }
                            },
                            "id": 505,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7060:36:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "7056:40:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 556,
                        "initializationExpression": {
                          "assignments": [
                            499
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 499,
                              "name": "k",
                              "nodeType": "VariableDeclaration",
                              "scope": 556,
                              "src": "7044:6:0",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "typeName": {
                                "id": 498,
                                "name": "uint",
                                "nodeType": "ElementaryTypeName",
                                "src": "7044:4:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "value": null,
                              "visibility": "internal"
                            }
                          ],
                          "id": 501,
                          "initialValue": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 500,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "7053:1:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "7044:10:0"
                        },
                        "loopExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 508,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": false,
                            "src": "7098:3:0",
                            "subExpression": {
                              "argumentTypes": null,
                              "id": 507,
                              "name": "k",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 499,
                              "src": "7098:1:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 509,
                          "nodeType": "ExpressionStatement",
                          "src": "7098:3:0"
                        },
                        "nodeType": "ForStatement",
                        "src": "7039:522:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 562,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 560,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 558,
                                  "name": "availableHere",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 473,
                                  "src": "7662:13:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "+",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "id": 559,
                                  "name": "availableViaParents",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 496,
                                  "src": "7678:19:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "7662:35:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": ">=",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 561,
                                "name": "toBeCalled",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 455,
                                "src": "7701:10:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "7662:49:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "4e6f7420656e6f756768206173736573736f727320696e20706172656e7420636f6e6365707473",
                              "id": 563,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7713:41:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_8e7c4710c8980faeb64c0e4306fe5f70e60b24fa43a992da6677e5d065bbe1f0",
                                "typeString": "literal_string \"Not enough assessors in parent concepts\""
                              },
                              "value": "Not enough assessors in parent concepts"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_8e7c4710c8980faeb64c0e4306fe5f70e60b24fa43a992da6677e5d065bbe1f0",
                                "typeString": "literal_string \"Not enough assessors in parent concepts\""
                              }
                            ],
                            "id": 557,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              5970,
                              5971
                            ],
                            "referencedDeclaration": 5971,
                            "src": "7654:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 564,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7654:101:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 565,
                        "nodeType": "ExpressionStatement",
                        "src": "7654:101:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 574,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 566,
                            "name": "totalCalled",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 464,
                            "src": "7856:11:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 570,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 568,
                                  "name": "_seed",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 445,
                                  "src": "7889:5:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "+",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "34323234",
                                  "id": 569,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "7897:4:0",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_4224_by_1",
                                    "typeString": "int_const 4224"
                                  },
                                  "value": "4224"
                                },
                                "src": "7889:12:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 571,
                                "name": "availableHere",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 473,
                                "src": "7903:13:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 572,
                                "name": "_concept",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 447,
                                "src": "7918:8:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "id": 567,
                              "name": "callRandomMembers",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 742,
                              "src": "7871:17:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$_t_uint256_$",
                                "typeString": "function (uint256,uint256,address) returns (uint256)"
                              }
                            },
                            "id": 573,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7871:56:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "7856:71:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 575,
                        "nodeType": "ExpressionStatement",
                        "src": "7856:71:0"
                      }
                    ]
                  },
                  "id": 577,
                  "nodeType": "IfStatement",
                  "src": "6631:1307:0",
                  "trueBody": {
                    "id": 494,
                    "nodeType": "Block",
                    "src": "6664:158:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 492,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 486,
                            "name": "totalCalled",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 464,
                            "src": "6750:11:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 488,
                                "name": "_seed",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 445,
                                "src": "6783:5:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 489,
                                "name": "toBeCalled",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 455,
                                "src": "6790:10:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 490,
                                "name": "_concept",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 447,
                                "src": "6802:8:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "id": 487,
                              "name": "callRandomMembers",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 742,
                              "src": "6765:17:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$_t_uint256_$",
                                "typeString": "function (uint256,uint256,address) returns (uint256)"
                              }
                            },
                            "id": 491,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6765:46:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "6750:61:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 493,
                        "nodeType": "ExpressionStatement",
                        "src": "6750:61:0"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 581,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 579,
                          "name": "totalCalled",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 464,
                          "src": "7955:11:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 580,
                          "name": "MIN_ASSESSMENT_SIZE",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1307,
                          "src": "7970:19:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "7955:34:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "546f6f20666577206173736573736f727320636f756c642062652063616c6c6564",
                        "id": 582,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7991:35:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_0c0b1bd4450a3319f9077c789b26eed03c9f971310b68e2b3da75933181afc8a",
                          "typeString": "literal_string \"Too few assessors could be called\""
                        },
                        "value": "Too few assessors could be called"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_0c0b1bd4450a3319f9077c789b26eed03c9f971310b68e2b3da75933181afc8a",
                          "typeString": "literal_string \"Too few assessors could be called\""
                        }
                      ],
                      "id": 578,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5970,
                        5971
                      ],
                      "referencedDeclaration": 5971,
                      "src": "7947:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 583,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7947:80:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 584,
                  "nodeType": "ExpressionStatement",
                  "src": "7947:80:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 588,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 585,
                      "name": "assessmentStage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1370,
                      "src": "8037:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Stage_$1364",
                        "typeString": "enum AssessmentData.Stage"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 586,
                        "name": "Stage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1364,
                        "src": "8055:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                          "typeString": "type(enum AssessmentData.Stage)"
                        }
                      },
                      "id": 587,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Called",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "8055:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Stage_$1364",
                        "typeString": "enum AssessmentData.Stage"
                      }
                    },
                    "src": "8037:30:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Stage_$1364",
                      "typeString": "enum AssessmentData.Stage"
                    }
                  },
                  "id": 589,
                  "nodeType": "ExpressionStatement",
                  "src": "8037:30:0"
                }
              ]
            },
            "documentation": null,
            "id": 591,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [],
                "id": 452,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 451,
                  "name": "onlyConcept",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 21,
                  "src": "6134:11:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "6134:13:0"
              }
            ],
            "name": "setAssessorPool",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 450,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 445,
                  "name": "_seed",
                  "nodeType": "VariableDeclaration",
                  "scope": 591,
                  "src": "6085:10:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 444,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6085:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 447,
                  "name": "_concept",
                  "nodeType": "VariableDeclaration",
                  "scope": 591,
                  "src": "6097:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 446,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6097:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 449,
                  "name": "_size",
                  "nodeType": "VariableDeclaration",
                  "scope": 591,
                  "src": "6115:10:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 448,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6115:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6084:42:0"
            },
            "returnParameters": {
              "id": 453,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6148:0:0"
            },
            "scope": 1295,
            "src": "6060:2014:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 741,
              "nodeType": "Block",
              "src": "8693:1538:0",
              "statements": [
                {
                  "assignments": [
                    603
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 603,
                      "name": "seed",
                      "nodeType": "VariableDeclaration",
                      "scope": 741,
                      "src": "8703:9:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 602,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "8703:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 605,
                  "initialValue": {
                    "argumentTypes": null,
                    "id": 604,
                    "name": "_seed",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 593,
                    "src": "8715:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8703:17:0"
                },
                {
                  "assignments": [
                    607
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 607,
                      "name": "assessorConcept",
                      "nodeType": "VariableDeclaration",
                      "scope": 741,
                      "src": "8730:23:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Concept_$2247",
                        "typeString": "contract Concept"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 606,
                        "name": "Concept",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 2247,
                        "src": "8730:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Concept_$2247",
                          "typeString": "contract Concept"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 611,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 609,
                        "name": "_concept",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 597,
                        "src": "8764:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 608,
                      "name": "Concept",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2247,
                      "src": "8756:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_Concept_$2247_$",
                        "typeString": "type(contract Concept)"
                      }
                    },
                    "id": 610,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8756:17:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Concept_$2247",
                      "typeString": "contract Concept"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8730:43:0"
                },
                {
                  "assignments": [
                    615
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 615,
                      "name": "availableMembers",
                      "nodeType": "VariableDeclaration",
                      "scope": 741,
                      "src": "8783:33:0",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 613,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "8783:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 614,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "8783:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 619,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 616,
                        "name": "assessorConcept",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 607,
                        "src": "8819:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Concept_$2247",
                          "typeString": "contract Concept"
                        }
                      },
                      "id": 617,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getAvailableMembers",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2178,
                      "src": "8819:35:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$__$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                        "typeString": "function () view external returns (address[] memory)"
                      }
                    },
                    "id": 618,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8819:37:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8783:73:0"
                },
                {
                  "assignments": [
                    621
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 621,
                      "name": "length",
                      "nodeType": "VariableDeclaration",
                      "scope": 741,
                      "src": "9026:11:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 620,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "9026:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 624,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 622,
                      "name": "availableMembers",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 615,
                      "src": "9040:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "id": 623,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "length",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "9040:23:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9026:37:0"
                },
                {
                  "body": {
                    "id": 739,
                    "nodeType": "Block",
                    "src": "9108:1117:0",
                    "statements": [
                      {
                        "assignments": [
                          636
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 636,
                            "name": "index1",
                            "nodeType": "VariableDeclaration",
                            "scope": 739,
                            "src": "9122:11:0",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 635,
                              "name": "uint",
                              "nodeType": "ElementaryTypeName",
                              "src": "9122:4:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 644,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 639,
                              "name": "seed",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 603,
                              "src": "9157:4:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 642,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 640,
                                "name": "length",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 621,
                                "src": "9163:6:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "31",
                                "id": 641,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "9172:1:0",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              },
                              "src": "9163:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 637,
                              "name": "Math",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3284,
                              "src": "9136:4:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Math_$3284_$",
                                "typeString": "type(library Math)"
                              }
                            },
                            "id": 638,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "getRandomNumber",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3095,
                            "src": "9136:20:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_delegatecall_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                              "typeString": "function (uint256,uint256) view returns (uint256)"
                            }
                          },
                          "id": 643,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9136:38:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "9122:52:0"
                      },
                      {
                        "assignments": [
                          646
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 646,
                            "name": "index2",
                            "nodeType": "VariableDeclaration",
                            "scope": 739,
                            "src": "9188:11:0",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 645,
                              "name": "uint",
                              "nodeType": "ElementaryTypeName",
                              "src": "9188:4:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 656,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 651,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 649,
                                "name": "seed",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 603,
                                "src": "9223:4:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "*",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "32",
                                "id": 650,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "9230:1:0",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_2_by_1",
                                  "typeString": "int_const 2"
                                },
                                "value": "2"
                              },
                              "src": "9223:8:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 654,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 652,
                                "name": "length",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 621,
                                "src": "9233:6:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "31",
                                "id": 653,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "9242:1:0",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              },
                              "src": "9233:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 647,
                              "name": "Math",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3284,
                              "src": "9202:4:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Math_$3284_$",
                                "typeString": "type(library Math)"
                              }
                            },
                            "id": 648,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "getRandomNumber",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3095,
                            "src": "9202:20:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_delegatecall_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                              "typeString": "function (uint256,uint256) view returns (uint256)"
                            }
                          },
                          "id": 655,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9202:42:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "9188:56:0"
                      },
                      {
                        "assignments": [
                          658
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 658,
                            "name": "weight1",
                            "nodeType": "VariableDeclaration",
                            "scope": 739,
                            "src": "9258:12:0",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 657,
                              "name": "uint",
                              "nodeType": "ElementaryTypeName",
                              "src": "9258:4:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 665,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 661,
                                "name": "availableMembers",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 615,
                                "src": "9299:16:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                  "typeString": "address[] memory"
                                }
                              },
                              "id": 663,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 662,
                                "name": "index1",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 636,
                                "src": "9316:6:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "9299:24:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 659,
                              "name": "assessorConcept",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 607,
                              "src": "9273:15:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Concept_$2247",
                                "typeString": "contract Concept"
                              }
                            },
                            "id": 660,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "getWeight",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2154,
                            "src": "9273:25:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                              "typeString": "function (address) view external returns (uint256)"
                            }
                          },
                          "id": 664,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9273:51:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "9258:66:0"
                      },
                      {
                        "assignments": [
                          667
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 667,
                            "name": "weight2",
                            "nodeType": "VariableDeclaration",
                            "scope": 739,
                            "src": "9338:12:0",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 666,
                              "name": "uint",
                              "nodeType": "ElementaryTypeName",
                              "src": "9338:4:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 674,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 670,
                                "name": "availableMembers",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 615,
                                "src": "9379:16:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                  "typeString": "address[] memory"
                                }
                              },
                              "id": 672,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 671,
                                "name": "index2",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 646,
                                "src": "9396:6:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "9379:24:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 668,
                              "name": "assessorConcept",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 607,
                              "src": "9353:15:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Concept_$2247",
                                "typeString": "contract Concept"
                              }
                            },
                            "id": 669,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "getWeight",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2154,
                            "src": "9353:25:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                              "typeString": "function (address) view external returns (uint256)"
                            }
                          },
                          "id": 673,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9353:51:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "9338:66:0"
                      },
                      {
                        "assignments": [
                          676
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 676,
                            "name": "calledAssessor",
                            "nodeType": "VariableDeclaration",
                            "scope": 739,
                            "src": "9419:22:0",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "typeName": {
                              "id": 675,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "9419:7:0",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 677,
                        "initialValue": null,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "9419:22:0"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 680,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 678,
                            "name": "weight1",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 658,
                            "src": "9459:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 679,
                            "name": "weight2",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 667,
                            "src": "9470:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "9459:18:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 714,
                          "nodeType": "Block",
                          "src": "9632:147:0",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 702,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 698,
                                  "name": "calledAssessor",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 676,
                                  "src": "9650:14:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 699,
                                    "name": "availableMembers",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 615,
                                    "src": "9667:16:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 701,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 700,
                                    "name": "index2",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 646,
                                    "src": "9684:6:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "9667:24:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "src": "9650:41:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 703,
                              "nodeType": "ExpressionStatement",
                              "src": "9650:41:0"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 712,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 704,
                                    "name": "availableMembers",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 615,
                                    "src": "9709:16:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 706,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 705,
                                    "name": "index2",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 646,
                                    "src": "9726:6:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "9709:24:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 707,
                                    "name": "availableMembers",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 615,
                                    "src": "9736:16:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 711,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 710,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "id": 708,
                                      "name": "length",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 621,
                                      "src": "9753:6:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "-",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "31",
                                      "id": 709,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "9762:1:0",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_1_by_1",
                                        "typeString": "int_const 1"
                                      },
                                      "value": "1"
                                    },
                                    "src": "9753:10:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "9736:28:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "src": "9709:55:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 713,
                              "nodeType": "ExpressionStatement",
                              "src": "9709:55:0"
                            }
                          ]
                        },
                        "id": 715,
                        "nodeType": "IfStatement",
                        "src": "9455:324:0",
                        "trueBody": {
                          "id": 697,
                          "nodeType": "Block",
                          "src": "9479:147:0",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 685,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 681,
                                  "name": "calledAssessor",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 676,
                                  "src": "9497:14:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 682,
                                    "name": "availableMembers",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 615,
                                    "src": "9514:16:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 684,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 683,
                                    "name": "index1",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 636,
                                    "src": "9531:6:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "9514:24:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "src": "9497:41:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 686,
                              "nodeType": "ExpressionStatement",
                              "src": "9497:41:0"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 695,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 687,
                                    "name": "availableMembers",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 615,
                                    "src": "9556:16:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 689,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 688,
                                    "name": "index1",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 636,
                                    "src": "9573:6:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "9556:24:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 690,
                                    "name": "availableMembers",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 615,
                                    "src": "9583:16:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 694,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 693,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "id": 691,
                                      "name": "length",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 621,
                                      "src": "9600:6:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "-",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "31",
                                      "id": 692,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "9609:1:0",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_1_by_1",
                                        "typeString": "int_const 1"
                                      },
                                      "value": "1"
                                    },
                                    "src": "9600:10:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "9583:28:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "src": "9556:55:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 696,
                              "nodeType": "ExpressionStatement",
                              "src": "9556:55:0"
                            }
                          ]
                        }
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 722,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 716,
                              "name": "availableMembers",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 615,
                              "src": "9792:16:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                "typeString": "address[] memory"
                              }
                            },
                            "id": 720,
                            "indexExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 719,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 717,
                                "name": "length",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 621,
                                "src": "9809:6:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "31",
                                "id": 718,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "9816:1:0",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              },
                              "src": "9809:8:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "9792:26:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 721,
                            "name": "calledAssessor",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 676,
                            "src": "9821:14:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "9792:43:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 723,
                        "nodeType": "ExpressionStatement",
                        "src": "9792:43:0"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 725,
                              "name": "calledAssessor",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 676,
                              "src": "10048:14:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 724,
                            "name": "addAssessorToPool",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 874,
                            "src": "10030:17:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$_t_bool_$",
                              "typeString": "function (address) returns (bool)"
                            }
                          },
                          "id": 726,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10030:33:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 731,
                        "nodeType": "IfStatement",
                        "src": "10026:62:0",
                        "trueBody": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 729,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "id": 727,
                              "name": "successfullyCalled",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 600,
                              "src": "10065:18:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "+=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 728,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10087:1:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "10065:23:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 730,
                          "nodeType": "ExpressionStatement",
                          "src": "10065:23:0"
                        }
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 734,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 732,
                            "name": "seed",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 603,
                            "src": "10102:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "3130",
                            "id": 733,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "10110:2:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_10_by_1",
                              "typeString": "int_const 10"
                            },
                            "value": "10"
                          },
                          "src": "10102:10:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 735,
                        "nodeType": "ExpressionStatement",
                        "src": "10102:10:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 737,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "--",
                          "prefix": false,
                          "src": "10206:8:0",
                          "subExpression": {
                            "argumentTypes": null,
                            "id": 736,
                            "name": "length",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 621,
                            "src": "10206:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 738,
                        "nodeType": "ExpressionStatement",
                        "src": "10206:8:0"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 631,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 629,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 626,
                      "src": "9090:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 630,
                      "name": "_amount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 595,
                      "src": "9094:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9090:11:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 740,
                  "initializationExpression": {
                    "assignments": [
                      626
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 626,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 740,
                        "src": "9078:6:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 625,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "9078:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 628,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 627,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9087:1:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "9078:10:0"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 633,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "9103:3:0",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 632,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 626,
                        "src": "9103:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 634,
                    "nodeType": "ExpressionStatement",
                    "src": "9103:3:0"
                  },
                  "nodeType": "ForStatement",
                  "src": "9073:1152:0"
                }
              ]
            },
            "documentation": "@notice Tries to probabilistically call a given amount of members from a given concept\nand its parents. Members with higher weights having better chances of being called.\n@dev This assumes there are >=amount members in the concept.\n@return how many members have actually been added to the assessment pool.",
            "id": 742,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "callRandomMembers",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 598,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 593,
                  "name": "_seed",
                  "nodeType": "VariableDeclaration",
                  "scope": 742,
                  "src": "8587:10:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 592,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "8587:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 595,
                  "name": "_amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 742,
                  "src": "8599:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 594,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "8599:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 597,
                  "name": "_concept",
                  "nodeType": "VariableDeclaration",
                  "scope": 742,
                  "src": "8613:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 596,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8613:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8586:44:0"
            },
            "returnParameters": {
              "id": 601,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 600,
                  "name": "successfullyCalled",
                  "nodeType": "VariableDeclaration",
                  "scope": 742,
                  "src": "8664:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 599,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "8664:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8663:25:0"
            },
            "scope": 1295,
            "src": "8560:1671:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 835,
              "nodeType": "Block",
              "src": "10482:662:0",
              "statements": [
                {
                  "assignments": [
                    746
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 746,
                      "name": "assesseeRefund",
                      "nodeType": "VariableDeclaration",
                      "scope": 835,
                      "src": "10492:19:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 745,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "10492:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 759,
                  "initialValue": {
                    "argumentTypes": null,
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_enum$_Stage_$1364",
                        "typeString": "enum AssessmentData.Stage"
                      },
                      "id": 750,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 747,
                        "name": "assessmentStage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1370,
                        "src": "10514:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Stage_$1364",
                          "typeString": "enum AssessmentData.Stage"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 748,
                          "name": "Stage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1364,
                          "src": "10533:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                            "typeString": "type(enum AssessmentData.Stage)"
                          }
                        },
                        "id": 749,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "Called",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "10533:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Stage_$1364",
                          "typeString": "enum AssessmentData.Stage"
                        }
                      },
                      "src": "10514:31:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 757,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 754,
                        "name": "cost",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1346,
                        "src": "10562:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "*",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 755,
                          "name": "assessors",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1373,
                          "src": "10569:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_storage",
                            "typeString": "address[] storage ref"
                          }
                        },
                        "id": 756,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "10569:16:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "10562:23:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 758,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "10514:71:0",
                    "trueExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 753,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 751,
                        "name": "cost",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1346,
                        "src": "10548:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "*",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 752,
                        "name": "size",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1344,
                        "src": "10555:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "10548:11:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10492:93:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 763,
                        "name": "assessee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1338,
                        "src": "10616:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 764,
                        "name": "assesseeRefund",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 746,
                        "src": "10626:14:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 760,
                        "name": "fathomToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1336,
                        "src": "10595:11:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_FathomToken_$3062",
                          "typeString": "contract FathomToken"
                        }
                      },
                      "id": 762,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 5569,
                      "src": "10595:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                        "typeString": "function (address,uint256) external returns (bool)"
                      }
                    },
                    "id": 765,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10595:46:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 766,
                  "nodeType": "ExpressionStatement",
                  "src": "10595:46:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 770,
                        "name": "assessee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1338,
                        "src": "10680:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 771,
                            "name": "FathomToken",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3062,
                            "src": "10690:11:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_FathomToken_$3062_$",
                              "typeString": "type(contract FathomToken)"
                            }
                          },
                          "id": 772,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "Note",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2799,
                          "src": "10690:16:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Note_$2799_$",
                            "typeString": "type(enum FathomToken.Note)"
                          }
                        },
                        "id": 773,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "AssessmentCancelled",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "10690:36:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Note_$2799",
                          "typeString": "enum FathomToken.Note"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_enum$_Note_$2799",
                          "typeString": "enum FathomToken.Note"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 767,
                        "name": "fathomToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1336,
                        "src": "10651:11:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_FathomToken_$3062",
                          "typeString": "contract FathomToken"
                        }
                      },
                      "id": 769,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "emitNotification",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2851,
                      "src": "10651:28:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_enum$_Note_$2799_$returns$__$",
                        "typeString": "function (address,enum FathomToken.Note) external"
                      }
                    },
                    "id": 774,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10651:76:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 775,
                  "nodeType": "ExpressionStatement",
                  "src": "10651:76:0"
                },
                {
                  "body": {
                    "id": 817,
                    "nodeType": "Block",
                    "src": "10781:244:0",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          },
                          "id": 794,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 787,
                              "name": "assessorStage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1368,
                              "src": "10799:13:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                                "typeString": "mapping(address => enum AssessmentData.Stage)"
                              }
                            },
                            "id": 791,
                            "indexExpression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 788,
                                "name": "assessors",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1373,
                                "src": "10813:9:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                  "typeString": "address[] storage ref"
                                }
                              },
                              "id": 790,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 789,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 777,
                                "src": "10823:1:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "10813:12:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "10799:27:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 792,
                              "name": "Stage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1364,
                              "src": "10830:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                "typeString": "type(enum AssessmentData.Stage)"
                              }
                            },
                            "id": 793,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "Burned",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "10830:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "src": "10799:43:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 816,
                        "nodeType": "IfStatement",
                        "src": "10795:220:0",
                        "trueBody": {
                          "id": 815,
                          "nodeType": "Block",
                          "src": "10844:171:0",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 798,
                                      "name": "assessors",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1373,
                                      "src": "10883:9:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                        "typeString": "address[] storage ref"
                                      }
                                    },
                                    "id": 800,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 799,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 777,
                                      "src": "10893:1:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "10883:12:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 801,
                                    "name": "cost",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1346,
                                    "src": "10897:4:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 795,
                                    "name": "fathomToken",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1336,
                                    "src": "10862:11:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_FathomToken_$3062",
                                      "typeString": "contract FathomToken"
                                    }
                                  },
                                  "id": 797,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "transfer",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 5569,
                                  "src": "10862:20:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                    "typeString": "function (address,uint256) external returns (bool)"
                                  }
                                },
                                "id": 802,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "10862:40:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "id": 803,
                              "nodeType": "ExpressionStatement",
                              "src": "10862:40:0"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 807,
                                      "name": "assessors",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1373,
                                      "src": "10949:9:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                        "typeString": "address[] storage ref"
                                      }
                                    },
                                    "id": 809,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 808,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 777,
                                      "src": "10959:1:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "10949:12:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 810,
                                        "name": "FathomToken",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3062,
                                        "src": "10963:11:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_contract$_FathomToken_$3062_$",
                                          "typeString": "type(contract FathomToken)"
                                        }
                                      },
                                      "id": 811,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "Note",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 2799,
                                      "src": "10963:16:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_enum$_Note_$2799_$",
                                        "typeString": "type(enum FathomToken.Note)"
                                      }
                                    },
                                    "id": 812,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "memberName": "AssessmentCancelled",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": null,
                                    "src": "10963:36:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_Note_$2799",
                                      "typeString": "enum FathomToken.Note"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_enum$_Note_$2799",
                                      "typeString": "enum FathomToken.Note"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 804,
                                    "name": "fathomToken",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1336,
                                    "src": "10920:11:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_FathomToken_$3062",
                                      "typeString": "contract FathomToken"
                                    }
                                  },
                                  "id": 806,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "emitNotification",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2851,
                                  "src": "10920:28:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_enum$_Note_$2799_$returns$__$",
                                    "typeString": "function (address,enum FathomToken.Note) external"
                                  }
                                },
                                "id": 813,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "10920:80:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 814,
                              "nodeType": "ExpressionStatement",
                              "src": "10920:80:0"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 783,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 780,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 777,
                      "src": "10754:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 781,
                        "name": "assessors",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1373,
                        "src": "10758:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 782,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "10758:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "10754:20:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 818,
                  "initializationExpression": {
                    "assignments": [
                      777
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 777,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 818,
                        "src": "10742:6:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 776,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "10742:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 779,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 778,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10751:1:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "10742:10:0"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 785,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "10776:3:0",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 784,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 777,
                        "src": "10776:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 786,
                    "nodeType": "ExpressionStatement",
                    "src": "10776:3:0"
                  },
                  "nodeType": "ForStatement",
                  "src": "10737:288:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 822,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 819,
                      "name": "assessmentStage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1370,
                      "src": "11034:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Stage_$1364",
                        "typeString": "enum AssessmentData.Stage"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 820,
                        "name": "Stage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1364,
                        "src": "11052:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                          "typeString": "type(enum AssessmentData.Stage)"
                        }
                      },
                      "id": 821,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Burned",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "11052:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Stage_$1364",
                        "typeString": "enum AssessmentData.Stage"
                      }
                    },
                    "src": "11034:30:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Stage_$1364",
                      "typeString": "enum AssessmentData.Stage"
                    }
                  },
                  "id": 823,
                  "nodeType": "ExpressionStatement",
                  "src": "11034:30:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 830,
                                "name": "this",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6024,
                                "src": "11130:4:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Assessment_$1295",
                                  "typeString": "contract Assessment"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Assessment_$1295",
                                  "typeString": "contract Assessment"
                                }
                              ],
                              "id": 829,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "11122:7:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 831,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "11122:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 827,
                            "name": "fathomToken",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1336,
                            "src": "11100:11:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_FathomToken_$3062",
                              "typeString": "contract FathomToken"
                            }
                          },
                          "id": 828,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "balanceOf",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5581,
                          "src": "11100:21:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                            "typeString": "function (address) view external returns (uint256)"
                          }
                        },
                        "id": 832,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11100:36:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 824,
                        "name": "fathomToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1336,
                        "src": "11074:11:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_FathomToken_$3062",
                          "typeString": "contract FathomToken"
                        }
                      },
                      "id": 826,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "destroyTokens",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3038,
                      "src": "11074:25:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 833,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11074:63:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 834,
                  "nodeType": "ExpressionStatement",
                  "src": "11074:63:0"
                }
              ]
            },
            "documentation": "@notice Called to cancel an assessment, refund all non-burned assessors",
            "id": 836,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "cancelAssessment",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 743,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10471:2:0"
            },
            "returnParameters": {
              "id": 744,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10482:0:0"
            },
            "scope": 1295,
            "src": "10446:698:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "private"
          },
          {
            "body": {
              "id": 873,
              "nodeType": "Block",
              "src": "11427:262:0",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 852,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "id": 845,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 843,
                        "name": "_assessor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 838,
                        "src": "11441:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 844,
                        "name": "assessee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1338,
                        "src": "11454:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "src": "11441:21:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_enum$_Stage_$1364",
                        "typeString": "enum AssessmentData.Stage"
                      },
                      "id": 851,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 846,
                          "name": "assessorStage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1368,
                          "src": "11466:13:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                            "typeString": "mapping(address => enum AssessmentData.Stage)"
                          }
                        },
                        "id": 848,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 847,
                          "name": "_assessor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 838,
                          "src": "11480:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "11466:24:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Stage_$1364",
                          "typeString": "enum AssessmentData.Stage"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 849,
                          "name": "Stage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1364,
                          "src": "11494:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                            "typeString": "type(enum AssessmentData.Stage)"
                          }
                        },
                        "id": 850,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "None",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "11494:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Stage_$1364",
                          "typeString": "enum AssessmentData.Stage"
                        }
                      },
                      "src": "11466:38:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "11441:63:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 872,
                  "nodeType": "IfStatement",
                  "src": "11437:246:0",
                  "trueBody": {
                    "id": 871,
                    "nodeType": "Block",
                    "src": "11506:177:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 856,
                              "name": "_assessor",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 838,
                              "src": "11549:9:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 857,
                                  "name": "FathomToken",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3062,
                                  "src": "11560:11:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_FathomToken_$3062_$",
                                    "typeString": "type(contract FathomToken)"
                                  }
                                },
                                "id": 858,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "Note",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2799,
                                "src": "11560:16:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_Note_$2799_$",
                                  "typeString": "type(enum FathomToken.Note)"
                                }
                              },
                              "id": 859,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "CalledAsAssessor",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "11560:33:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_Note_$2799",
                                "typeString": "enum FathomToken.Note"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_enum$_Note_$2799",
                                "typeString": "enum FathomToken.Note"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 853,
                              "name": "fathomToken",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1336,
                              "src": "11520:11:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_FathomToken_$3062",
                                "typeString": "contract FathomToken"
                              }
                            },
                            "id": 855,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "emitNotification",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2851,
                            "src": "11520:28:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_enum$_Note_$2799_$returns$__$",
                              "typeString": "function (address,enum FathomToken.Note) external"
                            }
                          },
                          "id": 860,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11520:74:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 861,
                        "nodeType": "ExpressionStatement",
                        "src": "11520:74:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 867,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 862,
                              "name": "assessorStage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1368,
                              "src": "11608:13:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                                "typeString": "mapping(address => enum AssessmentData.Stage)"
                              }
                            },
                            "id": 864,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 863,
                              "name": "_assessor",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 838,
                              "src": "11622:9:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "11608:24:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 865,
                              "name": "Stage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1364,
                              "src": "11635:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                "typeString": "type(enum AssessmentData.Stage)"
                              }
                            },
                            "id": 866,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "Called",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "11635:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "src": "11608:39:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          }
                        },
                        "id": 868,
                        "nodeType": "ExpressionStatement",
                        "src": "11608:39:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 869,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "11668:4:0",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        "functionReturnParameters": 842,
                        "id": 870,
                        "nodeType": "Return",
                        "src": "11661:11:0"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@notice Adds an address to the pool of potential assessors that will be allowed to\naccept (stake on) the assessment\n@return flag whether the address was added successfully",
            "id": 874,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "addAssessorToPool",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 839,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 838,
                  "name": "_assessor",
                  "nodeType": "VariableDeclaration",
                  "scope": 874,
                  "src": "11386:17:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 837,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "11386:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11385:19:0"
            },
            "returnParameters": {
              "id": 842,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 841,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 874,
                  "src": "11421:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 840,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "11421:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11420:6:0"
            },
            "scope": 1295,
            "src": "11359:330:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "private"
          },
          {
            "body": {
              "id": 932,
              "nodeType": "Block",
              "src": "12021:410:0",
              "statements": [
                {
                  "body": {
                    "id": 913,
                    "nodeType": "Block",
                    "src": "12075:166:0",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          },
                          "id": 898,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 892,
                              "name": "assessorStage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1368,
                              "src": "12093:13:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                                "typeString": "mapping(address => enum AssessmentData.Stage)"
                              }
                            },
                            "id": 896,
                            "indexExpression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 893,
                                "name": "assessors",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1373,
                                "src": "12107:9:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                  "typeString": "address[] storage ref"
                                }
                              },
                              "id": 895,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 894,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 882,
                                "src": "12117:1:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "12107:12:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "12093:27:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 897,
                            "name": "_stage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 876,
                            "src": "12124:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "src": "12093:37:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 912,
                        "nodeType": "IfStatement",
                        "src": "12089:142:0",
                        "trueBody": {
                          "id": 911,
                          "nodeType": "Block",
                          "src": "12132:99:0",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 906,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 899,
                                    "name": "assessorStage",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1368,
                                    "src": "12150:13:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                                      "typeString": "mapping(address => enum AssessmentData.Stage)"
                                    }
                                  },
                                  "id": 903,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 900,
                                      "name": "assessors",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1373,
                                      "src": "12164:9:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                        "typeString": "address[] storage ref"
                                      }
                                    },
                                    "id": 902,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 901,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 882,
                                      "src": "12174:1:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "12164:12:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "12150:27:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Stage_$1364",
                                    "typeString": "enum AssessmentData.Stage"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 904,
                                    "name": "Stage",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1364,
                                    "src": "12180:5:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                      "typeString": "type(enum AssessmentData.Stage)"
                                    }
                                  },
                                  "id": 905,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Burned",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "12180:12:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Stage_$1364",
                                    "typeString": "enum AssessmentData.Stage"
                                  }
                                },
                                "src": "12150:42:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_Stage_$1364",
                                  "typeString": "enum AssessmentData.Stage"
                                }
                              },
                              "id": 907,
                              "nodeType": "ExpressionStatement",
                              "src": "12150:42:0"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 909,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "--",
                                "prefix": false,
                                "src": "12210:6:0",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "id": 908,
                                  "name": "size",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1344,
                                  "src": "12210:4:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 910,
                              "nodeType": "ExpressionStatement",
                              "src": "12210:6:0"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 888,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 885,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 882,
                      "src": "12048:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 886,
                        "name": "assessors",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1373,
                        "src": "12052:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 887,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "12052:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12048:20:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 914,
                  "initializationExpression": {
                    "assignments": [
                      882
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 882,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 914,
                        "src": "12036:6:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 881,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "12036:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 884,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 883,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12045:1:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "12036:10:0"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 890,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "12070:3:0",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 889,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 882,
                        "src": "12070:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 891,
                    "nodeType": "ExpressionStatement",
                    "src": "12070:3:0"
                  },
                  "nodeType": "ForStatement",
                  "src": "12031:210:0"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 917,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 915,
                      "name": "size",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1344,
                      "src": "12254:4:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 916,
                      "name": "MIN_ASSESSMENT_SIZE",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1307,
                      "src": "12261:19:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12254:26:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 930,
                    "nodeType": "Block",
                    "src": "12375:50:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 928,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 926,
                            "name": "continueAssessment",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 879,
                            "src": "12389:18:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "74727565",
                            "id": 927,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12410:4:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "src": "12389:25:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 929,
                        "nodeType": "ExpressionStatement",
                        "src": "12389:25:0"
                      }
                    ]
                  },
                  "id": 931,
                  "nodeType": "IfStatement",
                  "src": "12250:175:0",
                  "trueBody": {
                    "id": 925,
                    "nodeType": "Block",
                    "src": "12282:87:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 918,
                            "name": "cancelAssessment",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 836,
                            "src": "12298:16:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                              "typeString": "function ()"
                            }
                          },
                          "id": 919,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "12298:18:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 920,
                        "nodeType": "ExpressionStatement",
                        "src": "12298:18:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 923,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 921,
                            "name": "continueAssessment",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 879,
                            "src": "12332:18:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "66616c7365",
                            "id": 922,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12353:5:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "false"
                          },
                          "src": "12332:26:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 924,
                        "nodeType": "ExpressionStatement",
                        "src": "12332:26:0"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Burns stakes of all assessors who are in a given stage and cancels the assessment\nif there are less than five assessors left\n@return continueAssessment flag whether there are enough assessors left to continue",
            "id": 933,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "burnStakes",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 877,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 876,
                  "name": "_stage",
                  "nodeType": "VariableDeclaration",
                  "scope": 933,
                  "src": "11966:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Stage_$1364",
                    "typeString": "enum AssessmentData.Stage"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 875,
                    "name": "Stage",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1364,
                    "src": "11966:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Stage_$1364",
                      "typeString": "enum AssessmentData.Stage"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11965:14:0"
            },
            "returnParameters": {
              "id": 880,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 879,
                  "name": "continueAssessment",
                  "nodeType": "VariableDeclaration",
                  "scope": 933,
                  "src": "11996:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 878,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "11996:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11995:25:0"
            },
            "scope": 1295,
            "src": "11946:485:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "private"
          },
          {
            "body": {
              "id": 973,
              "nodeType": "Block",
              "src": "12607:214:0",
              "statements": [
                {
                  "body": {
                    "id": 971,
                    "nodeType": "Block",
                    "src": "12659:156:0",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 959,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 952,
                                  "name": "assessorStage",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1368,
                                  "src": "12682:13:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                                    "typeString": "mapping(address => enum AssessmentData.Stage)"
                                  }
                                },
                                "id": 956,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 953,
                                    "name": "assessors",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1373,
                                    "src": "12696:9:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                      "typeString": "address[] storage ref"
                                    }
                                  },
                                  "id": 955,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 954,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 941,
                                    "src": "12706:1:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "12696:12:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "12682:27:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_Stage_$1364",
                                  "typeString": "enum AssessmentData.Stage"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_enum$_Stage_$1364",
                                  "typeString": "enum AssessmentData.Stage"
                                }
                              ],
                              "id": 951,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "12677:4:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": "uint"
                            },
                            "id": 957,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "12677:33:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 958,
                            "name": "_stage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 935,
                            "src": "12714:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "12677:43:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 970,
                        "nodeType": "IfStatement",
                        "src": "12673:132:0",
                        "trueBody": {
                          "id": 969,
                          "nodeType": "Block",
                          "src": "12722:83:0",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 963,
                                      "name": "assessors",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1373,
                                      "src": "12769:9:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                        "typeString": "address[] storage ref"
                                      }
                                    },
                                    "id": 965,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 964,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 941,
                                      "src": "12779:1:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "12769:12:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 966,
                                    "name": "_topic",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 937,
                                    "src": "12783:6:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_Note_$2799",
                                      "typeString": "enum FathomToken.Note"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_enum$_Note_$2799",
                                      "typeString": "enum FathomToken.Note"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 960,
                                    "name": "fathomToken",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1336,
                                    "src": "12740:11:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_FathomToken_$3062",
                                      "typeString": "contract FathomToken"
                                    }
                                  },
                                  "id": 962,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "emitNotification",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2851,
                                  "src": "12740:28:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_enum$_Note_$2799_$returns$__$",
                                    "typeString": "function (address,enum FathomToken.Note) external"
                                  }
                                },
                                "id": 967,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "12740:50:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 968,
                              "nodeType": "ExpressionStatement",
                              "src": "12740:50:0"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 947,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 944,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 941,
                      "src": "12632:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 945,
                        "name": "assessors",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1373,
                        "src": "12636:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 946,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "12636:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12632:20:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 972,
                  "initializationExpression": {
                    "assignments": [
                      941
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 941,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 972,
                        "src": "12622:6:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 940,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "12622:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 943,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 942,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12629:1:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "12622:8:0"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 949,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "12654:3:0",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 948,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 941,
                        "src": "12654:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 950,
                    "nodeType": "ExpressionStatement",
                    "src": "12654:3:0"
                  },
                  "nodeType": "ForStatement",
                  "src": "12617:198:0"
                }
              ]
            },
            "documentation": "@notice Triggers notification events with a given topic for all assessors in a given stage",
            "id": 974,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "notifyAssessors",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 938,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 935,
                  "name": "_stage",
                  "nodeType": "VariableDeclaration",
                  "scope": 974,
                  "src": "12561:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 934,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "12561:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 937,
                  "name": "_topic",
                  "nodeType": "VariableDeclaration",
                  "scope": 974,
                  "src": "12574:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Note_$2799",
                    "typeString": "enum FathomToken.Note"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 936,
                    "name": "FathomToken.Note",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2799,
                    "src": "12574:16:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Note_$2799",
                      "typeString": "enum FathomToken.Note"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12560:38:0"
            },
            "returnParameters": {
              "id": 939,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12607:0:0"
            },
            "scope": 1295,
            "src": "12536:285:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "private"
          },
          {
            "body": {
              "id": 1097,
              "nodeType": "Block",
              "src": "13079:1133:0",
              "statements": [
                {
                  "assignments": [
                    984
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 984,
                      "name": "finalScores",
                      "nodeType": "VariableDeclaration",
                      "scope": 1097,
                      "src": "13169:24:0",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
                        "typeString": "int256[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 982,
                          "name": "int",
                          "nodeType": "ElementaryTypeName",
                          "src": "13169:3:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 983,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "13169:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
                          "typeString": "int256[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 990,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 988,
                        "name": "done",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1350,
                        "src": "13206:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 987,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "13196:9:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_int256_$dyn_memory_$",
                        "typeString": "function (uint256) pure returns (int256[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 985,
                          "name": "int",
                          "nodeType": "ElementaryTypeName",
                          "src": "13200:3:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 986,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "13200:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
                          "typeString": "int256[]"
                        }
                      }
                    },
                    "id": 989,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13196:15:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_int256_$dyn_memory",
                      "typeString": "int256[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13169:42:0"
                },
                {
                  "assignments": [
                    992
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 992,
                      "name": "idx",
                      "nodeType": "VariableDeclaration",
                      "scope": 1097,
                      "src": "13221:8:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 991,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "13221:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 994,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 993,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "13231:1:0",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13221:11:0"
                },
                {
                  "body": {
                    "id": 1029,
                    "nodeType": "Block",
                    "src": "13286:166:0",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          },
                          "id": 1013,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 1006,
                              "name": "assessorStage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1368,
                              "src": "13304:13:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                                "typeString": "mapping(address => enum AssessmentData.Stage)"
                              }
                            },
                            "id": 1010,
                            "indexExpression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 1007,
                                "name": "assessors",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1373,
                                "src": "13318:9:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                  "typeString": "address[] storage ref"
                                }
                              },
                              "id": 1009,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 1008,
                                "name": "j",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 996,
                                "src": "13328:1:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "13318:12:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "13304:27:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1011,
                              "name": "Stage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1364,
                              "src": "13335:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                "typeString": "type(enum AssessmentData.Stage)"
                              }
                            },
                            "id": 1012,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "Done",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "13335:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "src": "13304:41:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 1028,
                        "nodeType": "IfStatement",
                        "src": "13300:142:0",
                        "trueBody": {
                          "id": 1027,
                          "nodeType": "Block",
                          "src": "13347:95:0",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 1022,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 1014,
                                    "name": "finalScores",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 984,
                                    "src": "13365:11:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
                                      "typeString": "int256[] memory"
                                    }
                                  },
                                  "id": 1016,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 1015,
                                    "name": "idx",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 992,
                                    "src": "13377:3:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "13365:16:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 1017,
                                    "name": "scores",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1381,
                                    "src": "13384:6:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_address_$_t_int128_$",
                                      "typeString": "mapping(address => int128)"
                                    }
                                  },
                                  "id": 1021,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 1018,
                                      "name": "assessors",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1373,
                                      "src": "13391:9:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                        "typeString": "address[] storage ref"
                                      }
                                    },
                                    "id": 1020,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 1019,
                                      "name": "j",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 996,
                                      "src": "13401:1:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "13391:12:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "13384:20:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int128",
                                    "typeString": "int128"
                                  }
                                },
                                "src": "13365:39:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "id": 1023,
                              "nodeType": "ExpressionStatement",
                              "src": "13365:39:0"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 1025,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "++",
                                "prefix": false,
                                "src": "13422:5:0",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "id": 1024,
                                  "name": "idx",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 992,
                                  "src": "13422:3:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 1026,
                              "nodeType": "ExpressionStatement",
                              "src": "13422:5:0"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1002,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 999,
                      "name": "j",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 996,
                      "src": "13259:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1000,
                        "name": "assessors",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1373,
                        "src": "13263:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 1001,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "13263:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "13259:20:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1030,
                  "initializationExpression": {
                    "assignments": [
                      996
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 996,
                        "name": "j",
                        "nodeType": "VariableDeclaration",
                        "scope": 1030,
                        "src": "13247:6:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 995,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "13247:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 998,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 997,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13256:1:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "13247:10:0"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 1004,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "13281:3:0",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 1003,
                        "name": "j",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 996,
                        "src": "13281:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 1005,
                    "nodeType": "ExpressionStatement",
                    "src": "13281:3:0"
                  },
                  "nodeType": "ForStatement",
                  "src": "13242:210:0"
                },
                {
                  "assignments": [
                    1032
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1032,
                      "name": "greatestClusterLength",
                      "nodeType": "VariableDeclaration",
                      "scope": 1097,
                      "src": "13461:26:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1031,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "13461:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1033,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13461:26:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1042,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "id": 1034,
                          "name": "finalScore",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1348,
                          "src": "13498:10:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 1035,
                          "name": "greatestClusterLength",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1032,
                          "src": "13510:21:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 1036,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "13497:35:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_int256_$_t_uint256_$",
                        "typeString": "tuple(int256,uint256)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1039,
                          "name": "finalScores",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 984,
                          "src": "13554:11:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
                            "typeString": "int256[] memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 1040,
                          "name": "CONSENT_RADIUS",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1316,
                          "src": "13567:14:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
                            "typeString": "int256[] memory"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 1037,
                          "name": "Math",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3284,
                          "src": "13535:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Math_$3284_$",
                            "typeString": "type(library Math)"
                          }
                        },
                        "id": 1038,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "getFinalScore",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3197,
                        "src": "13535:18:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_int256_$dyn_memory_ptr_$_t_uint256_$returns$_t_int256_$_t_uint256_$",
                          "typeString": "function (int256[] memory,uint256) pure returns (int256,uint256)"
                        }
                      },
                      "id": 1041,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13535:47:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_int256_$_t_uint256_$",
                        "typeString": "tuple(int256,uint256)"
                      }
                    },
                    "src": "13497:85:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1043,
                  "nodeType": "ExpressionStatement",
                  "src": "13497:85:0"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1048,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1044,
                      "name": "greatestClusterLength",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1032,
                      "src": "13683:21:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 1047,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 1045,
                        "name": "done",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1350,
                        "src": "13707:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "/",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "32",
                        "id": 1046,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13712:1:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_2_by_1",
                          "typeString": "int_const 2"
                        },
                        "value": "2"
                      },
                      "src": "13707:6:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "13683:30:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 1086,
                    "nodeType": "Block",
                    "src": "13910:211:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 1076,
                                      "name": "this",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6024,
                                      "src": "14059:4:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Assessment_$1295",
                                        "typeString": "contract Assessment"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_contract$_Assessment_$1295",
                                        "typeString": "contract Assessment"
                                      }
                                    ],
                                    "id": 1075,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "14051:7:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_address_$",
                                      "typeString": "type(address)"
                                    },
                                    "typeName": "address"
                                  },
                                  "id": 1077,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "14051:13:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1073,
                                  "name": "fathomToken",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1336,
                                  "src": "14029:11:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_FathomToken_$3062",
                                    "typeString": "contract FathomToken"
                                  }
                                },
                                "id": 1074,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "balanceOf",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 5581,
                                "src": "14029:21:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                                  "typeString": "function (address) view external returns (uint256)"
                                }
                              },
                              "id": 1078,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "14029:36:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 1070,
                              "name": "fathomToken",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1336,
                              "src": "14003:11:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_FathomToken_$3062",
                                "typeString": "contract FathomToken"
                              }
                            },
                            "id": 1072,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "destroyTokens",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3038,
                            "src": "14003:25:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256) external"
                            }
                          },
                          "id": 1079,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14003:63:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 1080,
                        "nodeType": "ExpressionStatement",
                        "src": "14003:63:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 1084,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 1081,
                            "name": "assessmentStage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1370,
                            "src": "14080:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1082,
                              "name": "Stage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1364,
                              "src": "14098:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                "typeString": "type(enum AssessmentData.Stage)"
                              }
                            },
                            "id": 1083,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "Burned",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "14098:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "src": "14080:30:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          }
                        },
                        "id": 1085,
                        "nodeType": "ExpressionStatement",
                        "src": "14080:30:0"
                      }
                    ]
                  },
                  "id": 1087,
                  "nodeType": "IfStatement",
                  "src": "13679:442:0",
                  "trueBody": {
                    "id": 1069,
                    "nodeType": "Block",
                    "src": "13715:189:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1050,
                              "name": "greatestClusterLength",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1032,
                              "src": "13736:21:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 1049,
                            "name": "payout",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1294,
                            "src": "13729:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256)"
                            }
                          },
                          "id": 1051,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "13729:29:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 1052,
                        "nodeType": "ExpressionStatement",
                        "src": "13729:29:0"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "id": 1055,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1053,
                            "name": "finalScore",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1348,
                            "src": "13776:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 1054,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "13789:1:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "13776:14:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 1068,
                        "nodeType": "IfStatement",
                        "src": "13772:122:0",
                        "trueBody": {
                          "id": 1067,
                          "nodeType": "Block",
                          "src": "13792:102:0",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 1059,
                                    "name": "assessee",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1338,
                                    "src": "13828:8:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 1064,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "id": 1061,
                                          "name": "finalScore",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1348,
                                          "src": "13843:10:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_int256",
                                            "typeString": "int256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_int256",
                                            "typeString": "int256"
                                          }
                                        ],
                                        "id": 1060,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "13838:4:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint256_$",
                                          "typeString": "type(uint256)"
                                        },
                                        "typeName": "uint"
                                      },
                                      "id": 1062,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "13838:16:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "*",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "id": 1063,
                                      "name": "greatestClusterLength",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1032,
                                      "src": "13857:21:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "src": "13838:40:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1056,
                                    "name": "concept",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1334,
                                    "src": "13810:7:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_Concept_$2247",
                                      "typeString": "contract Concept"
                                    }
                                  },
                                  "id": 1058,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "addMember",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1572,
                                  "src": "13810:17:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                                    "typeString": "function (address,uint256) external"
                                  }
                                },
                                "id": 1065,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "13810:69:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 1066,
                              "nodeType": "ExpressionStatement",
                              "src": "13810:69:0"
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1091,
                        "name": "assessee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1338,
                        "src": "14159:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1092,
                            "name": "FathomToken",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3062,
                            "src": "14169:11:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_FathomToken_$3062_$",
                              "typeString": "type(contract FathomToken)"
                            }
                          },
                          "id": 1093,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "Note",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2799,
                          "src": "14169:16:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Note_$2799_$",
                            "typeString": "type(enum FathomToken.Note)"
                          }
                        },
                        "id": 1094,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "AssessmentFinished",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "14169:35:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Note_$2799",
                          "typeString": "enum FathomToken.Note"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_enum$_Note_$2799",
                          "typeString": "enum FathomToken.Note"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1088,
                        "name": "fathomToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1336,
                        "src": "14130:11:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_FathomToken_$3062",
                          "typeString": "contract FathomToken"
                        }
                      },
                      "id": 1090,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "emitNotification",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2851,
                      "src": "14130:28:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_enum$_Note_$2799_$returns$__$",
                        "typeString": "function (address,enum FathomToken.Note) external"
                      }
                    },
                    "id": 1095,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14130:75:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1096,
                  "nodeType": "ExpressionStatement",
                  "src": "14130:75:0"
                }
              ]
            },
            "documentation": "@notice Calculates the outcome (pass/fail/invalid) of the assessment, triggers the\npayout and ,upon positive outcome, adds the assessee as a member to the concept",
            "id": 1098,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 977,
                      "name": "Stage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1364,
                      "src": "13067:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                        "typeString": "type(enum AssessmentData.Stage)"
                      }
                    },
                    "id": 978,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "Done",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "13067:10:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Stage_$1364",
                      "typeString": "enum AssessmentData.Stage"
                    }
                  }
                ],
                "id": 979,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 976,
                  "name": "onlyInStage",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 34,
                  "src": "13055:11:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Stage_$1364_$",
                    "typeString": "modifier (enum AssessmentData.Stage)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "13055:23:0"
              }
            ],
            "name": "calculateResult",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 975,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "13044:2:0"
            },
            "returnParameters": {
              "id": 980,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "13079:0:0"
            },
            "scope": 1295,
            "src": "13020:1192:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "private"
          },
          {
            "body": {
              "id": 1293,
              "nodeType": "Block",
              "src": "14454:1986:0",
              "statements": [
                {
                  "assignments": [
                    1108
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1108,
                      "name": "dissentBonus",
                      "nodeType": "VariableDeclaration",
                      "scope": 1293,
                      "src": "14547:17:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1107,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "14547:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1110,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 1109,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "14567:1:0",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "14547:21:0"
                },
                {
                  "assignments": [
                    1114
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1114,
                      "name": "inAssessor",
                      "nodeType": "VariableDeclaration",
                      "scope": 1293,
                      "src": "14659:24:0",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr",
                        "typeString": "bool[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 1112,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "14659:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 1113,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "14659:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr",
                          "typeString": "bool[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1121,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1118,
                          "name": "assessors",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1373,
                          "src": "14697:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_storage",
                            "typeString": "address[] storage ref"
                          }
                        },
                        "id": 1119,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "14697:16:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1117,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "14686:10:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bool_$dyn_memory_$",
                        "typeString": "function (uint256) pure returns (bool[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 1115,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "14690:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 1116,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "14690:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr",
                          "typeString": "bool[]"
                        }
                      }
                    },
                    "id": 1120,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14686:28:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bool_$dyn_memory",
                      "typeString": "bool[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "14659:55:0"
                },
                {
                  "assignments": [
                    1125
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1125,
                      "name": "inAssessorPayout",
                      "nodeType": "VariableDeclaration",
                      "scope": 1293,
                      "src": "14769:30:0",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 1123,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "14769:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 1124,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "14769:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1132,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1129,
                          "name": "assessors",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1373,
                          "src": "14813:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_storage",
                            "typeString": "address[] storage ref"
                          }
                        },
                        "id": 1130,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "14813:16:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1128,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "14802:10:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$",
                        "typeString": "function (uint256) pure returns (uint256[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 1126,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "14806:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 1127,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "14806:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      }
                    },
                    "id": 1131,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14802:28:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "14769:61:0"
                },
                {
                  "body": {
                    "id": 1236,
                    "nodeType": "Block",
                    "src": "15039:890:0",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          },
                          "id": 1151,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 1144,
                              "name": "assessorStage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1368,
                              "src": "15057:13:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                                "typeString": "mapping(address => enum AssessmentData.Stage)"
                              }
                            },
                            "id": 1148,
                            "indexExpression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 1145,
                                "name": "assessors",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1373,
                                "src": "15071:9:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                  "typeString": "address[] storage ref"
                                }
                              },
                              "id": 1147,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 1146,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1134,
                                "src": "15081:1:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "15071:12:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "15057:27:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1149,
                              "name": "Stage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1364,
                              "src": "15088:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                "typeString": "type(enum AssessmentData.Stage)"
                              }
                            },
                            "id": 1150,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "Done",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "15088:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "src": "15057:41:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 1235,
                        "nodeType": "IfStatement",
                        "src": "15053:866:0",
                        "trueBody": {
                          "id": 1234,
                          "nodeType": "Block",
                          "src": "15100:819:0",
                          "statements": [
                            {
                              "assignments": [
                                1153
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 1153,
                                  "name": "payoutValue",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 1234,
                                  "src": "15118:16:0",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "typeName": {
                                    "id": 1152,
                                    "name": "uint",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "15118:4:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "value": null,
                                  "visibility": "internal"
                                }
                              ],
                              "id": 1154,
                              "initialValue": null,
                              "nodeType": "VariableDeclarationStatement",
                              "src": "15118:16:0"
                            },
                            {
                              "assignments": [
                                1156
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 1156,
                                  "name": "dissenting",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 1234,
                                  "src": "15152:15:0",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  },
                                  "typeName": {
                                    "id": 1155,
                                    "name": "bool",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "15152:4:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "value": null,
                                  "visibility": "internal"
                                }
                              ],
                              "id": 1157,
                              "initialValue": null,
                              "nodeType": "VariableDeclarationStatement",
                              "src": "15152:15:0"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 1176,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "components": [
                                    {
                                      "argumentTypes": null,
                                      "id": 1158,
                                      "name": "payoutValue",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1153,
                                      "src": "15186:11:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 1159,
                                      "name": "dissenting",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1156,
                                      "src": "15199:10:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    }
                                  ],
                                  "id": 1160,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "TupleExpression",
                                  "src": "15185:25:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$",
                                    "typeString": "tuple(uint256,bool)"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_int256",
                                            "typeString": "int256"
                                          },
                                          "id": 1171,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                              "argumentTypes": null,
                                              "id": 1165,
                                              "name": "scores",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 1381,
                                              "src": "15258:6:0",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_address_$_t_int128_$",
                                                "typeString": "mapping(address => int128)"
                                              }
                                            },
                                            "id": 1169,
                                            "indexExpression": {
                                              "argumentTypes": null,
                                              "baseExpression": {
                                                "argumentTypes": null,
                                                "id": 1166,
                                                "name": "assessors",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1373,
                                                "src": "15265:9:0",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                  "typeString": "address[] storage ref"
                                                }
                                              },
                                              "id": 1168,
                                              "indexExpression": {
                                                "argumentTypes": null,
                                                "id": 1167,
                                                "name": "i",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1134,
                                                "src": "15275:1:0",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_uint256",
                                                  "typeString": "uint256"
                                                }
                                              },
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "nodeType": "IndexAccess",
                                              "src": "15265:12:0",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "15258:20:0",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_int128",
                                              "typeString": "int128"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": "-",
                                          "rightExpression": {
                                            "argumentTypes": null,
                                            "id": 1170,
                                            "name": "finalScore",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1348,
                                            "src": "15281:10:0",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_int256",
                                              "typeString": "int256"
                                            }
                                          },
                                          "src": "15258:33:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_int256",
                                            "typeString": "int256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_int256",
                                            "typeString": "int256"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 1163,
                                          "name": "Math",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 3284,
                                          "src": "15249:4:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_contract$_Math_$3284_$",
                                            "typeString": "type(library Math)"
                                          }
                                        },
                                        "id": 1164,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "abs",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 3283,
                                        "src": "15249:8:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_delegatecall_pure$_t_int256_$returns$_t_uint256_$",
                                          "typeString": "function (int256) pure returns (uint256)"
                                        }
                                      },
                                      "id": 1172,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "15249:43:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 1173,
                                      "name": "cost",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1346,
                                      "src": "15314:4:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 1174,
                                      "name": "CONSENT_RADIUS",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1316,
                                      "src": "15340:14:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1161,
                                      "name": "Math",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 3284,
                                      "src": "15213:4:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_contract$_Math_$3284_$",
                                        "typeString": "type(library Math)"
                                      }
                                    },
                                    "id": 1162,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "getPayout",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 3265,
                                    "src": "15213:14:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_bool_$",
                                      "typeString": "function (uint256,uint256,uint256) pure returns (uint256,bool)"
                                    }
                                  },
                                  "id": 1175,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "15213:159:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$",
                                    "typeString": "tuple(uint256,bool)"
                                  }
                                },
                                "src": "15185:187:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 1177,
                              "nodeType": "ExpressionStatement",
                              "src": "15185:187:0"
                            },
                            {
                              "condition": {
                                "argumentTypes": null,
                                "id": 1178,
                                "name": "dissenting",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1156,
                                "src": "15394:10:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": {
                                "id": 1232,
                                "nodeType": "Block",
                                "src": "15789:116:0",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1224,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 1220,
                                          "name": "inAssessor",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1114,
                                          "src": "15811:10:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr",
                                            "typeString": "bool[] memory"
                                          }
                                        },
                                        "id": 1222,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 1221,
                                          "name": "i",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1134,
                                          "src": "15822:1:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": true,
                                        "nodeType": "IndexAccess",
                                        "src": "15811:13:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "hexValue": "74727565",
                                        "id": 1223,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "bool",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "15827:4:0",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        },
                                        "value": "true"
                                      },
                                      "src": "15811:20:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "id": 1225,
                                    "nodeType": "ExpressionStatement",
                                    "src": "15811:20:0"
                                  },
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1230,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 1226,
                                          "name": "inAssessorPayout",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1125,
                                          "src": "15853:16:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                            "typeString": "uint256[] memory"
                                          }
                                        },
                                        "id": 1228,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 1227,
                                          "name": "i",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1134,
                                          "src": "15870:1:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": true,
                                        "nodeType": "IndexAccess",
                                        "src": "15853:19:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "id": 1229,
                                        "name": "payoutValue",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1153,
                                        "src": "15875:11:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "15853:33:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 1231,
                                    "nodeType": "ExpressionStatement",
                                    "src": "15853:33:0"
                                  }
                                ]
                              },
                              "id": 1233,
                              "nodeType": "IfStatement",
                              "src": "15390:515:0",
                              "trueBody": {
                                "id": 1219,
                                "nodeType": "Block",
                                "src": "15406:377:0",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1186,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 1179,
                                          "name": "assessorStage",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1368,
                                          "src": "15428:13:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                                            "typeString": "mapping(address => enum AssessmentData.Stage)"
                                          }
                                        },
                                        "id": 1183,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "id": 1180,
                                            "name": "assessors",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1373,
                                            "src": "15442:9:0",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                              "typeString": "address[] storage ref"
                                            }
                                          },
                                          "id": 1182,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "id": 1181,
                                            "name": "i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1134,
                                            "src": "15452:1:0",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "15442:12:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": true,
                                        "nodeType": "IndexAccess",
                                        "src": "15428:27:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_enum$_Stage_$1364",
                                          "typeString": "enum AssessmentData.Stage"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 1184,
                                          "name": "Stage",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1364,
                                          "src": "15458:5:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                            "typeString": "type(enum AssessmentData.Stage)"
                                          }
                                        },
                                        "id": 1185,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "memberName": "Dissent",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": null,
                                        "src": "15458:13:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_enum$_Stage_$1364",
                                          "typeString": "enum AssessmentData.Stage"
                                        }
                                      },
                                      "src": "15428:43:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_enum$_Stage_$1364",
                                        "typeString": "enum AssessmentData.Stage"
                                      }
                                    },
                                    "id": 1187,
                                    "nodeType": "ExpressionStatement",
                                    "src": "15428:43:0"
                                  },
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1192,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "id": 1188,
                                        "name": "dissentBonus",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1108,
                                        "src": "15493:12:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "+=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        },
                                        "id": 1191,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "id": 1189,
                                          "name": "cost",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1346,
                                          "src": "15509:4:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "-",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "id": 1190,
                                          "name": "payoutValue",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1153,
                                          "src": "15516:11:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "src": "15509:18:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "15493:34:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 1193,
                                    "nodeType": "ExpressionStatement",
                                    "src": "15493:34:0"
                                  },
                                  {
                                    "condition": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 1196,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "id": 1194,
                                        "name": "payoutValue",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1153,
                                        "src": "15553:11:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "30",
                                        "id": 1195,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "15567:1:0",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        },
                                        "value": "0"
                                      },
                                      "src": "15553:15:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "falseBody": null,
                                    "id": 1207,
                                    "nodeType": "IfStatement",
                                    "src": "15549:117:0",
                                    "trueBody": {
                                      "id": 1206,
                                      "nodeType": "Block",
                                      "src": "15570:96:0",
                                      "statements": [
                                        {
                                          "expression": {
                                            "argumentTypes": null,
                                            "arguments": [
                                              {
                                                "argumentTypes": null,
                                                "baseExpression": {
                                                  "argumentTypes": null,
                                                  "id": 1200,
                                                  "name": "assessors",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 1373,
                                                  "src": "15617:9:0",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                    "typeString": "address[] storage ref"
                                                  }
                                                },
                                                "id": 1202,
                                                "indexExpression": {
                                                  "argumentTypes": null,
                                                  "id": 1201,
                                                  "name": "i",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 1134,
                                                  "src": "15627:1:0",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                  }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "15617:12:0",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_address",
                                                  "typeString": "address"
                                                }
                                              },
                                              {
                                                "argumentTypes": null,
                                                "id": 1203,
                                                "name": "payoutValue",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1153,
                                                "src": "15631:11:0",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_uint256",
                                                  "typeString": "uint256"
                                                }
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_address",
                                                  "typeString": "address"
                                                },
                                                {
                                                  "typeIdentifier": "t_uint256",
                                                  "typeString": "uint256"
                                                }
                                              ],
                                              "expression": {
                                                "argumentTypes": null,
                                                "id": 1197,
                                                "name": "fathomToken",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1336,
                                                "src": "15596:11:0",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_contract$_FathomToken_$3062",
                                                  "typeString": "contract FathomToken"
                                                }
                                              },
                                              "id": 1199,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberName": "transfer",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 5569,
                                              "src": "15596:20:0",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                "typeString": "function (address,uint256) external returns (bool)"
                                              }
                                            },
                                            "id": 1204,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "15596:47:0",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bool",
                                              "typeString": "bool"
                                            }
                                          },
                                          "id": 1205,
                                          "nodeType": "ExpressionStatement",
                                          "src": "15596:47:0"
                                        }
                                      ]
                                    }
                                  },
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "id": 1211,
                                            "name": "assessors",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1373,
                                            "src": "15716:9:0",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                              "typeString": "address[] storage ref"
                                            }
                                          },
                                          "id": 1213,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "id": 1212,
                                            "name": "i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1134,
                                            "src": "15726:1:0",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "15716:12:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                          }
                                        },
                                        {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 1214,
                                              "name": "FathomToken",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 3062,
                                              "src": "15730:11:0",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_contract$_FathomToken_$3062_$",
                                                "typeString": "type(contract FathomToken)"
                                              }
                                            },
                                            "id": 1215,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "Note",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 2799,
                                            "src": "15730:16:0",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_enum$_Note_$2799_$",
                                              "typeString": "type(enum FathomToken.Note)"
                                            }
                                          },
                                          "id": 1216,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "memberName": "ConsensusReached",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": null,
                                          "src": "15730:33:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_enum$_Note_$2799",
                                            "typeString": "enum FathomToken.Note"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                          },
                                          {
                                            "typeIdentifier": "t_enum$_Note_$2799",
                                            "typeString": "enum FathomToken.Note"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 1208,
                                          "name": "fathomToken",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1336,
                                          "src": "15687:11:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_FathomToken_$3062",
                                            "typeString": "contract FathomToken"
                                          }
                                        },
                                        "id": 1210,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "emitNotification",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 2851,
                                        "src": "15687:28:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_enum$_Note_$2799_$returns$__$",
                                          "typeString": "function (address,enum FathomToken.Note) external"
                                        }
                                      },
                                      "id": 1217,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "15687:77:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_tuple$__$",
                                        "typeString": "tuple()"
                                      }
                                    },
                                    "id": 1218,
                                    "nodeType": "ExpressionStatement",
                                    "src": "15687:77:0"
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1140,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1137,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1134,
                      "src": "15012:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1138,
                        "name": "assessors",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1373,
                        "src": "15016:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 1139,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "15016:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15012:20:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1237,
                  "initializationExpression": {
                    "assignments": [
                      1134
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 1134,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 1237,
                        "src": "15000:6:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1133,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "15000:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 1136,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1135,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "15009:1:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "15000:10:0"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 1142,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "15034:3:0",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 1141,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1134,
                        "src": "15034:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 1143,
                    "nodeType": "ExpressionStatement",
                    "src": "15034:3:0"
                  },
                  "nodeType": "ForStatement",
                  "src": "14995:934:0"
                },
                {
                  "body": {
                    "id": 1280,
                    "nodeType": "Block",
                    "src": "16097:264:0",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 1249,
                            "name": "inAssessor",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1114,
                            "src": "16115:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr",
                              "typeString": "bool[] memory"
                            }
                          },
                          "id": 1251,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 1250,
                            "name": "j",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1239,
                            "src": "16126:1:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "16115:13:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 1279,
                        "nodeType": "IfStatement",
                        "src": "16111:240:0",
                        "trueBody": {
                          "id": 1278,
                          "nodeType": "Block",
                          "src": "16130:221:0",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 1255,
                                      "name": "assessors",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1373,
                                      "src": "16169:9:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                        "typeString": "address[] storage ref"
                                      }
                                    },
                                    "id": 1257,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 1256,
                                      "name": "j",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1239,
                                      "src": "16179:1:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "16169:12:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 1264,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "id": 1258,
                                        "name": "inAssessorPayout",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1125,
                                        "src": "16183:16:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                          "typeString": "uint256[] memory"
                                        }
                                      },
                                      "id": 1260,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "id": 1259,
                                        "name": "j",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1239,
                                        "src": "16200:1:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "16183:19:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "+",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 1263,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "id": 1261,
                                        "name": "dissentBonus",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1108,
                                        "src": "16205:12:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "/",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "id": 1262,
                                        "name": "_greatestClusterLength",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1100,
                                        "src": "16218:22:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "16205:35:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "src": "16183:57:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1252,
                                    "name": "fathomToken",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1336,
                                    "src": "16148:11:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_FathomToken_$3062",
                                      "typeString": "contract FathomToken"
                                    }
                                  },
                                  "id": 1254,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "transfer",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 5569,
                                  "src": "16148:20:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                    "typeString": "function (address,uint256) external returns (bool)"
                                  }
                                },
                                "id": 1265,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "16148:93:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "id": 1266,
                              "nodeType": "ExpressionStatement",
                              "src": "16148:93:0"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 1270,
                                      "name": "assessors",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1373,
                                      "src": "16288:9:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                        "typeString": "address[] storage ref"
                                      }
                                    },
                                    "id": 1272,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 1271,
                                      "name": "j",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1239,
                                      "src": "16298:1:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "16288:12:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 1273,
                                        "name": "FathomToken",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3062,
                                        "src": "16302:11:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_contract$_FathomToken_$3062_$",
                                          "typeString": "type(contract FathomToken)"
                                        }
                                      },
                                      "id": 1274,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "Note",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 2799,
                                      "src": "16302:16:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_enum$_Note_$2799_$",
                                        "typeString": "type(enum FathomToken.Note)"
                                      }
                                    },
                                    "id": 1275,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "memberName": "ConsensusReached",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": null,
                                    "src": "16302:33:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_Note_$2799",
                                      "typeString": "enum FathomToken.Note"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_enum$_Note_$2799",
                                      "typeString": "enum FathomToken.Note"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1267,
                                    "name": "fathomToken",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1336,
                                    "src": "16259:11:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_FathomToken_$3062",
                                      "typeString": "contract FathomToken"
                                    }
                                  },
                                  "id": 1269,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "emitNotification",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2851,
                                  "src": "16259:28:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_enum$_Note_$2799_$returns$__$",
                                    "typeString": "function (address,enum FathomToken.Note) external"
                                  }
                                },
                                "id": 1276,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "16259:77:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 1277,
                              "nodeType": "ExpressionStatement",
                              "src": "16259:77:0"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1245,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1242,
                      "name": "j",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1239,
                      "src": "16063:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1243,
                        "name": "inAssessorPayout",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1125,
                        "src": "16067:16:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 1244,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "16067:23:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "16063:27:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1281,
                  "initializationExpression": {
                    "assignments": [
                      1239
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 1239,
                        "name": "j",
                        "nodeType": "VariableDeclaration",
                        "scope": 1281,
                        "src": "16051:6:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1238,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "16051:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 1241,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1240,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "16060:1:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "16051:10:0"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 1247,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "16092:3:0",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 1246,
                        "name": "j",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1239,
                        "src": "16092:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 1248,
                    "nodeType": "ExpressionStatement",
                    "src": "16092:3:0"
                  },
                  "nodeType": "ForStatement",
                  "src": "16046:315:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1288,
                                "name": "this",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6024,
                                "src": "16426:4:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Assessment_$1295",
                                  "typeString": "contract Assessment"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Assessment_$1295",
                                  "typeString": "contract Assessment"
                                }
                              ],
                              "id": 1287,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "16418:7:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 1289,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "16418:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1285,
                            "name": "fathomToken",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1336,
                            "src": "16396:11:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_FathomToken_$3062",
                              "typeString": "contract FathomToken"
                            }
                          },
                          "id": 1286,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "balanceOf",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5581,
                          "src": "16396:21:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                            "typeString": "function (address) view external returns (uint256)"
                          }
                        },
                        "id": 1290,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16396:36:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1282,
                        "name": "fathomToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1336,
                        "src": "16370:11:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_FathomToken_$3062",
                          "typeString": "contract FathomToken"
                        }
                      },
                      "id": 1284,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "destroyTokens",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3038,
                      "src": "16370:25:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 1291,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16370:63:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1292,
                  "nodeType": "ExpressionStatement",
                  "src": "16370:63:0"
                }
              ]
            },
            "documentation": "@notice Payout the assessors stake and proportional reward, redistribute\nfrom dissenting assessors and burn all remaining tokens.",
            "id": 1294,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 1103,
                      "name": "Stage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1364,
                      "src": "14442:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                        "typeString": "type(enum AssessmentData.Stage)"
                      }
                    },
                    "id": 1104,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "Done",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "14442:10:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Stage_$1364",
                      "typeString": "enum AssessmentData.Stage"
                    }
                  }
                ],
                "id": 1105,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1102,
                  "name": "onlyInStage",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 34,
                  "src": "14430:11:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Stage_$1364_$",
                    "typeString": "modifier (enum AssessmentData.Stage)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "14430:23:0"
              }
            ],
            "name": "payout",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1101,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1100,
                  "name": "_greatestClusterLength",
                  "nodeType": "VariableDeclaration",
                  "scope": 1294,
                  "src": "14393:27:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1099,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "14393:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14392:29:0"
            },
            "returnParameters": {
              "id": 1106,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "14454:0:0"
            },
            "scope": 1295,
            "src": "14377:2063:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "private"
          }
        ],
        "scope": 1296,
        "src": "324:16118:0"
      }
    ],
    "src": "0:16443:0"
  },
  "legacyAST": {
    "absolutePath": "/builds/fathom/assess/contracts/contracts/Assessment.sol",
    "exportedSymbols": {
      "Assessment": [
        1295
      ]
    },
    "id": 1296,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1,
        "literals": [
          "solidity",
          "^",
          "0.5",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:0"
      },
      {
        "absolutePath": "/builds/fathom/assess/contracts/contracts/Math.sol",
        "file": "./Math.sol",
        "id": 2,
        "nodeType": "ImportDirective",
        "scope": 1296,
        "sourceUnit": 3285,
        "src": "25:20:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/builds/fathom/assess/contracts/contracts/Concept.sol",
        "file": "./Concept.sol",
        "id": 3,
        "nodeType": "ImportDirective",
        "scope": 1296,
        "sourceUnit": 2248,
        "src": "46:23:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/builds/fathom/assess/contracts/contracts/FathomToken.sol",
        "file": "./FathomToken.sol",
        "id": 4,
        "nodeType": "ImportDirective",
        "scope": 1296,
        "sourceUnit": 3063,
        "src": "70:27:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/builds/fathom/assess/contracts/contracts/AssessmentData.sol",
        "file": "./AssessmentData.sol",
        "id": 5,
        "nodeType": "ImportDirective",
        "scope": 1296,
        "sourceUnit": 1439,
        "src": "98:30:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 6,
              "name": "AssessmentData",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1382,
              "src": "347:14:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_AssessmentData_$1382",
                "typeString": "contract AssessmentData"
              }
            },
            "id": 7,
            "nodeType": "InheritanceSpecifier",
            "src": "347:14:0"
          }
        ],
        "contractDependencies": [
          1317,
          1326,
          1382,
          5139
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 1295,
        "linearizedBaseContracts": [
          1295,
          1382,
          1317,
          1326,
          5139
        ],
        "name": "Assessment",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 20,
              "nodeType": "Block",
              "src": "391:90:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 15,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 10,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5967,
                            "src": "409:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 11,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "409:10:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 13,
                              "name": "concept",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1334,
                              "src": "431:7:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Concept_$2247",
                                "typeString": "contract Concept"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_Concept_$2247",
                                "typeString": "contract Concept"
                              }
                            ],
                            "id": 12,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "423:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 14,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "423:16:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "409:30:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "436f6e6365707420616363657373206f6e6c79",
                        "id": 16,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "441:21:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_428a6fe69f8b45e30a1960be85beb438081af458f3130d47043a1c786f83477d",
                          "typeString": "literal_string \"Concept access only\""
                        },
                        "value": "Concept access only"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_428a6fe69f8b45e30a1960be85beb438081af458f3130d47043a1c786f83477d",
                          "typeString": "literal_string \"Concept access only\""
                        }
                      ],
                      "id": 9,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5970,
                        5971
                      ],
                      "referencedDeclaration": 5971,
                      "src": "401:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 17,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "401:62:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18,
                  "nodeType": "ExpressionStatement",
                  "src": "401:62:0"
                },
                {
                  "id": 19,
                  "nodeType": "PlaceholderStatement",
                  "src": "473:1:0"
                }
              ]
            },
            "documentation": null,
            "id": 21,
            "name": "onlyConcept",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 8,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "388:2:0"
            },
            "src": "368:113:0",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 33,
              "nodeType": "Block",
              "src": "522:102:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Stage_$1364",
                          "typeString": "enum AssessmentData.Stage"
                        },
                        "id": 28,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 26,
                          "name": "assessmentStage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1370,
                          "src": "540:15:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 27,
                          "name": "_stage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23,
                          "src": "559:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          }
                        },
                        "src": "540:25:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "43616c6c656420647572696e672077726f6e67206173736573736d656e74207374616765",
                        "id": 29,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "567:38:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_3fc9bf6611ed249ab3252e9f538e78a8f6bc41403b9cdc771c1ef8139de690bc",
                          "typeString": "literal_string \"Called during wrong assessment stage\""
                        },
                        "value": "Called during wrong assessment stage"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_3fc9bf6611ed249ab3252e9f538e78a8f6bc41403b9cdc771c1ef8139de690bc",
                          "typeString": "literal_string \"Called during wrong assessment stage\""
                        }
                      ],
                      "id": 25,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5970,
                        5971
                      ],
                      "referencedDeclaration": 5971,
                      "src": "532:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 30,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "532:74:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 31,
                  "nodeType": "ExpressionStatement",
                  "src": "532:74:0"
                },
                {
                  "id": 32,
                  "nodeType": "PlaceholderStatement",
                  "src": "616:1:0"
                }
              ]
            },
            "documentation": null,
            "id": 34,
            "name": "onlyInStage",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 24,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23,
                  "name": "_stage",
                  "nodeType": "VariableDeclaration",
                  "scope": 34,
                  "src": "508:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Stage_$1364",
                    "typeString": "enum AssessmentData.Stage"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 22,
                    "name": "Stage",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1364,
                    "src": "508:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Stage_$1364",
                      "typeString": "enum AssessmentData.Stage"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "507:14:0"
            },
            "src": "487:137:0",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 131,
              "nodeType": "Block",
              "src": "1094:958:0",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 43,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 41,
                      "name": "now",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5969,
                      "src": "1222:3:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 42,
                      "name": "checkpoint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1340,
                      "src": "1228:10:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1222:16:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 48,
                  "nodeType": "IfStatement",
                  "src": "1218:72:0",
                  "trueBody": {
                    "id": 47,
                    "nodeType": "Block",
                    "src": "1240:50:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 44,
                            "name": "cancelAssessment",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 836,
                            "src": "1261:16:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                              "typeString": "function ()"
                            }
                          },
                          "id": 45,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1261:18:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "functionReturnParameters": 40,
                        "id": 46,
                        "nodeType": "Return",
                        "src": "1254:25:0"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 73,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "id": 60,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Stage_$1364",
                          "typeString": "enum AssessmentData.Stage"
                        },
                        "id": 55,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 49,
                            "name": "assessorStage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1368,
                            "src": "1354:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                              "typeString": "mapping(address => enum AssessmentData.Stage)"
                            }
                          },
                          "id": 52,
                          "indexExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 50,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5967,
                              "src": "1368:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 51,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1368:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "1354:25:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 53,
                            "name": "Stage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1364,
                            "src": "1383:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                              "typeString": "type(enum AssessmentData.Stage)"
                            }
                          },
                          "id": 54,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "Called",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1383:12:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          }
                        },
                        "src": "1354:41:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&&",
                      "rightExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 59,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 56,
                            "name": "assessors",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1373,
                            "src": "1411:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage",
                              "typeString": "address[] storage ref"
                            }
                          },
                          "id": 57,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1411:16:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 58,
                          "name": "size",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1344,
                          "src": "1430:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "1411:23:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "src": "1354:80:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 63,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5967,
                            "src": "1474:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 64,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1474:10:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 66,
                              "name": "this",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6024,
                              "src": "1494:4:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Assessment_$1295",
                                "typeString": "contract Assessment"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_Assessment_$1295",
                                "typeString": "contract Assessment"
                              }
                            ],
                            "id": 65,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "1486:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 67,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1486:13:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 68,
                          "name": "cost",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1346,
                          "src": "1501:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 70,
                              "name": "concept",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1334,
                              "src": "1515:7:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Concept_$2247",
                                "typeString": "contract Concept"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_Concept_$2247",
                                "typeString": "contract Concept"
                              }
                            ],
                            "id": 69,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "1507:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 71,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1507:16:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          },
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 61,
                          "name": "fathomToken",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1336,
                          "src": "1450:11:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_FathomToken_$3062",
                            "typeString": "contract FathomToken"
                          }
                        },
                        "id": 62,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "takeBalance",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2932,
                        "src": "1450:23:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_$returns$_t_bool_$",
                          "typeString": "function (address,address,uint256,address) external returns (bool)"
                        }
                      },
                      "id": 72,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1450:74:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "1354:170:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 100,
                  "nodeType": "IfStatement",
                  "src": "1350:376:0",
                  "trueBody": {
                    "id": 99,
                    "nodeType": "Block",
                    "src": "1526:200:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 77,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5967,
                                "src": "1555:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 78,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1555:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 74,
                              "name": "assessors",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1373,
                              "src": "1540:9:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                "typeString": "address[] storage ref"
                              }
                            },
                            "id": 76,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "push",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1540:14:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$",
                              "typeString": "function (address) returns (uint256)"
                            }
                          },
                          "id": 79,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1540:26:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 80,
                        "nodeType": "ExpressionStatement",
                        "src": "1540:26:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 87,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 81,
                              "name": "assessorStage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1368,
                              "src": "1580:13:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                                "typeString": "mapping(address => enum AssessmentData.Stage)"
                              }
                            },
                            "id": 84,
                            "indexExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 82,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5967,
                                "src": "1594:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 83,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1594:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "1580:25:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 85,
                              "name": "Stage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1364,
                              "src": "1608:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                "typeString": "type(enum AssessmentData.Stage)"
                              }
                            },
                            "id": 86,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "Confirmed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1608:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "src": "1580:43:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          }
                        },
                        "id": 88,
                        "nodeType": "ExpressionStatement",
                        "src": "1580:43:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 92,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5967,
                                "src": "1666:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 93,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1666:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 94,
                                  "name": "FathomToken",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3062,
                                  "src": "1678:11:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_FathomToken_$3062_$",
                                    "typeString": "type(contract FathomToken)"
                                  }
                                },
                                "id": 95,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "Note",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2799,
                                "src": "1678:16:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_Note_$2799_$",
                                  "typeString": "type(enum FathomToken.Note)"
                                }
                              },
                              "id": 96,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "ConfirmedAsAssessor",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1678:36:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_Note_$2799",
                                "typeString": "enum FathomToken.Note"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              },
                              {
                                "typeIdentifier": "t_enum$_Note_$2799",
                                "typeString": "enum FathomToken.Note"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 89,
                              "name": "fathomToken",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1336,
                              "src": "1637:11:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_FathomToken_$3062",
                                "typeString": "contract FathomToken"
                              }
                            },
                            "id": 91,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "emitNotification",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2851,
                            "src": "1637:28:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_enum$_Note_$2799_$returns$__$",
                              "typeString": "function (address,enum FathomToken.Note) external"
                            }
                          },
                          "id": 97,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1637:78:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 98,
                        "nodeType": "ExpressionStatement",
                        "src": "1637:78:0"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 104,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 101,
                        "name": "assessors",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1373,
                        "src": "1784:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 102,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1784:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 103,
                      "name": "size",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1344,
                      "src": "1804:4:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1784:24:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 130,
                  "nodeType": "IfStatement",
                  "src": "1780:266:0",
                  "trueBody": {
                    "id": 129,
                    "nodeType": "Block",
                    "src": "1810:236:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 107,
                                    "name": "Stage",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1364,
                                    "src": "1845:5:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                      "typeString": "type(enum AssessmentData.Stage)"
                                    }
                                  },
                                  "id": 108,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Confirmed",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "1845:15:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Stage_$1364",
                                    "typeString": "enum AssessmentData.Stage"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_enum$_Stage_$1364",
                                    "typeString": "enum AssessmentData.Stage"
                                  }
                                ],
                                "id": 106,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "1840:4:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": "uint"
                              },
                              "id": 109,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1840:21:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 110,
                                  "name": "FathomToken",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3062,
                                  "src": "1863:11:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_FathomToken_$3062_$",
                                    "typeString": "type(contract FathomToken)"
                                  }
                                },
                                "id": 111,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "Note",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2799,
                                "src": "1863:16:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_Note_$2799_$",
                                  "typeString": "type(enum FathomToken.Note)"
                                }
                              },
                              "id": 112,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "AssessmentHasBegun",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1863:35:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_Note_$2799",
                                "typeString": "enum FathomToken.Note"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_enum$_Note_$2799",
                                "typeString": "enum FathomToken.Note"
                              }
                            ],
                            "id": 105,
                            "name": "notifyAssessors",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 974,
                            "src": "1824:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_enum$_Note_$2799_$returns$__$",
                              "typeString": "function (uint256,enum FathomToken.Note)"
                            }
                          },
                          "id": 113,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1824:75:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 114,
                        "nodeType": "ExpressionStatement",
                        "src": "1824:75:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 118,
                              "name": "assessee",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1338,
                              "src": "1942:8:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 119,
                                  "name": "FathomToken",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3062,
                                  "src": "1952:11:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_FathomToken_$3062_$",
                                    "typeString": "type(contract FathomToken)"
                                  }
                                },
                                "id": 120,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "Note",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2799,
                                "src": "1952:16:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_Note_$2799_$",
                                  "typeString": "type(enum FathomToken.Note)"
                                }
                              },
                              "id": 121,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "AssessmentHasBegun",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1952:35:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_Note_$2799",
                                "typeString": "enum FathomToken.Note"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_enum$_Note_$2799",
                                "typeString": "enum FathomToken.Note"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 115,
                              "name": "fathomToken",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1336,
                              "src": "1913:11:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_FathomToken_$3062",
                                "typeString": "contract FathomToken"
                              }
                            },
                            "id": 117,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "emitNotification",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2851,
                            "src": "1913:28:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_enum$_Note_$2799_$returns$__$",
                              "typeString": "function (address,enum FathomToken.Note) external"
                            }
                          },
                          "id": 122,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1913:75:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 123,
                        "nodeType": "ExpressionStatement",
                        "src": "1913:75:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 127,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 124,
                            "name": "assessmentStage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1370,
                            "src": "2002:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 125,
                              "name": "Stage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1364,
                              "src": "2020:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                "typeString": "type(enum AssessmentData.Stage)"
                              }
                            },
                            "id": 126,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "Confirmed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "2020:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "src": "2002:33:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          }
                        },
                        "id": 128,
                        "nodeType": "ExpressionStatement",
                        "src": "2002:33:0"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@notice Adds a called assessor to the assessment by taking their stake\n@dev The assessor's tokens are sent to the address of the assessment. Also, if the\nconfirm-period is over, anyone's call to this function will cancel the assessment.",
            "id": 132,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 37,
                      "name": "Stage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1364,
                      "src": "1080:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                        "typeString": "type(enum AssessmentData.Stage)"
                      }
                    },
                    "id": 38,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "Called",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "1080:12:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Stage_$1364",
                      "typeString": "enum AssessmentData.Stage"
                    }
                  }
                ],
                "id": 39,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 36,
                  "name": "onlyInStage",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 34,
                  "src": "1068:11:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Stage_$1364_$",
                    "typeString": "modifier (enum AssessmentData.Stage)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1068:25:0"
              }
            ],
            "name": "confirmAssessor",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 35,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1058:2:0"
            },
            "returnParameters": {
              "id": 40,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1094:0:0"
            },
            "scope": 1295,
            "src": "1034:1018:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 219,
              "nodeType": "Block",
              "src": "2374:785:0",
              "statements": [
                {
                  "assignments": [
                    142
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 142,
                      "name": "continueAssessment",
                      "nodeType": "VariableDeclaration",
                      "scope": 219,
                      "src": "2463:23:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 141,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "2463:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 144,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 143,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "2489:4:0",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2463:30:0"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 147,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 145,
                      "name": "now",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5969,
                      "src": "2507:3:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 146,
                      "name": "endTime",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1342,
                      "src": "2513:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2507:13:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 156,
                  "nodeType": "IfStatement",
                  "src": "2503:92:0",
                  "trueBody": {
                    "id": 155,
                    "nodeType": "Block",
                    "src": "2522:73:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 153,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 148,
                            "name": "continueAssessment",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 142,
                            "src": "2536:18:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 150,
                                  "name": "Stage",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1364,
                                  "src": "2568:5:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                    "typeString": "type(enum AssessmentData.Stage)"
                                  }
                                },
                                "id": 151,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberName": "Confirmed",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "2568:15:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_Stage_$1364",
                                  "typeString": "enum AssessmentData.Stage"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_enum$_Stage_$1364",
                                  "typeString": "enum AssessmentData.Stage"
                                }
                              ],
                              "id": 149,
                              "name": "burnStakes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 933,
                              "src": "2557:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_Stage_$1364_$returns$_t_bool_$",
                                "typeString": "function (enum AssessmentData.Stage) returns (bool)"
                              }
                            },
                            "id": 152,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2557:27:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "2536:48:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 154,
                        "nodeType": "ExpressionStatement",
                        "src": "2536:48:0"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 159,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 157,
                      "name": "continueAssessment",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 142,
                      "src": "2608:18:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 158,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2630:5:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "src": "2608:27:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 161,
                  "nodeType": "IfStatement",
                  "src": "2604:40:0",
                  "trueBody": {
                    "expression": null,
                    "functionReturnParameters": 140,
                    "id": 160,
                    "nodeType": "Return",
                    "src": "2637:7:0"
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Stage_$1364",
                      "typeString": "enum AssessmentData.Stage"
                    },
                    "id": 168,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 162,
                        "name": "assessorStage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1368,
                        "src": "2658:13:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                          "typeString": "mapping(address => enum AssessmentData.Stage)"
                        }
                      },
                      "id": 165,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 163,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5967,
                          "src": "2672:3:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 164,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2672:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "2658:25:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Stage_$1364",
                        "typeString": "enum AssessmentData.Stage"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 166,
                        "name": "Stage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1364,
                        "src": "2687:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                          "typeString": "type(enum AssessmentData.Stage)"
                        }
                      },
                      "id": 167,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Confirmed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2687:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Stage_$1364",
                        "typeString": "enum AssessmentData.Stage"
                      }
                    },
                    "src": "2658:44:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 188,
                  "nodeType": "IfStatement",
                  "src": "2654:179:0",
                  "trueBody": {
                    "id": 187,
                    "nodeType": "Block",
                    "src": "2704:129:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 174,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 169,
                              "name": "commits",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1377,
                              "src": "2718:7:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_bytes32_$",
                                "typeString": "mapping(address => bytes32)"
                              }
                            },
                            "id": 172,
                            "indexExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 170,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5967,
                                "src": "2726:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 171,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "2726:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "2718:19:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 173,
                            "name": "_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 134,
                            "src": "2740:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "2718:27:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 175,
                        "nodeType": "ExpressionStatement",
                        "src": "2718:27:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 182,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 176,
                              "name": "assessorStage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1368,
                              "src": "2759:13:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                                "typeString": "mapping(address => enum AssessmentData.Stage)"
                              }
                            },
                            "id": 179,
                            "indexExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 177,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5967,
                                "src": "2773:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 178,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "2773:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "2759:25:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 180,
                              "name": "Stage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1364,
                              "src": "2787:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                "typeString": "type(enum AssessmentData.Stage)"
                              }
                            },
                            "id": 181,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "Committed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "2787:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "src": "2759:43:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          }
                        },
                        "id": 183,
                        "nodeType": "ExpressionStatement",
                        "src": "2759:43:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 185,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "++",
                          "prefix": false,
                          "src": "2816:6:0",
                          "subExpression": {
                            "argumentTypes": null,
                            "id": 184,
                            "name": "done",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1350,
                            "src": "2816:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 186,
                        "nodeType": "ExpressionStatement",
                        "src": "2816:6:0"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 191,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 189,
                      "name": "done",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1350,
                      "src": "2928:4:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 190,
                      "name": "size",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1344,
                      "src": "2936:4:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2928:12:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 218,
                  "nodeType": "IfStatement",
                  "src": "2924:229:0",
                  "trueBody": {
                    "id": 217,
                    "nodeType": "Block",
                    "src": "2942:211:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 196,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 192,
                            "name": "checkpoint",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1340,
                            "src": "2956:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 195,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 193,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5969,
                              "src": "2969:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 194,
                              "name": "CHALLENGE_PERIOD",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1313,
                              "src": "2975:16:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "2969:22:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2956:35:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 197,
                        "nodeType": "ExpressionStatement",
                        "src": "2956:35:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 200,
                                    "name": "Stage",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1364,
                                    "src": "3026:5:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                      "typeString": "type(enum AssessmentData.Stage)"
                                    }
                                  },
                                  "id": 201,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Committed",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "3026:15:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Stage_$1364",
                                    "typeString": "enum AssessmentData.Stage"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_enum$_Stage_$1364",
                                    "typeString": "enum AssessmentData.Stage"
                                  }
                                ],
                                "id": 199,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "3021:4:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": "uint"
                              },
                              "id": 202,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3021:21:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 203,
                                  "name": "FathomToken",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3062,
                                  "src": "3044:11:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_FathomToken_$3062_$",
                                    "typeString": "type(contract FathomToken)"
                                  }
                                },
                                "id": 204,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "Note",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2799,
                                "src": "3044:16:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_Note_$2799_$",
                                  "typeString": "type(enum FathomToken.Note)"
                                }
                              },
                              "id": 205,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "RevealScore",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "3044:28:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_Note_$2799",
                                "typeString": "enum FathomToken.Note"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_enum$_Note_$2799",
                                "typeString": "enum FathomToken.Note"
                              }
                            ],
                            "id": 198,
                            "name": "notifyAssessors",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 974,
                            "src": "3005:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_enum$_Note_$2799_$returns$__$",
                              "typeString": "function (uint256,enum FathomToken.Note)"
                            }
                          },
                          "id": 206,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3005:68:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 207,
                        "nodeType": "ExpressionStatement",
                        "src": "3005:68:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 210,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 208,
                            "name": "done",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1350,
                            "src": "3087:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 209,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3094:1:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "3087:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 211,
                        "nodeType": "ExpressionStatement",
                        "src": "3087:8:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 215,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 212,
                            "name": "assessmentStage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1370,
                            "src": "3109:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 213,
                              "name": "Stage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1364,
                              "src": "3127:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                "typeString": "type(enum AssessmentData.Stage)"
                              }
                            },
                            "id": 214,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "Committed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "3127:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "src": "3109:33:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          }
                        },
                        "id": 216,
                        "nodeType": "ExpressionStatement",
                        "src": "3109:33:0"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@notice Called by assessors to commit a (hashed) score\n@dev If this function is called (by anyone) after the end of the commit phase,\nit will burn all non-committed assessors and cancel or advance the assessment.",
            "id": 220,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 137,
                      "name": "Stage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1364,
                      "src": "2357:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                        "typeString": "type(enum AssessmentData.Stage)"
                      }
                    },
                    "id": 138,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "Confirmed",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "2357:15:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Stage_$1364",
                      "typeString": "enum AssessmentData.Stage"
                    }
                  }
                ],
                "id": 139,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 136,
                  "name": "onlyInStage",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 34,
                  "src": "2345:11:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Stage_$1364_$",
                    "typeString": "modifier (enum AssessmentData.Stage)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2345:28:0"
              }
            ],
            "name": "commit",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 135,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 134,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 220,
                  "src": "2323:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 133,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2323:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2322:15:0"
            },
            "returnParameters": {
              "id": 140,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2374:0:0"
            },
            "scope": 1295,
            "src": "2307:852:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 281,
              "nodeType": "Block",
              "src": "3448:431:0",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Stage_$1364",
                      "typeString": "enum AssessmentData.Stage"
                    },
                    "id": 234,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 229,
                        "name": "assessorStage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1368,
                        "src": "3462:13:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                          "typeString": "mapping(address => enum AssessmentData.Stage)"
                        }
                      },
                      "id": 231,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 230,
                        "name": "_assessor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 226,
                        "src": "3476:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "3462:24:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Stage_$1364",
                        "typeString": "enum AssessmentData.Stage"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 232,
                        "name": "Stage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1364,
                        "src": "3490:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                          "typeString": "type(enum AssessmentData.Stage)"
                        }
                      },
                      "id": 233,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Committed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "3490:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Stage_$1364",
                        "typeString": "enum AssessmentData.Stage"
                      }
                    },
                    "src": "3462:43:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 280,
                  "nodeType": "IfStatement",
                  "src": "3458:415:0",
                  "trueBody": {
                    "id": 279,
                    "nodeType": "Block",
                    "src": "3507:366:0",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 245,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 235,
                              "name": "commits",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1377,
                              "src": "3525:7:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_bytes32_$",
                                "typeString": "mapping(address => bytes32)"
                              }
                            },
                            "id": 237,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 236,
                              "name": "_assessor",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 226,
                              "src": "3533:9:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3525:18:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 241,
                                    "name": "_score",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 222,
                                    "src": "3574:6:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int128",
                                      "typeString": "int128"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 242,
                                    "name": "_salt",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 224,
                                    "src": "3582:5:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_int128",
                                      "typeString": "int128"
                                    },
                                    {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 239,
                                    "name": "abi",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5954,
                                    "src": "3557:3:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_abi",
                                      "typeString": "abi"
                                    }
                                  },
                                  "id": 240,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "encodePacked",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "3557:16:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                    "typeString": "function () pure returns (bytes memory)"
                                  }
                                },
                                "id": 243,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3557:31:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "id": 238,
                              "name": "keccak256",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5961,
                              "src": "3547:9:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                "typeString": "function (bytes memory) pure returns (bytes32)"
                              }
                            },
                            "id": 244,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3547:42:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "3525:64:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 270,
                        "nodeType": "IfStatement",
                        "src": "3521:248:0",
                        "trueBody": {
                          "id": 269,
                          "nodeType": "Block",
                          "src": "3591:178:0",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 249,
                                      "name": "msg",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5967,
                                      "src": "3630:3:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_magic_message",
                                        "typeString": "msg"
                                      }
                                    },
                                    "id": 250,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "sender",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": null,
                                    "src": "3630:10:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address_payable",
                                      "typeString": "address payable"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 253,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "id": 251,
                                      "name": "cost",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1346,
                                      "src": "3642:4:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "/",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "32",
                                      "id": 252,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "3647:1:0",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_2_by_1",
                                        "typeString": "int_const 2"
                                      },
                                      "value": "2"
                                    },
                                    "src": "3642:6:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address_payable",
                                      "typeString": "address payable"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 246,
                                    "name": "fathomToken",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1336,
                                    "src": "3609:11:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_FathomToken_$3062",
                                      "typeString": "contract FathomToken"
                                    }
                                  },
                                  "id": 248,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "transfer",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 5569,
                                  "src": "3609:20:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                    "typeString": "function (address,uint256) external returns (bool)"
                                  }
                                },
                                "id": 254,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3609:40:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "id": 255,
                              "nodeType": "ExpressionStatement",
                              "src": "3609:40:0"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 261,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 256,
                                    "name": "assessorStage",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1368,
                                    "src": "3667:13:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                                      "typeString": "mapping(address => enum AssessmentData.Stage)"
                                    }
                                  },
                                  "id": 258,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 257,
                                    "name": "_assessor",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 226,
                                    "src": "3681:9:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "3667:24:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Stage_$1364",
                                    "typeString": "enum AssessmentData.Stage"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 259,
                                    "name": "Stage",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1364,
                                    "src": "3694:5:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                      "typeString": "type(enum AssessmentData.Stage)"
                                    }
                                  },
                                  "id": 260,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Burned",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "3694:12:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Stage_$1364",
                                    "typeString": "enum AssessmentData.Stage"
                                  }
                                },
                                "src": "3667:39:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_Stage_$1364",
                                  "typeString": "enum AssessmentData.Stage"
                                }
                              },
                              "id": 262,
                              "nodeType": "ExpressionStatement",
                              "src": "3667:39:0"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 264,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "--",
                                "prefix": false,
                                "src": "3724:6:0",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "id": 263,
                                  "name": "size",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1344,
                                  "src": "3724:4:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 265,
                              "nodeType": "ExpressionStatement",
                              "src": "3724:6:0"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 267,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "--",
                                "prefix": false,
                                "src": "3748:6:0",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "id": 266,
                                  "name": "done",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1350,
                                  "src": "3748:4:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 268,
                              "nodeType": "ExpressionStatement",
                              "src": "3748:6:0"
                            }
                          ]
                        }
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 273,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 271,
                            "name": "size",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1344,
                            "src": "3786:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 272,
                            "name": "MIN_ASSESSMENT_SIZE",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1307,
                            "src": "3793:19:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "3786:26:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 278,
                        "nodeType": "IfStatement",
                        "src": "3782:81:0",
                        "trueBody": {
                          "id": 277,
                          "nodeType": "Block",
                          "src": "3814:49:0",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "id": 274,
                                  "name": "cancelAssessment",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 836,
                                  "src": "3830:16:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                                    "typeString": "function ()"
                                  }
                                },
                                "id": 275,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3830:18:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 276,
                              "nodeType": "ExpressionStatement",
                              "src": "3830:18:0"
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@notice Called by anyone to steal half of an assessor's stake and remove them from the assessment\n@dev The other half of the tokens will be burned when the payout is completed.",
            "id": 282,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "steal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 227,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 222,
                  "name": "_score",
                  "nodeType": "VariableDeclaration",
                  "scope": 282,
                  "src": "3386:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 221,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "3386:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 224,
                  "name": "_salt",
                  "nodeType": "VariableDeclaration",
                  "scope": 282,
                  "src": "3401:19:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 223,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3401:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 226,
                  "name": "_assessor",
                  "nodeType": "VariableDeclaration",
                  "scope": 282,
                  "src": "3422:17:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 225,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3422:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3385:55:0"
            },
            "returnParameters": {
              "id": 228,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3448:0:0"
            },
            "scope": 1295,
            "src": "3371:508:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 391,
              "nodeType": "Block",
              "src": "4129:1085:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 296,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 294,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5969,
                          "src": "4343:3:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 295,
                          "name": "checkpoint",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1340,
                          "src": "4349:10:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "4343:16:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4368616c6c656e676520706572696f64206d757374206265206f766572",
                        "id": 297,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4361:31:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_95f6da86c2326c991f57db05fd5f7aba15e094c969ee5650c323c90fc8a98f94",
                          "typeString": "literal_string \"Challenge period must be over\""
                        },
                        "value": "Challenge period must be over"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_95f6da86c2326c991f57db05fd5f7aba15e094c969ee5650c323c90fc8a98f94",
                          "typeString": "literal_string \"Challenge period must be over\""
                        }
                      ],
                      "id": 293,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5970,
                        5971
                      ],
                      "referencedDeclaration": 5971,
                      "src": "4335:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 298,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4335:58:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 299,
                  "nodeType": "ExpressionStatement",
                  "src": "4335:58:0"
                },
                {
                  "assignments": [
                    301
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 301,
                      "name": "continueAssessment",
                      "nodeType": "VariableDeclaration",
                      "scope": 391,
                      "src": "4472:23:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 300,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "4472:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 303,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 302,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "4498:4:0",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4472:30:0"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 308,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 304,
                      "name": "now",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5969,
                      "src": "4516:3:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 307,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 305,
                        "name": "endTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1342,
                        "src": "4522:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "+",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "3234",
                        "id": 306,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4532:8:0",
                        "subdenomination": "hours",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_86400_by_1",
                          "typeString": "int_const 86400"
                        },
                        "value": "24"
                      },
                      "src": "4522:18:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4516:24:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 317,
                  "nodeType": "IfStatement",
                  "src": "4512:103:0",
                  "trueBody": {
                    "id": 316,
                    "nodeType": "Block",
                    "src": "4542:73:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 314,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 309,
                            "name": "continueAssessment",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 301,
                            "src": "4556:18:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 311,
                                  "name": "Stage",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1364,
                                  "src": "4588:5:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                    "typeString": "type(enum AssessmentData.Stage)"
                                  }
                                },
                                "id": 312,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberName": "Committed",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "4588:15:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_Stage_$1364",
                                  "typeString": "enum AssessmentData.Stage"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_enum$_Stage_$1364",
                                  "typeString": "enum AssessmentData.Stage"
                                }
                              ],
                              "id": 310,
                              "name": "burnStakes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 933,
                              "src": "4577:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_Stage_$1364_$returns$_t_bool_$",
                                "typeString": "function (enum AssessmentData.Stage) returns (bool)"
                              }
                            },
                            "id": 313,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4577:27:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "4556:48:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 315,
                        "nodeType": "ExpressionStatement",
                        "src": "4556:48:0"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 320,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 318,
                      "name": "continueAssessment",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 301,
                      "src": "4628:18:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 319,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4650:5:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "src": "4628:27:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 322,
                  "nodeType": "IfStatement",
                  "src": "4624:40:0",
                  "trueBody": {
                    "expression": null,
                    "functionReturnParameters": 292,
                    "id": 321,
                    "nodeType": "Return",
                    "src": "4657:7:0"
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 342,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_enum$_Stage_$1364",
                        "typeString": "enum AssessmentData.Stage"
                      },
                      "id": 329,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 323,
                          "name": "assessorStage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1368,
                          "src": "4735:13:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                            "typeString": "mapping(address => enum AssessmentData.Stage)"
                          }
                        },
                        "id": 326,
                        "indexExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 324,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5967,
                            "src": "4749:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 325,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "4749:10:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4735:25:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Stage_$1364",
                          "typeString": "enum AssessmentData.Stage"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 327,
                          "name": "Stage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1364,
                          "src": "4764:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                            "typeString": "type(enum AssessmentData.Stage)"
                          }
                        },
                        "id": 328,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "Committed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4764:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Stage_$1364",
                          "typeString": "enum AssessmentData.Stage"
                        }
                      },
                      "src": "4735:44:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 341,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 330,
                          "name": "commits",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1377,
                          "src": "4795:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_bytes32_$",
                            "typeString": "mapping(address => bytes32)"
                          }
                        },
                        "id": 333,
                        "indexExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 331,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5967,
                            "src": "4803:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 332,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "4803:10:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4795:19:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 337,
                                "name": "_score",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 284,
                                "src": "4845:6:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int128",
                                  "typeString": "int128"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 338,
                                "name": "_salt",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 286,
                                "src": "4853:5:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_int128",
                                  "typeString": "int128"
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 335,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5954,
                                "src": "4828:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 336,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "encodePacked",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "4828:16:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 339,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4828:31:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 334,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5961,
                          "src": "4818:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (bytes memory) pure returns (bytes32)"
                          }
                        },
                        "id": 340,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4818:42:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "4795:65:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4735:125:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 373,
                  "nodeType": "IfStatement",
                  "src": "4731:308:0",
                  "trueBody": {
                    "id": 372,
                    "nodeType": "Block",
                    "src": "4862:177:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 348,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 343,
                              "name": "scores",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1381,
                              "src": "4876:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_int128_$",
                                "typeString": "mapping(address => int128)"
                              }
                            },
                            "id": 346,
                            "indexExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 344,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5967,
                                "src": "4883:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 345,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "4883:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "4876:18:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int128",
                              "typeString": "int128"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 347,
                            "name": "_score",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 284,
                            "src": "4897:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int128",
                              "typeString": "int128"
                            }
                          },
                          "src": "4876:27:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        },
                        "id": 349,
                        "nodeType": "ExpressionStatement",
                        "src": "4876:27:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 359,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 350,
                            "name": "salt",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1352,
                            "src": "4917:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 358,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 351,
                              "name": "salt",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1352,
                              "src": "4924:4:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "^",
                            "rightExpression": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "id": 354,
                                          "name": "_salt",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 286,
                                          "src": "4948:5:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_string_memory_ptr",
                                            "typeString": "string memory"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_string_memory_ptr",
                                            "typeString": "string memory"
                                          }
                                        ],
                                        "id": 353,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "4942:5:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                          "typeString": "type(bytes storage pointer)"
                                        },
                                        "typeName": "bytes"
                                      },
                                      "id": 355,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "4942:12:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    ],
                                    "id": 352,
                                    "name": "keccak256",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5961,
                                    "src": "4932:9:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                      "typeString": "function (bytes memory) pure returns (bytes32)"
                                    }
                                  },
                                  "id": 356,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "4932:23:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "id": 357,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "4931:25:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "src": "4924:32:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "4917:39:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 360,
                        "nodeType": "ExpressionStatement",
                        "src": "4917:39:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 367,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 361,
                              "name": "assessorStage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1368,
                              "src": "4970:13:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                                "typeString": "mapping(address => enum AssessmentData.Stage)"
                              }
                            },
                            "id": 364,
                            "indexExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 362,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5967,
                                "src": "4984:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 363,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "4984:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "4970:25:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 365,
                              "name": "Stage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1364,
                              "src": "4998:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                "typeString": "type(enum AssessmentData.Stage)"
                              }
                            },
                            "id": 366,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "Done",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "4998:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "src": "4970:38:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          }
                        },
                        "id": 368,
                        "nodeType": "ExpressionStatement",
                        "src": "4970:38:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 370,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "++",
                          "prefix": false,
                          "src": "5022:6:0",
                          "subExpression": {
                            "argumentTypes": null,
                            "id": 369,
                            "name": "done",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1350,
                            "src": "5022:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 371,
                        "nodeType": "ExpressionStatement",
                        "src": "5022:6:0"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 376,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 374,
                      "name": "done",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1350,
                      "src": "5083:4:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 375,
                      "name": "size",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1344,
                      "src": "5091:4:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5083:12:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 390,
                  "nodeType": "IfStatement",
                  "src": "5079:129:0",
                  "trueBody": {
                    "id": 389,
                    "nodeType": "Block",
                    "src": "5097:111:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 380,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 377,
                            "name": "assessmentStage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1370,
                            "src": "5111:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 378,
                              "name": "Stage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1364,
                              "src": "5129:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                "typeString": "type(enum AssessmentData.Stage)"
                              }
                            },
                            "id": 379,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "Done",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "5129:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "src": "5111:28:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          }
                        },
                        "id": 381,
                        "nodeType": "ExpressionStatement",
                        "src": "5111:28:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 382,
                            "name": "calculateResult",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1098,
                            "src": "5153:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                              "typeString": "function ()"
                            }
                          },
                          "id": 383,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5153:17:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 384,
                        "nodeType": "ExpressionStatement",
                        "src": "5153:17:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 387,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 385,
                            "name": "endTime",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1342,
                            "src": "5184:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 386,
                            "name": "now",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5969,
                            "src": "5194:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5184:13:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 388,
                        "nodeType": "ExpressionStatement",
                        "src": "5184:13:0"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@notice Called by assessors to reveal their score\n@dev Also cancels the assessment if there have been to few reveals in time.",
            "id": 392,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 289,
                      "name": "Stage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1364,
                      "src": "4112:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                        "typeString": "type(enum AssessmentData.Stage)"
                      }
                    },
                    "id": 290,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "Committed",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "4112:15:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Stage_$1364",
                      "typeString": "enum AssessmentData.Stage"
                    }
                  }
                ],
                "id": 291,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 288,
                  "name": "onlyInStage",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 34,
                  "src": "4100:11:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Stage_$1364_$",
                    "typeString": "modifier (enum AssessmentData.Stage)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "4100:28:0"
              }
            ],
            "name": "reveal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 287,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 284,
                  "name": "_score",
                  "nodeType": "VariableDeclaration",
                  "scope": 392,
                  "src": "4057:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 283,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "4057:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 286,
                  "name": "_salt",
                  "nodeType": "VariableDeclaration",
                  "scope": 392,
                  "src": "4072:19:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 285,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "4072:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4056:36:0"
            },
            "returnParameters": {
              "id": 292,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4129:0:0"
            },
            "scope": 1295,
            "src": "4041:1173:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 442,
              "nodeType": "Block",
              "src": "5341:387:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 409,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 401,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 398,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5967,
                              "src": "5359:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 399,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "5359:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 400,
                            "name": "assessee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1338,
                            "src": "5373:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "5359:22:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          },
                          "id": 408,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 402,
                              "name": "assessorStage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1368,
                              "src": "5385:13:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                                "typeString": "mapping(address => enum AssessmentData.Stage)"
                              }
                            },
                            "id": 405,
                            "indexExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 403,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5967,
                                "src": "5399:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 404,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "5399:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "5385:25:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 406,
                              "name": "Stage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1364,
                              "src": "5413:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                "typeString": "type(enum AssessmentData.Stage)"
                              }
                            },
                            "id": 407,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "Called",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "5413:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "src": "5385:40:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "5359:66:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4d757374206265206173736573736565206f7220636f6e6669726d6564206173736573736f72",
                        "id": 410,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5443:40:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c68f615f2b45316f8c13537c4e62f4aa827e7786becc796f22625af82d551122",
                          "typeString": "literal_string \"Must be assessee or confirmed assessor\""
                        },
                        "value": "Must be assessee or confirmed assessor"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c68f615f2b45316f8c13537c4e62f4aa827e7786becc796f22625af82d551122",
                          "typeString": "literal_string \"Must be assessee or confirmed assessor\""
                        }
                      ],
                      "id": 397,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5970,
                        5971
                      ],
                      "referencedDeclaration": 5971,
                      "src": "5351:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 411,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5351:142:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 412,
                  "nodeType": "ExpressionStatement",
                  "src": "5351:142:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Stage_$1364",
                          "typeString": "enum AssessmentData.Stage"
                        },
                        "id": 417,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 414,
                          "name": "assessmentStage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1370,
                          "src": "5511:15:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 415,
                            "name": "Stage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1364,
                            "src": "5529:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                              "typeString": "type(enum AssessmentData.Stage)"
                            }
                          },
                          "id": 416,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "Committed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "5529:15:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          }
                        },
                        "src": "5511:33:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "446561646c696e6520666f7220616464696e6720646174612068617320706173736564",
                        "id": 418,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5546:37:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e1057e4ae40e5daedbe387aef649bc5b0c7b7f3ad943e6a92c289767d27d1557",
                          "typeString": "literal_string \"Deadline for adding data has passed\""
                        },
                        "value": "Deadline for adding data has passed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e1057e4ae40e5daedbe387aef649bc5b0c7b7f3ad943e6a92c289767d27d1557",
                          "typeString": "literal_string \"Deadline for adding data has passed\""
                        }
                      ],
                      "id": 413,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5970,
                        5971
                      ],
                      "referencedDeclaration": 5971,
                      "src": "5503:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 419,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5503:81:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 420,
                  "nodeType": "ExpressionStatement",
                  "src": "5503:81:0"
                },
                {
                  "assignments": [
                    422
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 422,
                      "name": "oldData",
                      "nodeType": "VariableDeclaration",
                      "scope": 442,
                      "src": "5594:20:0",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 421,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "5594:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 427,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 423,
                      "name": "data",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1356,
                      "src": "5617:4:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_address_$_t_bytes_storage_$",
                        "typeString": "mapping(address => bytes storage ref)"
                      }
                    },
                    "id": 426,
                    "indexExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 424,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5967,
                        "src": "5622:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 425,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "5622:10:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "5617:16:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage",
                      "typeString": "bytes storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5594:39:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 433,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 428,
                        "name": "data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1356,
                        "src": "5643:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_bytes_storage_$",
                          "typeString": "mapping(address => bytes storage ref)"
                        }
                      },
                      "id": 431,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 429,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5967,
                          "src": "5648:3:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 430,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "5648:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5643:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_storage",
                        "typeString": "bytes storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 432,
                      "name": "_data",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 394,
                      "src": "5662:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes memory"
                      }
                    },
                    "src": "5643:24:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage",
                      "typeString": "bytes storage ref"
                    }
                  },
                  "id": 434,
                  "nodeType": "ExpressionStatement",
                  "src": "5643:24:0"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 436,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5967,
                          "src": "5694:3:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 437,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "5694:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 438,
                        "name": "oldData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 422,
                        "src": "5706:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 439,
                        "name": "_data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 394,
                        "src": "5715:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 435,
                      "name": "DataChanged",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1325,
                      "src": "5682:11:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (address,bytes memory,bytes memory)"
                      }
                    },
                    "id": 440,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5682:39:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 441,
                  "nodeType": "EmitStatement",
                  "src": "5677:44:0"
                }
              ]
            },
            "documentation": "@notice Called by assessors/assessee to store data on the assessment",
            "id": 443,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "addData",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 395,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 394,
                  "name": "_data",
                  "nodeType": "VariableDeclaration",
                  "scope": 443,
                  "src": "5314:18:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 393,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "5314:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5313:20:0"
            },
            "returnParameters": {
              "id": 396,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5341:0:0"
            },
            "scope": 1295,
            "src": "5297:431:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 590,
              "nodeType": "Block",
              "src": "6148:1926:0",
              "statements": [
                {
                  "assignments": [
                    455
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 455,
                      "name": "toBeCalled",
                      "nodeType": "VariableDeclaration",
                      "scope": 590,
                      "src": "6233:15:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 454,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "6233:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 462,
                  "initialValue": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 461,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 458,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 456,
                            "name": "_size",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 449,
                            "src": "6252:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 457,
                            "name": "ASSESSORPOOL_SIZEFACTOR",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1310,
                            "src": "6260:23:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "6252:31:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 459,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "6251:33:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "/",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "3130",
                      "id": 460,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "6287:2:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_10_by_1",
                        "typeString": "int_const 10"
                      },
                      "value": "10"
                    },
                    "src": "6251:38:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6233:56:0"
                },
                {
                  "assignments": [
                    464
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 464,
                      "name": "totalCalled",
                      "nodeType": "VariableDeclaration",
                      "scope": 590,
                      "src": "6380:16:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 463,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "6380:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 465,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6380:16:0"
                },
                {
                  "assignments": [
                    467
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 467,
                      "name": "assessedConcept",
                      "nodeType": "VariableDeclaration",
                      "scope": 590,
                      "src": "6407:23:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Concept_$2247",
                        "typeString": "contract Concept"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 466,
                        "name": "Concept",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 2247,
                        "src": "6407:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Concept_$2247",
                          "typeString": "contract Concept"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 471,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 469,
                        "name": "_concept",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 447,
                        "src": "6441:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 468,
                      "name": "Concept",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2247,
                      "src": "6433:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_Concept_$2247_$",
                        "typeString": "type(contract Concept)"
                      }
                    },
                    "id": 470,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6433:17:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Concept_$2247",
                      "typeString": "contract Concept"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6407:43:0"
                },
                {
                  "assignments": [
                    473
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 473,
                      "name": "availableHere",
                      "nodeType": "VariableDeclaration",
                      "scope": 590,
                      "src": "6460:18:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 472,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "6460:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 482,
                  "initialValue": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 481,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 478,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "id": 474,
                                "name": "assessedConcept",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 467,
                                "src": "6482:15:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Concept_$2247",
                                  "typeString": "contract Concept"
                                }
                              },
                              "id": 475,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "getNumberOfAvailableMembers",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2166,
                              "src": "6482:43:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                "typeString": "function () view external returns (uint256)"
                              }
                            },
                            "id": 476,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6482:45:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 477,
                            "name": "MEMBERCALL_CEILING_FACTOR",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1304,
                            "src": "6530:25:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "6482:73:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 479,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "6481:75:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "/",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "3130",
                      "id": 480,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "6559:2:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_10_by_1",
                        "typeString": "int_const 10"
                      },
                      "value": "10"
                    },
                    "src": "6481:80:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6460:101:0"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 485,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 483,
                      "name": "availableHere",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 473,
                      "src": "6635:13:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 484,
                      "name": "toBeCalled",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 455,
                      "src": "6652:10:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6635:27:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 576,
                    "nodeType": "Block",
                    "src": "6828:1110:0",
                    "statements": [
                      {
                        "assignments": [
                          496
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 496,
                            "name": "availableViaParents",
                            "nodeType": "VariableDeclaration",
                            "scope": 576,
                            "src": "6929:24:0",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 495,
                              "name": "uint",
                              "nodeType": "ElementaryTypeName",
                              "src": "6929:4:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 497,
                        "initialValue": null,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "6929:24:0"
                      },
                      {
                        "body": {
                          "id": 555,
                          "nodeType": "Block",
                          "src": "7103:458:0",
                          "statements": [
                            {
                              "assignments": [
                                511
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 511,
                                  "name": "parent",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 555,
                                  "src": "7121:14:0",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Concept_$2247",
                                    "typeString": "contract Concept"
                                  },
                                  "typeName": {
                                    "contractScope": null,
                                    "id": 510,
                                    "name": "Concept",
                                    "nodeType": "UserDefinedTypeName",
                                    "referencedDeclaration": 2247,
                                    "src": "7121:7:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_Concept_$2247",
                                      "typeString": "contract Concept"
                                    }
                                  },
                                  "value": null,
                                  "visibility": "internal"
                                }
                              ],
                              "id": 518,
                              "initialValue": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "id": 515,
                                        "name": "k",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 499,
                                        "src": "7170:1:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 513,
                                        "name": "assessedConcept",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 467,
                                        "src": "7146:15:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_contract$_Concept_$2247",
                                          "typeString": "contract Concept"
                                        }
                                      },
                                      "id": 514,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "parents",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 2278,
                                      "src": "7146:23:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$",
                                        "typeString": "function (uint256) view external returns (address)"
                                      }
                                    },
                                    "id": 516,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "7146:26:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "id": 512,
                                  "name": "Concept",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2247,
                                  "src": "7138:7:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_Concept_$2247_$",
                                    "typeString": "type(contract Concept)"
                                  }
                                },
                                "id": 517,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "7138:35:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Concept_$2247",
                                  "typeString": "contract Concept"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "7121:52:0"
                            },
                            {
                              "assignments": [
                                520
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 520,
                                  "name": "availableInParent",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 555,
                                  "src": "7191:22:0",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "typeName": {
                                    "id": 519,
                                    "name": "uint",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "7191:4:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "value": null,
                                  "visibility": "internal"
                                }
                              ],
                              "id": 538,
                              "initialValue": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 537,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "components": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 534,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "components": [
                                          {
                                            "argumentTypes": null,
                                            "commonType": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            },
                                            "id": 528,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                              "argumentTypes": null,
                                              "components": [
                                                {
                                                  "argumentTypes": null,
                                                  "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                  },
                                                  "id": 525,
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "leftExpression": {
                                                    "argumentTypes": null,
                                                    "arguments": [],
                                                    "expression": {
                                                      "argumentTypes": [],
                                                      "expression": {
                                                        "argumentTypes": null,
                                                        "id": 521,
                                                        "name": "parent",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 511,
                                                        "src": "7240:6:0",
                                                        "typeDescriptions": {
                                                          "typeIdentifier": "t_contract$_Concept_$2247",
                                                          "typeString": "contract Concept"
                                                        }
                                                      },
                                                      "id": 522,
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "memberName": "getNumberOfAvailableMembers",
                                                      "nodeType": "MemberAccess",
                                                      "referencedDeclaration": 2166,
                                                      "src": "7240:34:0",
                                                      "typeDescriptions": {
                                                        "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                                        "typeString": "function () view external returns (uint256)"
                                                      }
                                                    },
                                                    "id": 523,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "7240:36:0",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_uint256",
                                                      "typeString": "uint256"
                                                    }
                                                  },
                                                  "nodeType": "BinaryOperation",
                                                  "operator": "*",
                                                  "rightExpression": {
                                                    "argumentTypes": null,
                                                    "id": 524,
                                                    "name": "MEMBERCALL_CEILING_FACTOR",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 1304,
                                                    "src": "7279:25:0",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_uint256",
                                                      "typeString": "uint256"
                                                    }
                                                  },
                                                  "src": "7240:64:0",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                  }
                                                }
                                              ],
                                              "id": 526,
                                              "isConstant": false,
                                              "isInlineArray": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "nodeType": "TupleExpression",
                                              "src": "7239:66:0",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "/",
                                            "rightExpression": {
                                              "argumentTypes": null,
                                              "hexValue": "3130",
                                              "id": 527,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "7308:2:0",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_10_by_1",
                                                "typeString": "int_const 10"
                                              },
                                              "value": "10"
                                            },
                                            "src": "7239:71:0",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          }
                                        ],
                                        "id": 529,
                                        "isConstant": false,
                                        "isInlineArray": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "TupleExpression",
                                        "src": "7238:73:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "*",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "id": 532,
                                            "name": "k",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 499,
                                            "src": "7364:1:0",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 530,
                                            "name": "assessedConcept",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 467,
                                            "src": "7334:15:0",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_contract$_Concept_$2247",
                                              "typeString": "contract Concept"
                                            }
                                          },
                                          "id": 531,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "parentFactors",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 2281,
                                          "src": "7334:29:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$",
                                            "typeString": "function (uint256) view external returns (uint256)"
                                          }
                                        },
                                        "id": 533,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "7334:32:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "7238:128:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "id": 535,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "7216:168:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "/",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "31303030",
                                  "id": 536,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "7387:4:0",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1000_by_1",
                                    "typeString": "int_const 1000"
                                  },
                                  "value": "1000"
                                },
                                "src": "7216:175:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "7191:200:0"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 541,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 539,
                                  "name": "availableViaParents",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 496,
                                  "src": "7409:19:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "+=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 540,
                                  "name": "availableInParent",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 520,
                                  "src": "7432:17:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "7409:40:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 542,
                              "nodeType": "ExpressionStatement",
                              "src": "7409:40:0"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 553,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 543,
                                  "name": "totalCalled",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 464,
                                  "src": "7467:11:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "+=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 547,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "id": 545,
                                        "name": "_seed",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 445,
                                        "src": "7500:5:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "+",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "id": 546,
                                        "name": "k",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 499,
                                        "src": "7508:1:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "7500:9:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 548,
                                      "name": "availableInParent",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 520,
                                      "src": "7511:17:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "id": 550,
                                          "name": "parent",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 511,
                                          "src": "7538:6:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_Concept_$2247",
                                            "typeString": "contract Concept"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_contract$_Concept_$2247",
                                            "typeString": "contract Concept"
                                          }
                                        ],
                                        "id": 549,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "7530:7:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_address_$",
                                          "typeString": "type(address)"
                                        },
                                        "typeName": "address"
                                      },
                                      "id": 551,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "7530:15:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    ],
                                    "id": 544,
                                    "name": "callRandomMembers",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 742,
                                    "src": "7482:17:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$_t_uint256_$",
                                      "typeString": "function (uint256,uint256,address) returns (uint256)"
                                    }
                                  },
                                  "id": 552,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "7482:64:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "7467:79:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 554,
                              "nodeType": "ExpressionStatement",
                              "src": "7467:79:0"
                            }
                          ]
                        },
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 506,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 502,
                            "name": "k",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 499,
                            "src": "7056:1:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "id": 503,
                                "name": "assessedConcept",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 467,
                                "src": "7060:15:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Concept_$2247",
                                  "typeString": "contract Concept"
                                }
                              },
                              "id": 504,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "getNumberOfParents",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2187,
                              "src": "7060:34:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                "typeString": "function () view external returns (uint256)"
                              }
                            },
                            "id": 505,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7060:36:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "7056:40:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 556,
                        "initializationExpression": {
                          "assignments": [
                            499
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 499,
                              "name": "k",
                              "nodeType": "VariableDeclaration",
                              "scope": 556,
                              "src": "7044:6:0",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "typeName": {
                                "id": 498,
                                "name": "uint",
                                "nodeType": "ElementaryTypeName",
                                "src": "7044:4:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "value": null,
                              "visibility": "internal"
                            }
                          ],
                          "id": 501,
                          "initialValue": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 500,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "7053:1:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "7044:10:0"
                        },
                        "loopExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 508,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": false,
                            "src": "7098:3:0",
                            "subExpression": {
                              "argumentTypes": null,
                              "id": 507,
                              "name": "k",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 499,
                              "src": "7098:1:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 509,
                          "nodeType": "ExpressionStatement",
                          "src": "7098:3:0"
                        },
                        "nodeType": "ForStatement",
                        "src": "7039:522:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 562,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 560,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 558,
                                  "name": "availableHere",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 473,
                                  "src": "7662:13:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "+",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "id": 559,
                                  "name": "availableViaParents",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 496,
                                  "src": "7678:19:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "7662:35:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": ">=",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 561,
                                "name": "toBeCalled",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 455,
                                "src": "7701:10:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "7662:49:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "4e6f7420656e6f756768206173736573736f727320696e20706172656e7420636f6e6365707473",
                              "id": 563,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7713:41:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_8e7c4710c8980faeb64c0e4306fe5f70e60b24fa43a992da6677e5d065bbe1f0",
                                "typeString": "literal_string \"Not enough assessors in parent concepts\""
                              },
                              "value": "Not enough assessors in parent concepts"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_8e7c4710c8980faeb64c0e4306fe5f70e60b24fa43a992da6677e5d065bbe1f0",
                                "typeString": "literal_string \"Not enough assessors in parent concepts\""
                              }
                            ],
                            "id": 557,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              5970,
                              5971
                            ],
                            "referencedDeclaration": 5971,
                            "src": "7654:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 564,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7654:101:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 565,
                        "nodeType": "ExpressionStatement",
                        "src": "7654:101:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 574,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 566,
                            "name": "totalCalled",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 464,
                            "src": "7856:11:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 570,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 568,
                                  "name": "_seed",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 445,
                                  "src": "7889:5:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "+",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "34323234",
                                  "id": 569,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "7897:4:0",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_4224_by_1",
                                    "typeString": "int_const 4224"
                                  },
                                  "value": "4224"
                                },
                                "src": "7889:12:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 571,
                                "name": "availableHere",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 473,
                                "src": "7903:13:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 572,
                                "name": "_concept",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 447,
                                "src": "7918:8:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "id": 567,
                              "name": "callRandomMembers",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 742,
                              "src": "7871:17:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$_t_uint256_$",
                                "typeString": "function (uint256,uint256,address) returns (uint256)"
                              }
                            },
                            "id": 573,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7871:56:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "7856:71:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 575,
                        "nodeType": "ExpressionStatement",
                        "src": "7856:71:0"
                      }
                    ]
                  },
                  "id": 577,
                  "nodeType": "IfStatement",
                  "src": "6631:1307:0",
                  "trueBody": {
                    "id": 494,
                    "nodeType": "Block",
                    "src": "6664:158:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 492,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 486,
                            "name": "totalCalled",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 464,
                            "src": "6750:11:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 488,
                                "name": "_seed",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 445,
                                "src": "6783:5:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 489,
                                "name": "toBeCalled",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 455,
                                "src": "6790:10:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 490,
                                "name": "_concept",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 447,
                                "src": "6802:8:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "id": 487,
                              "name": "callRandomMembers",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 742,
                              "src": "6765:17:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$_t_uint256_$",
                                "typeString": "function (uint256,uint256,address) returns (uint256)"
                              }
                            },
                            "id": 491,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6765:46:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "6750:61:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 493,
                        "nodeType": "ExpressionStatement",
                        "src": "6750:61:0"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 581,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 579,
                          "name": "totalCalled",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 464,
                          "src": "7955:11:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 580,
                          "name": "MIN_ASSESSMENT_SIZE",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1307,
                          "src": "7970:19:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "7955:34:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "546f6f20666577206173736573736f727320636f756c642062652063616c6c6564",
                        "id": 582,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7991:35:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_0c0b1bd4450a3319f9077c789b26eed03c9f971310b68e2b3da75933181afc8a",
                          "typeString": "literal_string \"Too few assessors could be called\""
                        },
                        "value": "Too few assessors could be called"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_0c0b1bd4450a3319f9077c789b26eed03c9f971310b68e2b3da75933181afc8a",
                          "typeString": "literal_string \"Too few assessors could be called\""
                        }
                      ],
                      "id": 578,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5970,
                        5971
                      ],
                      "referencedDeclaration": 5971,
                      "src": "7947:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 583,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7947:80:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 584,
                  "nodeType": "ExpressionStatement",
                  "src": "7947:80:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 588,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 585,
                      "name": "assessmentStage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1370,
                      "src": "8037:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Stage_$1364",
                        "typeString": "enum AssessmentData.Stage"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 586,
                        "name": "Stage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1364,
                        "src": "8055:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                          "typeString": "type(enum AssessmentData.Stage)"
                        }
                      },
                      "id": 587,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Called",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "8055:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Stage_$1364",
                        "typeString": "enum AssessmentData.Stage"
                      }
                    },
                    "src": "8037:30:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Stage_$1364",
                      "typeString": "enum AssessmentData.Stage"
                    }
                  },
                  "id": 589,
                  "nodeType": "ExpressionStatement",
                  "src": "8037:30:0"
                }
              ]
            },
            "documentation": null,
            "id": 591,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [],
                "id": 452,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 451,
                  "name": "onlyConcept",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 21,
                  "src": "6134:11:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "6134:13:0"
              }
            ],
            "name": "setAssessorPool",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 450,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 445,
                  "name": "_seed",
                  "nodeType": "VariableDeclaration",
                  "scope": 591,
                  "src": "6085:10:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 444,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6085:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 447,
                  "name": "_concept",
                  "nodeType": "VariableDeclaration",
                  "scope": 591,
                  "src": "6097:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 446,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6097:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 449,
                  "name": "_size",
                  "nodeType": "VariableDeclaration",
                  "scope": 591,
                  "src": "6115:10:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 448,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6115:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6084:42:0"
            },
            "returnParameters": {
              "id": 453,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6148:0:0"
            },
            "scope": 1295,
            "src": "6060:2014:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 741,
              "nodeType": "Block",
              "src": "8693:1538:0",
              "statements": [
                {
                  "assignments": [
                    603
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 603,
                      "name": "seed",
                      "nodeType": "VariableDeclaration",
                      "scope": 741,
                      "src": "8703:9:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 602,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "8703:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 605,
                  "initialValue": {
                    "argumentTypes": null,
                    "id": 604,
                    "name": "_seed",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 593,
                    "src": "8715:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8703:17:0"
                },
                {
                  "assignments": [
                    607
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 607,
                      "name": "assessorConcept",
                      "nodeType": "VariableDeclaration",
                      "scope": 741,
                      "src": "8730:23:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Concept_$2247",
                        "typeString": "contract Concept"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 606,
                        "name": "Concept",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 2247,
                        "src": "8730:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Concept_$2247",
                          "typeString": "contract Concept"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 611,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 609,
                        "name": "_concept",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 597,
                        "src": "8764:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 608,
                      "name": "Concept",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2247,
                      "src": "8756:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_Concept_$2247_$",
                        "typeString": "type(contract Concept)"
                      }
                    },
                    "id": 610,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8756:17:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Concept_$2247",
                      "typeString": "contract Concept"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8730:43:0"
                },
                {
                  "assignments": [
                    615
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 615,
                      "name": "availableMembers",
                      "nodeType": "VariableDeclaration",
                      "scope": 741,
                      "src": "8783:33:0",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 613,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "8783:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 614,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "8783:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 619,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 616,
                        "name": "assessorConcept",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 607,
                        "src": "8819:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Concept_$2247",
                          "typeString": "contract Concept"
                        }
                      },
                      "id": 617,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getAvailableMembers",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2178,
                      "src": "8819:35:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$__$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                        "typeString": "function () view external returns (address[] memory)"
                      }
                    },
                    "id": 618,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8819:37:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8783:73:0"
                },
                {
                  "assignments": [
                    621
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 621,
                      "name": "length",
                      "nodeType": "VariableDeclaration",
                      "scope": 741,
                      "src": "9026:11:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 620,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "9026:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 624,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 622,
                      "name": "availableMembers",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 615,
                      "src": "9040:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "id": 623,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "length",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "9040:23:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9026:37:0"
                },
                {
                  "body": {
                    "id": 739,
                    "nodeType": "Block",
                    "src": "9108:1117:0",
                    "statements": [
                      {
                        "assignments": [
                          636
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 636,
                            "name": "index1",
                            "nodeType": "VariableDeclaration",
                            "scope": 739,
                            "src": "9122:11:0",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 635,
                              "name": "uint",
                              "nodeType": "ElementaryTypeName",
                              "src": "9122:4:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 644,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 639,
                              "name": "seed",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 603,
                              "src": "9157:4:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 642,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 640,
                                "name": "length",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 621,
                                "src": "9163:6:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "31",
                                "id": 641,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "9172:1:0",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              },
                              "src": "9163:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 637,
                              "name": "Math",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3284,
                              "src": "9136:4:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Math_$3284_$",
                                "typeString": "type(library Math)"
                              }
                            },
                            "id": 638,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "getRandomNumber",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3095,
                            "src": "9136:20:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_delegatecall_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                              "typeString": "function (uint256,uint256) view returns (uint256)"
                            }
                          },
                          "id": 643,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9136:38:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "9122:52:0"
                      },
                      {
                        "assignments": [
                          646
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 646,
                            "name": "index2",
                            "nodeType": "VariableDeclaration",
                            "scope": 739,
                            "src": "9188:11:0",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 645,
                              "name": "uint",
                              "nodeType": "ElementaryTypeName",
                              "src": "9188:4:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 656,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 651,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 649,
                                "name": "seed",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 603,
                                "src": "9223:4:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "*",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "32",
                                "id": 650,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "9230:1:0",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_2_by_1",
                                  "typeString": "int_const 2"
                                },
                                "value": "2"
                              },
                              "src": "9223:8:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 654,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 652,
                                "name": "length",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 621,
                                "src": "9233:6:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "31",
                                "id": 653,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "9242:1:0",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              },
                              "src": "9233:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 647,
                              "name": "Math",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3284,
                              "src": "9202:4:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Math_$3284_$",
                                "typeString": "type(library Math)"
                              }
                            },
                            "id": 648,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "getRandomNumber",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3095,
                            "src": "9202:20:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_delegatecall_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                              "typeString": "function (uint256,uint256) view returns (uint256)"
                            }
                          },
                          "id": 655,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9202:42:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "9188:56:0"
                      },
                      {
                        "assignments": [
                          658
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 658,
                            "name": "weight1",
                            "nodeType": "VariableDeclaration",
                            "scope": 739,
                            "src": "9258:12:0",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 657,
                              "name": "uint",
                              "nodeType": "ElementaryTypeName",
                              "src": "9258:4:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 665,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 661,
                                "name": "availableMembers",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 615,
                                "src": "9299:16:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                  "typeString": "address[] memory"
                                }
                              },
                              "id": 663,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 662,
                                "name": "index1",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 636,
                                "src": "9316:6:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "9299:24:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 659,
                              "name": "assessorConcept",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 607,
                              "src": "9273:15:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Concept_$2247",
                                "typeString": "contract Concept"
                              }
                            },
                            "id": 660,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "getWeight",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2154,
                            "src": "9273:25:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                              "typeString": "function (address) view external returns (uint256)"
                            }
                          },
                          "id": 664,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9273:51:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "9258:66:0"
                      },
                      {
                        "assignments": [
                          667
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 667,
                            "name": "weight2",
                            "nodeType": "VariableDeclaration",
                            "scope": 739,
                            "src": "9338:12:0",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 666,
                              "name": "uint",
                              "nodeType": "ElementaryTypeName",
                              "src": "9338:4:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 674,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 670,
                                "name": "availableMembers",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 615,
                                "src": "9379:16:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                  "typeString": "address[] memory"
                                }
                              },
                              "id": 672,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 671,
                                "name": "index2",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 646,
                                "src": "9396:6:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "9379:24:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 668,
                              "name": "assessorConcept",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 607,
                              "src": "9353:15:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Concept_$2247",
                                "typeString": "contract Concept"
                              }
                            },
                            "id": 669,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "getWeight",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2154,
                            "src": "9353:25:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                              "typeString": "function (address) view external returns (uint256)"
                            }
                          },
                          "id": 673,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9353:51:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "9338:66:0"
                      },
                      {
                        "assignments": [
                          676
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 676,
                            "name": "calledAssessor",
                            "nodeType": "VariableDeclaration",
                            "scope": 739,
                            "src": "9419:22:0",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "typeName": {
                              "id": 675,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "9419:7:0",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 677,
                        "initialValue": null,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "9419:22:0"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 680,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 678,
                            "name": "weight1",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 658,
                            "src": "9459:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 679,
                            "name": "weight2",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 667,
                            "src": "9470:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "9459:18:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 714,
                          "nodeType": "Block",
                          "src": "9632:147:0",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 702,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 698,
                                  "name": "calledAssessor",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 676,
                                  "src": "9650:14:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 699,
                                    "name": "availableMembers",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 615,
                                    "src": "9667:16:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 701,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 700,
                                    "name": "index2",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 646,
                                    "src": "9684:6:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "9667:24:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "src": "9650:41:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 703,
                              "nodeType": "ExpressionStatement",
                              "src": "9650:41:0"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 712,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 704,
                                    "name": "availableMembers",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 615,
                                    "src": "9709:16:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 706,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 705,
                                    "name": "index2",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 646,
                                    "src": "9726:6:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "9709:24:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 707,
                                    "name": "availableMembers",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 615,
                                    "src": "9736:16:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 711,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 710,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "id": 708,
                                      "name": "length",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 621,
                                      "src": "9753:6:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "-",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "31",
                                      "id": 709,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "9762:1:0",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_1_by_1",
                                        "typeString": "int_const 1"
                                      },
                                      "value": "1"
                                    },
                                    "src": "9753:10:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "9736:28:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "src": "9709:55:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 713,
                              "nodeType": "ExpressionStatement",
                              "src": "9709:55:0"
                            }
                          ]
                        },
                        "id": 715,
                        "nodeType": "IfStatement",
                        "src": "9455:324:0",
                        "trueBody": {
                          "id": 697,
                          "nodeType": "Block",
                          "src": "9479:147:0",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 685,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 681,
                                  "name": "calledAssessor",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 676,
                                  "src": "9497:14:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 682,
                                    "name": "availableMembers",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 615,
                                    "src": "9514:16:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 684,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 683,
                                    "name": "index1",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 636,
                                    "src": "9531:6:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "9514:24:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "src": "9497:41:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 686,
                              "nodeType": "ExpressionStatement",
                              "src": "9497:41:0"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 695,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 687,
                                    "name": "availableMembers",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 615,
                                    "src": "9556:16:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 689,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 688,
                                    "name": "index1",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 636,
                                    "src": "9573:6:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "9556:24:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 690,
                                    "name": "availableMembers",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 615,
                                    "src": "9583:16:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 694,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 693,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "id": 691,
                                      "name": "length",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 621,
                                      "src": "9600:6:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "-",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "hexValue": "31",
                                      "id": 692,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "9609:1:0",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_1_by_1",
                                        "typeString": "int_const 1"
                                      },
                                      "value": "1"
                                    },
                                    "src": "9600:10:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "9583:28:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "src": "9556:55:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 696,
                              "nodeType": "ExpressionStatement",
                              "src": "9556:55:0"
                            }
                          ]
                        }
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 722,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 716,
                              "name": "availableMembers",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 615,
                              "src": "9792:16:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                "typeString": "address[] memory"
                              }
                            },
                            "id": 720,
                            "indexExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 719,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 717,
                                "name": "length",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 621,
                                "src": "9809:6:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "31",
                                "id": 718,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "9816:1:0",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              },
                              "src": "9809:8:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "9792:26:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 721,
                            "name": "calledAssessor",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 676,
                            "src": "9821:14:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "9792:43:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 723,
                        "nodeType": "ExpressionStatement",
                        "src": "9792:43:0"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 725,
                              "name": "calledAssessor",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 676,
                              "src": "10048:14:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 724,
                            "name": "addAssessorToPool",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 874,
                            "src": "10030:17:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$_t_bool_$",
                              "typeString": "function (address) returns (bool)"
                            }
                          },
                          "id": 726,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10030:33:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 731,
                        "nodeType": "IfStatement",
                        "src": "10026:62:0",
                        "trueBody": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 729,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "id": 727,
                              "name": "successfullyCalled",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 600,
                              "src": "10065:18:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "+=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 728,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10087:1:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "10065:23:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 730,
                          "nodeType": "ExpressionStatement",
                          "src": "10065:23:0"
                        }
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 734,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 732,
                            "name": "seed",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 603,
                            "src": "10102:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "3130",
                            "id": 733,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "10110:2:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_10_by_1",
                              "typeString": "int_const 10"
                            },
                            "value": "10"
                          },
                          "src": "10102:10:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 735,
                        "nodeType": "ExpressionStatement",
                        "src": "10102:10:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 737,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "--",
                          "prefix": false,
                          "src": "10206:8:0",
                          "subExpression": {
                            "argumentTypes": null,
                            "id": 736,
                            "name": "length",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 621,
                            "src": "10206:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 738,
                        "nodeType": "ExpressionStatement",
                        "src": "10206:8:0"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 631,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 629,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 626,
                      "src": "9090:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 630,
                      "name": "_amount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 595,
                      "src": "9094:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9090:11:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 740,
                  "initializationExpression": {
                    "assignments": [
                      626
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 626,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 740,
                        "src": "9078:6:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 625,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "9078:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 628,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 627,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9087:1:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "9078:10:0"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 633,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "9103:3:0",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 632,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 626,
                        "src": "9103:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 634,
                    "nodeType": "ExpressionStatement",
                    "src": "9103:3:0"
                  },
                  "nodeType": "ForStatement",
                  "src": "9073:1152:0"
                }
              ]
            },
            "documentation": "@notice Tries to probabilistically call a given amount of members from a given concept\nand its parents. Members with higher weights having better chances of being called.\n@dev This assumes there are >=amount members in the concept.\n@return how many members have actually been added to the assessment pool.",
            "id": 742,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "callRandomMembers",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 598,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 593,
                  "name": "_seed",
                  "nodeType": "VariableDeclaration",
                  "scope": 742,
                  "src": "8587:10:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 592,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "8587:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 595,
                  "name": "_amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 742,
                  "src": "8599:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 594,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "8599:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 597,
                  "name": "_concept",
                  "nodeType": "VariableDeclaration",
                  "scope": 742,
                  "src": "8613:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 596,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8613:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8586:44:0"
            },
            "returnParameters": {
              "id": 601,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 600,
                  "name": "successfullyCalled",
                  "nodeType": "VariableDeclaration",
                  "scope": 742,
                  "src": "8664:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 599,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "8664:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8663:25:0"
            },
            "scope": 1295,
            "src": "8560:1671:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 835,
              "nodeType": "Block",
              "src": "10482:662:0",
              "statements": [
                {
                  "assignments": [
                    746
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 746,
                      "name": "assesseeRefund",
                      "nodeType": "VariableDeclaration",
                      "scope": 835,
                      "src": "10492:19:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 745,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "10492:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 759,
                  "initialValue": {
                    "argumentTypes": null,
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_enum$_Stage_$1364",
                        "typeString": "enum AssessmentData.Stage"
                      },
                      "id": 750,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 747,
                        "name": "assessmentStage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1370,
                        "src": "10514:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Stage_$1364",
                          "typeString": "enum AssessmentData.Stage"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 748,
                          "name": "Stage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1364,
                          "src": "10533:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                            "typeString": "type(enum AssessmentData.Stage)"
                          }
                        },
                        "id": 749,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "Called",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "10533:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Stage_$1364",
                          "typeString": "enum AssessmentData.Stage"
                        }
                      },
                      "src": "10514:31:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 757,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 754,
                        "name": "cost",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1346,
                        "src": "10562:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "*",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 755,
                          "name": "assessors",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1373,
                          "src": "10569:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_storage",
                            "typeString": "address[] storage ref"
                          }
                        },
                        "id": 756,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "10569:16:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "10562:23:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 758,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "10514:71:0",
                    "trueExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 753,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 751,
                        "name": "cost",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1346,
                        "src": "10548:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "*",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 752,
                        "name": "size",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1344,
                        "src": "10555:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "10548:11:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10492:93:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 763,
                        "name": "assessee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1338,
                        "src": "10616:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 764,
                        "name": "assesseeRefund",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 746,
                        "src": "10626:14:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 760,
                        "name": "fathomToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1336,
                        "src": "10595:11:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_FathomToken_$3062",
                          "typeString": "contract FathomToken"
                        }
                      },
                      "id": 762,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 5569,
                      "src": "10595:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                        "typeString": "function (address,uint256) external returns (bool)"
                      }
                    },
                    "id": 765,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10595:46:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 766,
                  "nodeType": "ExpressionStatement",
                  "src": "10595:46:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 770,
                        "name": "assessee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1338,
                        "src": "10680:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 771,
                            "name": "FathomToken",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3062,
                            "src": "10690:11:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_FathomToken_$3062_$",
                              "typeString": "type(contract FathomToken)"
                            }
                          },
                          "id": 772,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "Note",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2799,
                          "src": "10690:16:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Note_$2799_$",
                            "typeString": "type(enum FathomToken.Note)"
                          }
                        },
                        "id": 773,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "AssessmentCancelled",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "10690:36:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Note_$2799",
                          "typeString": "enum FathomToken.Note"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_enum$_Note_$2799",
                          "typeString": "enum FathomToken.Note"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 767,
                        "name": "fathomToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1336,
                        "src": "10651:11:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_FathomToken_$3062",
                          "typeString": "contract FathomToken"
                        }
                      },
                      "id": 769,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "emitNotification",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2851,
                      "src": "10651:28:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_enum$_Note_$2799_$returns$__$",
                        "typeString": "function (address,enum FathomToken.Note) external"
                      }
                    },
                    "id": 774,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10651:76:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 775,
                  "nodeType": "ExpressionStatement",
                  "src": "10651:76:0"
                },
                {
                  "body": {
                    "id": 817,
                    "nodeType": "Block",
                    "src": "10781:244:0",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          },
                          "id": 794,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 787,
                              "name": "assessorStage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1368,
                              "src": "10799:13:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                                "typeString": "mapping(address => enum AssessmentData.Stage)"
                              }
                            },
                            "id": 791,
                            "indexExpression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 788,
                                "name": "assessors",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1373,
                                "src": "10813:9:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                  "typeString": "address[] storage ref"
                                }
                              },
                              "id": 790,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 789,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 777,
                                "src": "10823:1:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "10813:12:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "10799:27:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 792,
                              "name": "Stage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1364,
                              "src": "10830:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                "typeString": "type(enum AssessmentData.Stage)"
                              }
                            },
                            "id": 793,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "Burned",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "10830:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "src": "10799:43:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 816,
                        "nodeType": "IfStatement",
                        "src": "10795:220:0",
                        "trueBody": {
                          "id": 815,
                          "nodeType": "Block",
                          "src": "10844:171:0",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 798,
                                      "name": "assessors",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1373,
                                      "src": "10883:9:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                        "typeString": "address[] storage ref"
                                      }
                                    },
                                    "id": 800,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 799,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 777,
                                      "src": "10893:1:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "10883:12:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 801,
                                    "name": "cost",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1346,
                                    "src": "10897:4:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 795,
                                    "name": "fathomToken",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1336,
                                    "src": "10862:11:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_FathomToken_$3062",
                                      "typeString": "contract FathomToken"
                                    }
                                  },
                                  "id": 797,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "transfer",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 5569,
                                  "src": "10862:20:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                    "typeString": "function (address,uint256) external returns (bool)"
                                  }
                                },
                                "id": 802,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "10862:40:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "id": 803,
                              "nodeType": "ExpressionStatement",
                              "src": "10862:40:0"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 807,
                                      "name": "assessors",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1373,
                                      "src": "10949:9:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                        "typeString": "address[] storage ref"
                                      }
                                    },
                                    "id": 809,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 808,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 777,
                                      "src": "10959:1:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "10949:12:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 810,
                                        "name": "FathomToken",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3062,
                                        "src": "10963:11:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_contract$_FathomToken_$3062_$",
                                          "typeString": "type(contract FathomToken)"
                                        }
                                      },
                                      "id": 811,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "Note",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 2799,
                                      "src": "10963:16:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_enum$_Note_$2799_$",
                                        "typeString": "type(enum FathomToken.Note)"
                                      }
                                    },
                                    "id": 812,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "memberName": "AssessmentCancelled",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": null,
                                    "src": "10963:36:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_Note_$2799",
                                      "typeString": "enum FathomToken.Note"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_enum$_Note_$2799",
                                      "typeString": "enum FathomToken.Note"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 804,
                                    "name": "fathomToken",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1336,
                                    "src": "10920:11:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_FathomToken_$3062",
                                      "typeString": "contract FathomToken"
                                    }
                                  },
                                  "id": 806,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "emitNotification",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2851,
                                  "src": "10920:28:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_enum$_Note_$2799_$returns$__$",
                                    "typeString": "function (address,enum FathomToken.Note) external"
                                  }
                                },
                                "id": 813,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "10920:80:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 814,
                              "nodeType": "ExpressionStatement",
                              "src": "10920:80:0"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 783,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 780,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 777,
                      "src": "10754:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 781,
                        "name": "assessors",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1373,
                        "src": "10758:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 782,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "10758:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "10754:20:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 818,
                  "initializationExpression": {
                    "assignments": [
                      777
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 777,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 818,
                        "src": "10742:6:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 776,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "10742:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 779,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 778,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10751:1:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "10742:10:0"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 785,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "10776:3:0",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 784,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 777,
                        "src": "10776:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 786,
                    "nodeType": "ExpressionStatement",
                    "src": "10776:3:0"
                  },
                  "nodeType": "ForStatement",
                  "src": "10737:288:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 822,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 819,
                      "name": "assessmentStage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1370,
                      "src": "11034:15:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Stage_$1364",
                        "typeString": "enum AssessmentData.Stage"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 820,
                        "name": "Stage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1364,
                        "src": "11052:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                          "typeString": "type(enum AssessmentData.Stage)"
                        }
                      },
                      "id": 821,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Burned",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "11052:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Stage_$1364",
                        "typeString": "enum AssessmentData.Stage"
                      }
                    },
                    "src": "11034:30:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Stage_$1364",
                      "typeString": "enum AssessmentData.Stage"
                    }
                  },
                  "id": 823,
                  "nodeType": "ExpressionStatement",
                  "src": "11034:30:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 830,
                                "name": "this",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6024,
                                "src": "11130:4:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Assessment_$1295",
                                  "typeString": "contract Assessment"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Assessment_$1295",
                                  "typeString": "contract Assessment"
                                }
                              ],
                              "id": 829,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "11122:7:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 831,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "11122:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 827,
                            "name": "fathomToken",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1336,
                            "src": "11100:11:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_FathomToken_$3062",
                              "typeString": "contract FathomToken"
                            }
                          },
                          "id": 828,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "balanceOf",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5581,
                          "src": "11100:21:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                            "typeString": "function (address) view external returns (uint256)"
                          }
                        },
                        "id": 832,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11100:36:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 824,
                        "name": "fathomToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1336,
                        "src": "11074:11:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_FathomToken_$3062",
                          "typeString": "contract FathomToken"
                        }
                      },
                      "id": 826,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "destroyTokens",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3038,
                      "src": "11074:25:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 833,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11074:63:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 834,
                  "nodeType": "ExpressionStatement",
                  "src": "11074:63:0"
                }
              ]
            },
            "documentation": "@notice Called to cancel an assessment, refund all non-burned assessors",
            "id": 836,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "cancelAssessment",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 743,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10471:2:0"
            },
            "returnParameters": {
              "id": 744,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10482:0:0"
            },
            "scope": 1295,
            "src": "10446:698:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "private"
          },
          {
            "body": {
              "id": 873,
              "nodeType": "Block",
              "src": "11427:262:0",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 852,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "id": 845,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 843,
                        "name": "_assessor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 838,
                        "src": "11441:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 844,
                        "name": "assessee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1338,
                        "src": "11454:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "src": "11441:21:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_enum$_Stage_$1364",
                        "typeString": "enum AssessmentData.Stage"
                      },
                      "id": 851,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 846,
                          "name": "assessorStage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1368,
                          "src": "11466:13:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                            "typeString": "mapping(address => enum AssessmentData.Stage)"
                          }
                        },
                        "id": 848,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 847,
                          "name": "_assessor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 838,
                          "src": "11480:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "11466:24:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Stage_$1364",
                          "typeString": "enum AssessmentData.Stage"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 849,
                          "name": "Stage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1364,
                          "src": "11494:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                            "typeString": "type(enum AssessmentData.Stage)"
                          }
                        },
                        "id": 850,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "None",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "11494:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Stage_$1364",
                          "typeString": "enum AssessmentData.Stage"
                        }
                      },
                      "src": "11466:38:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "11441:63:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 872,
                  "nodeType": "IfStatement",
                  "src": "11437:246:0",
                  "trueBody": {
                    "id": 871,
                    "nodeType": "Block",
                    "src": "11506:177:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 856,
                              "name": "_assessor",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 838,
                              "src": "11549:9:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 857,
                                  "name": "FathomToken",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3062,
                                  "src": "11560:11:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_FathomToken_$3062_$",
                                    "typeString": "type(contract FathomToken)"
                                  }
                                },
                                "id": 858,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "Note",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2799,
                                "src": "11560:16:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_Note_$2799_$",
                                  "typeString": "type(enum FathomToken.Note)"
                                }
                              },
                              "id": 859,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "CalledAsAssessor",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "11560:33:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_Note_$2799",
                                "typeString": "enum FathomToken.Note"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_enum$_Note_$2799",
                                "typeString": "enum FathomToken.Note"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 853,
                              "name": "fathomToken",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1336,
                              "src": "11520:11:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_FathomToken_$3062",
                                "typeString": "contract FathomToken"
                              }
                            },
                            "id": 855,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "emitNotification",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2851,
                            "src": "11520:28:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_enum$_Note_$2799_$returns$__$",
                              "typeString": "function (address,enum FathomToken.Note) external"
                            }
                          },
                          "id": 860,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11520:74:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 861,
                        "nodeType": "ExpressionStatement",
                        "src": "11520:74:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 867,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 862,
                              "name": "assessorStage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1368,
                              "src": "11608:13:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                                "typeString": "mapping(address => enum AssessmentData.Stage)"
                              }
                            },
                            "id": 864,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 863,
                              "name": "_assessor",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 838,
                              "src": "11622:9:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "11608:24:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 865,
                              "name": "Stage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1364,
                              "src": "11635:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                "typeString": "type(enum AssessmentData.Stage)"
                              }
                            },
                            "id": 866,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "Called",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "11635:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "src": "11608:39:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          }
                        },
                        "id": 868,
                        "nodeType": "ExpressionStatement",
                        "src": "11608:39:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 869,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "11668:4:0",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        "functionReturnParameters": 842,
                        "id": 870,
                        "nodeType": "Return",
                        "src": "11661:11:0"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@notice Adds an address to the pool of potential assessors that will be allowed to\naccept (stake on) the assessment\n@return flag whether the address was added successfully",
            "id": 874,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "addAssessorToPool",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 839,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 838,
                  "name": "_assessor",
                  "nodeType": "VariableDeclaration",
                  "scope": 874,
                  "src": "11386:17:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 837,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "11386:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11385:19:0"
            },
            "returnParameters": {
              "id": 842,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 841,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 874,
                  "src": "11421:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 840,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "11421:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11420:6:0"
            },
            "scope": 1295,
            "src": "11359:330:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "private"
          },
          {
            "body": {
              "id": 932,
              "nodeType": "Block",
              "src": "12021:410:0",
              "statements": [
                {
                  "body": {
                    "id": 913,
                    "nodeType": "Block",
                    "src": "12075:166:0",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          },
                          "id": 898,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 892,
                              "name": "assessorStage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1368,
                              "src": "12093:13:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                                "typeString": "mapping(address => enum AssessmentData.Stage)"
                              }
                            },
                            "id": 896,
                            "indexExpression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 893,
                                "name": "assessors",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1373,
                                "src": "12107:9:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                  "typeString": "address[] storage ref"
                                }
                              },
                              "id": 895,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 894,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 882,
                                "src": "12117:1:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "12107:12:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "12093:27:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 897,
                            "name": "_stage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 876,
                            "src": "12124:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "src": "12093:37:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 912,
                        "nodeType": "IfStatement",
                        "src": "12089:142:0",
                        "trueBody": {
                          "id": 911,
                          "nodeType": "Block",
                          "src": "12132:99:0",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 906,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 899,
                                    "name": "assessorStage",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1368,
                                    "src": "12150:13:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                                      "typeString": "mapping(address => enum AssessmentData.Stage)"
                                    }
                                  },
                                  "id": 903,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 900,
                                      "name": "assessors",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1373,
                                      "src": "12164:9:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                        "typeString": "address[] storage ref"
                                      }
                                    },
                                    "id": 902,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 901,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 882,
                                      "src": "12174:1:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "12164:12:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "12150:27:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Stage_$1364",
                                    "typeString": "enum AssessmentData.Stage"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 904,
                                    "name": "Stage",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1364,
                                    "src": "12180:5:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                      "typeString": "type(enum AssessmentData.Stage)"
                                    }
                                  },
                                  "id": 905,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Burned",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "12180:12:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Stage_$1364",
                                    "typeString": "enum AssessmentData.Stage"
                                  }
                                },
                                "src": "12150:42:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_Stage_$1364",
                                  "typeString": "enum AssessmentData.Stage"
                                }
                              },
                              "id": 907,
                              "nodeType": "ExpressionStatement",
                              "src": "12150:42:0"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 909,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "--",
                                "prefix": false,
                                "src": "12210:6:0",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "id": 908,
                                  "name": "size",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1344,
                                  "src": "12210:4:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 910,
                              "nodeType": "ExpressionStatement",
                              "src": "12210:6:0"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 888,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 885,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 882,
                      "src": "12048:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 886,
                        "name": "assessors",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1373,
                        "src": "12052:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 887,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "12052:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12048:20:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 914,
                  "initializationExpression": {
                    "assignments": [
                      882
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 882,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 914,
                        "src": "12036:6:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 881,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "12036:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 884,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 883,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12045:1:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "12036:10:0"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 890,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "12070:3:0",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 889,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 882,
                        "src": "12070:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 891,
                    "nodeType": "ExpressionStatement",
                    "src": "12070:3:0"
                  },
                  "nodeType": "ForStatement",
                  "src": "12031:210:0"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 917,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 915,
                      "name": "size",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1344,
                      "src": "12254:4:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 916,
                      "name": "MIN_ASSESSMENT_SIZE",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1307,
                      "src": "12261:19:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12254:26:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 930,
                    "nodeType": "Block",
                    "src": "12375:50:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 928,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 926,
                            "name": "continueAssessment",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 879,
                            "src": "12389:18:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "74727565",
                            "id": 927,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12410:4:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "src": "12389:25:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 929,
                        "nodeType": "ExpressionStatement",
                        "src": "12389:25:0"
                      }
                    ]
                  },
                  "id": 931,
                  "nodeType": "IfStatement",
                  "src": "12250:175:0",
                  "trueBody": {
                    "id": 925,
                    "nodeType": "Block",
                    "src": "12282:87:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 918,
                            "name": "cancelAssessment",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 836,
                            "src": "12298:16:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                              "typeString": "function ()"
                            }
                          },
                          "id": 919,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "12298:18:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 920,
                        "nodeType": "ExpressionStatement",
                        "src": "12298:18:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 923,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 921,
                            "name": "continueAssessment",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 879,
                            "src": "12332:18:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "66616c7365",
                            "id": 922,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12353:5:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "false"
                          },
                          "src": "12332:26:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 924,
                        "nodeType": "ExpressionStatement",
                        "src": "12332:26:0"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Burns stakes of all assessors who are in a given stage and cancels the assessment\nif there are less than five assessors left\n@return continueAssessment flag whether there are enough assessors left to continue",
            "id": 933,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "burnStakes",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 877,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 876,
                  "name": "_stage",
                  "nodeType": "VariableDeclaration",
                  "scope": 933,
                  "src": "11966:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Stage_$1364",
                    "typeString": "enum AssessmentData.Stage"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 875,
                    "name": "Stage",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1364,
                    "src": "11966:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Stage_$1364",
                      "typeString": "enum AssessmentData.Stage"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11965:14:0"
            },
            "returnParameters": {
              "id": 880,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 879,
                  "name": "continueAssessment",
                  "nodeType": "VariableDeclaration",
                  "scope": 933,
                  "src": "11996:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 878,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "11996:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11995:25:0"
            },
            "scope": 1295,
            "src": "11946:485:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "private"
          },
          {
            "body": {
              "id": 973,
              "nodeType": "Block",
              "src": "12607:214:0",
              "statements": [
                {
                  "body": {
                    "id": 971,
                    "nodeType": "Block",
                    "src": "12659:156:0",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 959,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 952,
                                  "name": "assessorStage",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1368,
                                  "src": "12682:13:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                                    "typeString": "mapping(address => enum AssessmentData.Stage)"
                                  }
                                },
                                "id": 956,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 953,
                                    "name": "assessors",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1373,
                                    "src": "12696:9:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                      "typeString": "address[] storage ref"
                                    }
                                  },
                                  "id": 955,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 954,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 941,
                                    "src": "12706:1:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "12696:12:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "12682:27:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_Stage_$1364",
                                  "typeString": "enum AssessmentData.Stage"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_enum$_Stage_$1364",
                                  "typeString": "enum AssessmentData.Stage"
                                }
                              ],
                              "id": 951,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "12677:4:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": "uint"
                            },
                            "id": 957,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "12677:33:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 958,
                            "name": "_stage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 935,
                            "src": "12714:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "12677:43:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 970,
                        "nodeType": "IfStatement",
                        "src": "12673:132:0",
                        "trueBody": {
                          "id": 969,
                          "nodeType": "Block",
                          "src": "12722:83:0",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 963,
                                      "name": "assessors",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1373,
                                      "src": "12769:9:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                        "typeString": "address[] storage ref"
                                      }
                                    },
                                    "id": 965,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 964,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 941,
                                      "src": "12779:1:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "12769:12:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 966,
                                    "name": "_topic",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 937,
                                    "src": "12783:6:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_Note_$2799",
                                      "typeString": "enum FathomToken.Note"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_enum$_Note_$2799",
                                      "typeString": "enum FathomToken.Note"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 960,
                                    "name": "fathomToken",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1336,
                                    "src": "12740:11:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_FathomToken_$3062",
                                      "typeString": "contract FathomToken"
                                    }
                                  },
                                  "id": 962,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "emitNotification",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2851,
                                  "src": "12740:28:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_enum$_Note_$2799_$returns$__$",
                                    "typeString": "function (address,enum FathomToken.Note) external"
                                  }
                                },
                                "id": 967,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "12740:50:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 968,
                              "nodeType": "ExpressionStatement",
                              "src": "12740:50:0"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 947,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 944,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 941,
                      "src": "12632:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 945,
                        "name": "assessors",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1373,
                        "src": "12636:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 946,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "12636:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12632:20:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 972,
                  "initializationExpression": {
                    "assignments": [
                      941
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 941,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 972,
                        "src": "12622:6:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 940,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "12622:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 943,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 942,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12629:1:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "12622:8:0"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 949,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "12654:3:0",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 948,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 941,
                        "src": "12654:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 950,
                    "nodeType": "ExpressionStatement",
                    "src": "12654:3:0"
                  },
                  "nodeType": "ForStatement",
                  "src": "12617:198:0"
                }
              ]
            },
            "documentation": "@notice Triggers notification events with a given topic for all assessors in a given stage",
            "id": 974,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "notifyAssessors",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 938,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 935,
                  "name": "_stage",
                  "nodeType": "VariableDeclaration",
                  "scope": 974,
                  "src": "12561:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 934,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "12561:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 937,
                  "name": "_topic",
                  "nodeType": "VariableDeclaration",
                  "scope": 974,
                  "src": "12574:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Note_$2799",
                    "typeString": "enum FathomToken.Note"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 936,
                    "name": "FathomToken.Note",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2799,
                    "src": "12574:16:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Note_$2799",
                      "typeString": "enum FathomToken.Note"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12560:38:0"
            },
            "returnParameters": {
              "id": 939,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12607:0:0"
            },
            "scope": 1295,
            "src": "12536:285:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "private"
          },
          {
            "body": {
              "id": 1097,
              "nodeType": "Block",
              "src": "13079:1133:0",
              "statements": [
                {
                  "assignments": [
                    984
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 984,
                      "name": "finalScores",
                      "nodeType": "VariableDeclaration",
                      "scope": 1097,
                      "src": "13169:24:0",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
                        "typeString": "int256[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 982,
                          "name": "int",
                          "nodeType": "ElementaryTypeName",
                          "src": "13169:3:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 983,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "13169:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
                          "typeString": "int256[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 990,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 988,
                        "name": "done",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1350,
                        "src": "13206:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 987,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "13196:9:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_int256_$dyn_memory_$",
                        "typeString": "function (uint256) pure returns (int256[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 985,
                          "name": "int",
                          "nodeType": "ElementaryTypeName",
                          "src": "13200:3:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 986,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "13200:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
                          "typeString": "int256[]"
                        }
                      }
                    },
                    "id": 989,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13196:15:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_int256_$dyn_memory",
                      "typeString": "int256[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13169:42:0"
                },
                {
                  "assignments": [
                    992
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 992,
                      "name": "idx",
                      "nodeType": "VariableDeclaration",
                      "scope": 1097,
                      "src": "13221:8:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 991,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "13221:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 994,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 993,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "13231:1:0",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13221:11:0"
                },
                {
                  "body": {
                    "id": 1029,
                    "nodeType": "Block",
                    "src": "13286:166:0",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          },
                          "id": 1013,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 1006,
                              "name": "assessorStage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1368,
                              "src": "13304:13:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                                "typeString": "mapping(address => enum AssessmentData.Stage)"
                              }
                            },
                            "id": 1010,
                            "indexExpression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 1007,
                                "name": "assessors",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1373,
                                "src": "13318:9:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                  "typeString": "address[] storage ref"
                                }
                              },
                              "id": 1009,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 1008,
                                "name": "j",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 996,
                                "src": "13328:1:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "13318:12:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "13304:27:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1011,
                              "name": "Stage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1364,
                              "src": "13335:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                "typeString": "type(enum AssessmentData.Stage)"
                              }
                            },
                            "id": 1012,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "Done",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "13335:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "src": "13304:41:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 1028,
                        "nodeType": "IfStatement",
                        "src": "13300:142:0",
                        "trueBody": {
                          "id": 1027,
                          "nodeType": "Block",
                          "src": "13347:95:0",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 1022,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 1014,
                                    "name": "finalScores",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 984,
                                    "src": "13365:11:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
                                      "typeString": "int256[] memory"
                                    }
                                  },
                                  "id": 1016,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 1015,
                                    "name": "idx",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 992,
                                    "src": "13377:3:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "13365:16:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 1017,
                                    "name": "scores",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1381,
                                    "src": "13384:6:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_address_$_t_int128_$",
                                      "typeString": "mapping(address => int128)"
                                    }
                                  },
                                  "id": 1021,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 1018,
                                      "name": "assessors",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1373,
                                      "src": "13391:9:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                        "typeString": "address[] storage ref"
                                      }
                                    },
                                    "id": 1020,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 1019,
                                      "name": "j",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 996,
                                      "src": "13401:1:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "13391:12:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "13384:20:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int128",
                                    "typeString": "int128"
                                  }
                                },
                                "src": "13365:39:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "id": 1023,
                              "nodeType": "ExpressionStatement",
                              "src": "13365:39:0"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 1025,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "++",
                                "prefix": false,
                                "src": "13422:5:0",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "id": 1024,
                                  "name": "idx",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 992,
                                  "src": "13422:3:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 1026,
                              "nodeType": "ExpressionStatement",
                              "src": "13422:5:0"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1002,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 999,
                      "name": "j",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 996,
                      "src": "13259:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1000,
                        "name": "assessors",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1373,
                        "src": "13263:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 1001,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "13263:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "13259:20:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1030,
                  "initializationExpression": {
                    "assignments": [
                      996
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 996,
                        "name": "j",
                        "nodeType": "VariableDeclaration",
                        "scope": 1030,
                        "src": "13247:6:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 995,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "13247:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 998,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 997,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13256:1:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "13247:10:0"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 1004,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "13281:3:0",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 1003,
                        "name": "j",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 996,
                        "src": "13281:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 1005,
                    "nodeType": "ExpressionStatement",
                    "src": "13281:3:0"
                  },
                  "nodeType": "ForStatement",
                  "src": "13242:210:0"
                },
                {
                  "assignments": [
                    1032
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1032,
                      "name": "greatestClusterLength",
                      "nodeType": "VariableDeclaration",
                      "scope": 1097,
                      "src": "13461:26:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1031,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "13461:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1033,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13461:26:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1042,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "id": 1034,
                          "name": "finalScore",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1348,
                          "src": "13498:10:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 1035,
                          "name": "greatestClusterLength",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1032,
                          "src": "13510:21:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 1036,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "13497:35:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_int256_$_t_uint256_$",
                        "typeString": "tuple(int256,uint256)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1039,
                          "name": "finalScores",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 984,
                          "src": "13554:11:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
                            "typeString": "int256[] memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 1040,
                          "name": "CONSENT_RADIUS",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1316,
                          "src": "13567:14:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
                            "typeString": "int256[] memory"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 1037,
                          "name": "Math",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3284,
                          "src": "13535:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Math_$3284_$",
                            "typeString": "type(library Math)"
                          }
                        },
                        "id": 1038,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "getFinalScore",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3197,
                        "src": "13535:18:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_int256_$dyn_memory_ptr_$_t_uint256_$returns$_t_int256_$_t_uint256_$",
                          "typeString": "function (int256[] memory,uint256) pure returns (int256,uint256)"
                        }
                      },
                      "id": 1041,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13535:47:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_int256_$_t_uint256_$",
                        "typeString": "tuple(int256,uint256)"
                      }
                    },
                    "src": "13497:85:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1043,
                  "nodeType": "ExpressionStatement",
                  "src": "13497:85:0"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1048,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1044,
                      "name": "greatestClusterLength",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1032,
                      "src": "13683:21:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 1047,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 1045,
                        "name": "done",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1350,
                        "src": "13707:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "/",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "32",
                        "id": 1046,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13712:1:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_2_by_1",
                          "typeString": "int_const 2"
                        },
                        "value": "2"
                      },
                      "src": "13707:6:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "13683:30:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 1086,
                    "nodeType": "Block",
                    "src": "13910:211:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 1076,
                                      "name": "this",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6024,
                                      "src": "14059:4:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Assessment_$1295",
                                        "typeString": "contract Assessment"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_contract$_Assessment_$1295",
                                        "typeString": "contract Assessment"
                                      }
                                    ],
                                    "id": 1075,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "14051:7:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_address_$",
                                      "typeString": "type(address)"
                                    },
                                    "typeName": "address"
                                  },
                                  "id": 1077,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "14051:13:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1073,
                                  "name": "fathomToken",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1336,
                                  "src": "14029:11:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_FathomToken_$3062",
                                    "typeString": "contract FathomToken"
                                  }
                                },
                                "id": 1074,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "balanceOf",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 5581,
                                "src": "14029:21:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                                  "typeString": "function (address) view external returns (uint256)"
                                }
                              },
                              "id": 1078,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "14029:36:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 1070,
                              "name": "fathomToken",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1336,
                              "src": "14003:11:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_FathomToken_$3062",
                                "typeString": "contract FathomToken"
                              }
                            },
                            "id": 1072,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "destroyTokens",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3038,
                            "src": "14003:25:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256) external"
                            }
                          },
                          "id": 1079,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14003:63:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 1080,
                        "nodeType": "ExpressionStatement",
                        "src": "14003:63:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 1084,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 1081,
                            "name": "assessmentStage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1370,
                            "src": "14080:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1082,
                              "name": "Stage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1364,
                              "src": "14098:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                "typeString": "type(enum AssessmentData.Stage)"
                              }
                            },
                            "id": 1083,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "Burned",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "14098:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "src": "14080:30:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          }
                        },
                        "id": 1085,
                        "nodeType": "ExpressionStatement",
                        "src": "14080:30:0"
                      }
                    ]
                  },
                  "id": 1087,
                  "nodeType": "IfStatement",
                  "src": "13679:442:0",
                  "trueBody": {
                    "id": 1069,
                    "nodeType": "Block",
                    "src": "13715:189:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1050,
                              "name": "greatestClusterLength",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1032,
                              "src": "13736:21:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 1049,
                            "name": "payout",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1294,
                            "src": "13729:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256)"
                            }
                          },
                          "id": 1051,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "13729:29:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 1052,
                        "nodeType": "ExpressionStatement",
                        "src": "13729:29:0"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "id": 1055,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1053,
                            "name": "finalScore",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1348,
                            "src": "13776:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 1054,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "13789:1:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "13776:14:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 1068,
                        "nodeType": "IfStatement",
                        "src": "13772:122:0",
                        "trueBody": {
                          "id": 1067,
                          "nodeType": "Block",
                          "src": "13792:102:0",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 1059,
                                    "name": "assessee",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1338,
                                    "src": "13828:8:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 1064,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "id": 1061,
                                          "name": "finalScore",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1348,
                                          "src": "13843:10:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_int256",
                                            "typeString": "int256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_int256",
                                            "typeString": "int256"
                                          }
                                        ],
                                        "id": 1060,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "13838:4:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint256_$",
                                          "typeString": "type(uint256)"
                                        },
                                        "typeName": "uint"
                                      },
                                      "id": 1062,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "13838:16:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "*",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "id": 1063,
                                      "name": "greatestClusterLength",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1032,
                                      "src": "13857:21:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "src": "13838:40:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1056,
                                    "name": "concept",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1334,
                                    "src": "13810:7:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_Concept_$2247",
                                      "typeString": "contract Concept"
                                    }
                                  },
                                  "id": 1058,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "addMember",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1572,
                                  "src": "13810:17:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                                    "typeString": "function (address,uint256) external"
                                  }
                                },
                                "id": 1065,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "13810:69:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 1066,
                              "nodeType": "ExpressionStatement",
                              "src": "13810:69:0"
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1091,
                        "name": "assessee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1338,
                        "src": "14159:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1092,
                            "name": "FathomToken",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3062,
                            "src": "14169:11:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_FathomToken_$3062_$",
                              "typeString": "type(contract FathomToken)"
                            }
                          },
                          "id": 1093,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "Note",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2799,
                          "src": "14169:16:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Note_$2799_$",
                            "typeString": "type(enum FathomToken.Note)"
                          }
                        },
                        "id": 1094,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "AssessmentFinished",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "14169:35:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Note_$2799",
                          "typeString": "enum FathomToken.Note"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_enum$_Note_$2799",
                          "typeString": "enum FathomToken.Note"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1088,
                        "name": "fathomToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1336,
                        "src": "14130:11:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_FathomToken_$3062",
                          "typeString": "contract FathomToken"
                        }
                      },
                      "id": 1090,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "emitNotification",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2851,
                      "src": "14130:28:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_enum$_Note_$2799_$returns$__$",
                        "typeString": "function (address,enum FathomToken.Note) external"
                      }
                    },
                    "id": 1095,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14130:75:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1096,
                  "nodeType": "ExpressionStatement",
                  "src": "14130:75:0"
                }
              ]
            },
            "documentation": "@notice Calculates the outcome (pass/fail/invalid) of the assessment, triggers the\npayout and ,upon positive outcome, adds the assessee as a member to the concept",
            "id": 1098,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 977,
                      "name": "Stage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1364,
                      "src": "13067:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                        "typeString": "type(enum AssessmentData.Stage)"
                      }
                    },
                    "id": 978,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "Done",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "13067:10:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Stage_$1364",
                      "typeString": "enum AssessmentData.Stage"
                    }
                  }
                ],
                "id": 979,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 976,
                  "name": "onlyInStage",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 34,
                  "src": "13055:11:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Stage_$1364_$",
                    "typeString": "modifier (enum AssessmentData.Stage)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "13055:23:0"
              }
            ],
            "name": "calculateResult",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 975,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "13044:2:0"
            },
            "returnParameters": {
              "id": 980,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "13079:0:0"
            },
            "scope": 1295,
            "src": "13020:1192:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "private"
          },
          {
            "body": {
              "id": 1293,
              "nodeType": "Block",
              "src": "14454:1986:0",
              "statements": [
                {
                  "assignments": [
                    1108
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1108,
                      "name": "dissentBonus",
                      "nodeType": "VariableDeclaration",
                      "scope": 1293,
                      "src": "14547:17:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1107,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "14547:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1110,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 1109,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "14567:1:0",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "14547:21:0"
                },
                {
                  "assignments": [
                    1114
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1114,
                      "name": "inAssessor",
                      "nodeType": "VariableDeclaration",
                      "scope": 1293,
                      "src": "14659:24:0",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr",
                        "typeString": "bool[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 1112,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "14659:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 1113,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "14659:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr",
                          "typeString": "bool[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1121,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1118,
                          "name": "assessors",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1373,
                          "src": "14697:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_storage",
                            "typeString": "address[] storage ref"
                          }
                        },
                        "id": 1119,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "14697:16:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1117,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "14686:10:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bool_$dyn_memory_$",
                        "typeString": "function (uint256) pure returns (bool[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 1115,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "14690:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 1116,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "14690:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr",
                          "typeString": "bool[]"
                        }
                      }
                    },
                    "id": 1120,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14686:28:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bool_$dyn_memory",
                      "typeString": "bool[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "14659:55:0"
                },
                {
                  "assignments": [
                    1125
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1125,
                      "name": "inAssessorPayout",
                      "nodeType": "VariableDeclaration",
                      "scope": 1293,
                      "src": "14769:30:0",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 1123,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "14769:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 1124,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "14769:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1132,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1129,
                          "name": "assessors",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1373,
                          "src": "14813:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_storage",
                            "typeString": "address[] storage ref"
                          }
                        },
                        "id": 1130,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "14813:16:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1128,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "14802:10:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$",
                        "typeString": "function (uint256) pure returns (uint256[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 1126,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "14806:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 1127,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "14806:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      }
                    },
                    "id": 1131,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14802:28:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "14769:61:0"
                },
                {
                  "body": {
                    "id": 1236,
                    "nodeType": "Block",
                    "src": "15039:890:0",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_enum$_Stage_$1364",
                            "typeString": "enum AssessmentData.Stage"
                          },
                          "id": 1151,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 1144,
                              "name": "assessorStage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1368,
                              "src": "15057:13:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                                "typeString": "mapping(address => enum AssessmentData.Stage)"
                              }
                            },
                            "id": 1148,
                            "indexExpression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 1145,
                                "name": "assessors",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1373,
                                "src": "15071:9:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                  "typeString": "address[] storage ref"
                                }
                              },
                              "id": 1147,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 1146,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1134,
                                "src": "15081:1:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "15071:12:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "15057:27:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1149,
                              "name": "Stage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1364,
                              "src": "15088:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                "typeString": "type(enum AssessmentData.Stage)"
                              }
                            },
                            "id": 1150,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "Done",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "15088:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Stage_$1364",
                              "typeString": "enum AssessmentData.Stage"
                            }
                          },
                          "src": "15057:41:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 1235,
                        "nodeType": "IfStatement",
                        "src": "15053:866:0",
                        "trueBody": {
                          "id": 1234,
                          "nodeType": "Block",
                          "src": "15100:819:0",
                          "statements": [
                            {
                              "assignments": [
                                1153
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 1153,
                                  "name": "payoutValue",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 1234,
                                  "src": "15118:16:0",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "typeName": {
                                    "id": 1152,
                                    "name": "uint",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "15118:4:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "value": null,
                                  "visibility": "internal"
                                }
                              ],
                              "id": 1154,
                              "initialValue": null,
                              "nodeType": "VariableDeclarationStatement",
                              "src": "15118:16:0"
                            },
                            {
                              "assignments": [
                                1156
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 1156,
                                  "name": "dissenting",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 1234,
                                  "src": "15152:15:0",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  },
                                  "typeName": {
                                    "id": 1155,
                                    "name": "bool",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "15152:4:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "value": null,
                                  "visibility": "internal"
                                }
                              ],
                              "id": 1157,
                              "initialValue": null,
                              "nodeType": "VariableDeclarationStatement",
                              "src": "15152:15:0"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 1176,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "components": [
                                    {
                                      "argumentTypes": null,
                                      "id": 1158,
                                      "name": "payoutValue",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1153,
                                      "src": "15186:11:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 1159,
                                      "name": "dissenting",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1156,
                                      "src": "15199:10:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    }
                                  ],
                                  "id": 1160,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "TupleExpression",
                                  "src": "15185:25:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$",
                                    "typeString": "tuple(uint256,bool)"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_int256",
                                            "typeString": "int256"
                                          },
                                          "id": 1171,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                              "argumentTypes": null,
                                              "id": 1165,
                                              "name": "scores",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 1381,
                                              "src": "15258:6:0",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_address_$_t_int128_$",
                                                "typeString": "mapping(address => int128)"
                                              }
                                            },
                                            "id": 1169,
                                            "indexExpression": {
                                              "argumentTypes": null,
                                              "baseExpression": {
                                                "argumentTypes": null,
                                                "id": 1166,
                                                "name": "assessors",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1373,
                                                "src": "15265:9:0",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                  "typeString": "address[] storage ref"
                                                }
                                              },
                                              "id": 1168,
                                              "indexExpression": {
                                                "argumentTypes": null,
                                                "id": 1167,
                                                "name": "i",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1134,
                                                "src": "15275:1:0",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_uint256",
                                                  "typeString": "uint256"
                                                }
                                              },
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "nodeType": "IndexAccess",
                                              "src": "15265:12:0",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "15258:20:0",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_int128",
                                              "typeString": "int128"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": "-",
                                          "rightExpression": {
                                            "argumentTypes": null,
                                            "id": 1170,
                                            "name": "finalScore",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1348,
                                            "src": "15281:10:0",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_int256",
                                              "typeString": "int256"
                                            }
                                          },
                                          "src": "15258:33:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_int256",
                                            "typeString": "int256"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_int256",
                                            "typeString": "int256"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 1163,
                                          "name": "Math",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 3284,
                                          "src": "15249:4:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_contract$_Math_$3284_$",
                                            "typeString": "type(library Math)"
                                          }
                                        },
                                        "id": 1164,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "abs",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 3283,
                                        "src": "15249:8:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_delegatecall_pure$_t_int256_$returns$_t_uint256_$",
                                          "typeString": "function (int256) pure returns (uint256)"
                                        }
                                      },
                                      "id": 1172,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "15249:43:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 1173,
                                      "name": "cost",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1346,
                                      "src": "15314:4:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 1174,
                                      "name": "CONSENT_RADIUS",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1316,
                                      "src": "15340:14:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1161,
                                      "name": "Math",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 3284,
                                      "src": "15213:4:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_contract$_Math_$3284_$",
                                        "typeString": "type(library Math)"
                                      }
                                    },
                                    "id": 1162,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "getPayout",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 3265,
                                    "src": "15213:14:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_bool_$",
                                      "typeString": "function (uint256,uint256,uint256) pure returns (uint256,bool)"
                                    }
                                  },
                                  "id": 1175,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "15213:159:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$",
                                    "typeString": "tuple(uint256,bool)"
                                  }
                                },
                                "src": "15185:187:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 1177,
                              "nodeType": "ExpressionStatement",
                              "src": "15185:187:0"
                            },
                            {
                              "condition": {
                                "argumentTypes": null,
                                "id": 1178,
                                "name": "dissenting",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1156,
                                "src": "15394:10:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": {
                                "id": 1232,
                                "nodeType": "Block",
                                "src": "15789:116:0",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1224,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 1220,
                                          "name": "inAssessor",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1114,
                                          "src": "15811:10:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr",
                                            "typeString": "bool[] memory"
                                          }
                                        },
                                        "id": 1222,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 1221,
                                          "name": "i",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1134,
                                          "src": "15822:1:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": true,
                                        "nodeType": "IndexAccess",
                                        "src": "15811:13:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "hexValue": "74727565",
                                        "id": 1223,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "bool",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "15827:4:0",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        },
                                        "value": "true"
                                      },
                                      "src": "15811:20:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "id": 1225,
                                    "nodeType": "ExpressionStatement",
                                    "src": "15811:20:0"
                                  },
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1230,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 1226,
                                          "name": "inAssessorPayout",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1125,
                                          "src": "15853:16:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                            "typeString": "uint256[] memory"
                                          }
                                        },
                                        "id": 1228,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 1227,
                                          "name": "i",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1134,
                                          "src": "15870:1:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": true,
                                        "nodeType": "IndexAccess",
                                        "src": "15853:19:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "id": 1229,
                                        "name": "payoutValue",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1153,
                                        "src": "15875:11:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "15853:33:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 1231,
                                    "nodeType": "ExpressionStatement",
                                    "src": "15853:33:0"
                                  }
                                ]
                              },
                              "id": 1233,
                              "nodeType": "IfStatement",
                              "src": "15390:515:0",
                              "trueBody": {
                                "id": 1219,
                                "nodeType": "Block",
                                "src": "15406:377:0",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1186,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 1179,
                                          "name": "assessorStage",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1368,
                                          "src": "15428:13:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Stage_$1364_$",
                                            "typeString": "mapping(address => enum AssessmentData.Stage)"
                                          }
                                        },
                                        "id": 1183,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "id": 1180,
                                            "name": "assessors",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1373,
                                            "src": "15442:9:0",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                              "typeString": "address[] storage ref"
                                            }
                                          },
                                          "id": 1182,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "id": 1181,
                                            "name": "i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1134,
                                            "src": "15452:1:0",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "15442:12:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": true,
                                        "nodeType": "IndexAccess",
                                        "src": "15428:27:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_enum$_Stage_$1364",
                                          "typeString": "enum AssessmentData.Stage"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 1184,
                                          "name": "Stage",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1364,
                                          "src": "15458:5:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                                            "typeString": "type(enum AssessmentData.Stage)"
                                          }
                                        },
                                        "id": 1185,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "memberName": "Dissent",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": null,
                                        "src": "15458:13:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_enum$_Stage_$1364",
                                          "typeString": "enum AssessmentData.Stage"
                                        }
                                      },
                                      "src": "15428:43:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_enum$_Stage_$1364",
                                        "typeString": "enum AssessmentData.Stage"
                                      }
                                    },
                                    "id": 1187,
                                    "nodeType": "ExpressionStatement",
                                    "src": "15428:43:0"
                                  },
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1192,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "id": 1188,
                                        "name": "dissentBonus",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1108,
                                        "src": "15493:12:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "+=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        },
                                        "id": 1191,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "id": 1189,
                                          "name": "cost",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1346,
                                          "src": "15509:4:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "-",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "id": 1190,
                                          "name": "payoutValue",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1153,
                                          "src": "15516:11:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "src": "15509:18:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "15493:34:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 1193,
                                    "nodeType": "ExpressionStatement",
                                    "src": "15493:34:0"
                                  },
                                  {
                                    "condition": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 1196,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "id": 1194,
                                        "name": "payoutValue",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1153,
                                        "src": "15553:11:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "30",
                                        "id": 1195,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "15567:1:0",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        },
                                        "value": "0"
                                      },
                                      "src": "15553:15:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "falseBody": null,
                                    "id": 1207,
                                    "nodeType": "IfStatement",
                                    "src": "15549:117:0",
                                    "trueBody": {
                                      "id": 1206,
                                      "nodeType": "Block",
                                      "src": "15570:96:0",
                                      "statements": [
                                        {
                                          "expression": {
                                            "argumentTypes": null,
                                            "arguments": [
                                              {
                                                "argumentTypes": null,
                                                "baseExpression": {
                                                  "argumentTypes": null,
                                                  "id": 1200,
                                                  "name": "assessors",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 1373,
                                                  "src": "15617:9:0",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                    "typeString": "address[] storage ref"
                                                  }
                                                },
                                                "id": 1202,
                                                "indexExpression": {
                                                  "argumentTypes": null,
                                                  "id": 1201,
                                                  "name": "i",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 1134,
                                                  "src": "15627:1:0",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                  }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "15617:12:0",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_address",
                                                  "typeString": "address"
                                                }
                                              },
                                              {
                                                "argumentTypes": null,
                                                "id": 1203,
                                                "name": "payoutValue",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1153,
                                                "src": "15631:11:0",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_uint256",
                                                  "typeString": "uint256"
                                                }
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_address",
                                                  "typeString": "address"
                                                },
                                                {
                                                  "typeIdentifier": "t_uint256",
                                                  "typeString": "uint256"
                                                }
                                              ],
                                              "expression": {
                                                "argumentTypes": null,
                                                "id": 1197,
                                                "name": "fathomToken",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 1336,
                                                "src": "15596:11:0",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_contract$_FathomToken_$3062",
                                                  "typeString": "contract FathomToken"
                                                }
                                              },
                                              "id": 1199,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberName": "transfer",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 5569,
                                              "src": "15596:20:0",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                "typeString": "function (address,uint256) external returns (bool)"
                                              }
                                            },
                                            "id": 1204,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "15596:47:0",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bool",
                                              "typeString": "bool"
                                            }
                                          },
                                          "id": 1205,
                                          "nodeType": "ExpressionStatement",
                                          "src": "15596:47:0"
                                        }
                                      ]
                                    }
                                  },
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "id": 1211,
                                            "name": "assessors",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1373,
                                            "src": "15716:9:0",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                              "typeString": "address[] storage ref"
                                            }
                                          },
                                          "id": 1213,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "id": 1212,
                                            "name": "i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 1134,
                                            "src": "15726:1:0",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "15716:12:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                          }
                                        },
                                        {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "expression": {
                                              "argumentTypes": null,
                                              "id": 1214,
                                              "name": "FathomToken",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 3062,
                                              "src": "15730:11:0",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_contract$_FathomToken_$3062_$",
                                                "typeString": "type(contract FathomToken)"
                                              }
                                            },
                                            "id": 1215,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "Note",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 2799,
                                            "src": "15730:16:0",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_enum$_Note_$2799_$",
                                              "typeString": "type(enum FathomToken.Note)"
                                            }
                                          },
                                          "id": 1216,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "memberName": "ConsensusReached",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": null,
                                          "src": "15730:33:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_enum$_Note_$2799",
                                            "typeString": "enum FathomToken.Note"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                          },
                                          {
                                            "typeIdentifier": "t_enum$_Note_$2799",
                                            "typeString": "enum FathomToken.Note"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 1208,
                                          "name": "fathomToken",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1336,
                                          "src": "15687:11:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_FathomToken_$3062",
                                            "typeString": "contract FathomToken"
                                          }
                                        },
                                        "id": 1210,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "emitNotification",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 2851,
                                        "src": "15687:28:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_enum$_Note_$2799_$returns$__$",
                                          "typeString": "function (address,enum FathomToken.Note) external"
                                        }
                                      },
                                      "id": 1217,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "15687:77:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_tuple$__$",
                                        "typeString": "tuple()"
                                      }
                                    },
                                    "id": 1218,
                                    "nodeType": "ExpressionStatement",
                                    "src": "15687:77:0"
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1140,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1137,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1134,
                      "src": "15012:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1138,
                        "name": "assessors",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1373,
                        "src": "15016:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 1139,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "15016:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15012:20:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1237,
                  "initializationExpression": {
                    "assignments": [
                      1134
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 1134,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 1237,
                        "src": "15000:6:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1133,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "15000:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 1136,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1135,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "15009:1:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "15000:10:0"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 1142,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "15034:3:0",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 1141,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1134,
                        "src": "15034:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 1143,
                    "nodeType": "ExpressionStatement",
                    "src": "15034:3:0"
                  },
                  "nodeType": "ForStatement",
                  "src": "14995:934:0"
                },
                {
                  "body": {
                    "id": 1280,
                    "nodeType": "Block",
                    "src": "16097:264:0",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 1249,
                            "name": "inAssessor",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1114,
                            "src": "16115:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr",
                              "typeString": "bool[] memory"
                            }
                          },
                          "id": 1251,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 1250,
                            "name": "j",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1239,
                            "src": "16126:1:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "16115:13:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 1279,
                        "nodeType": "IfStatement",
                        "src": "16111:240:0",
                        "trueBody": {
                          "id": 1278,
                          "nodeType": "Block",
                          "src": "16130:221:0",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 1255,
                                      "name": "assessors",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1373,
                                      "src": "16169:9:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                        "typeString": "address[] storage ref"
                                      }
                                    },
                                    "id": 1257,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 1256,
                                      "name": "j",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1239,
                                      "src": "16179:1:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "16169:12:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 1264,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "id": 1258,
                                        "name": "inAssessorPayout",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1125,
                                        "src": "16183:16:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                          "typeString": "uint256[] memory"
                                        }
                                      },
                                      "id": 1260,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "id": 1259,
                                        "name": "j",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1239,
                                        "src": "16200:1:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "16183:19:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "+",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 1263,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "id": 1261,
                                        "name": "dissentBonus",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1108,
                                        "src": "16205:12:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "/",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "id": 1262,
                                        "name": "_greatestClusterLength",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1100,
                                        "src": "16218:22:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "16205:35:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "src": "16183:57:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1252,
                                    "name": "fathomToken",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1336,
                                    "src": "16148:11:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_FathomToken_$3062",
                                      "typeString": "contract FathomToken"
                                    }
                                  },
                                  "id": 1254,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "transfer",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 5569,
                                  "src": "16148:20:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                    "typeString": "function (address,uint256) external returns (bool)"
                                  }
                                },
                                "id": 1265,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "16148:93:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "id": 1266,
                              "nodeType": "ExpressionStatement",
                              "src": "16148:93:0"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 1270,
                                      "name": "assessors",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1373,
                                      "src": "16288:9:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                        "typeString": "address[] storage ref"
                                      }
                                    },
                                    "id": 1272,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 1271,
                                      "name": "j",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1239,
                                      "src": "16298:1:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "16288:12:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 1273,
                                        "name": "FathomToken",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3062,
                                        "src": "16302:11:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_contract$_FathomToken_$3062_$",
                                          "typeString": "type(contract FathomToken)"
                                        }
                                      },
                                      "id": 1274,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "Note",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 2799,
                                      "src": "16302:16:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_enum$_Note_$2799_$",
                                        "typeString": "type(enum FathomToken.Note)"
                                      }
                                    },
                                    "id": 1275,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "memberName": "ConsensusReached",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": null,
                                    "src": "16302:33:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_Note_$2799",
                                      "typeString": "enum FathomToken.Note"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_enum$_Note_$2799",
                                      "typeString": "enum FathomToken.Note"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1267,
                                    "name": "fathomToken",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1336,
                                    "src": "16259:11:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_FathomToken_$3062",
                                      "typeString": "contract FathomToken"
                                    }
                                  },
                                  "id": 1269,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "emitNotification",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2851,
                                  "src": "16259:28:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_enum$_Note_$2799_$returns$__$",
                                    "typeString": "function (address,enum FathomToken.Note) external"
                                  }
                                },
                                "id": 1276,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "16259:77:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 1277,
                              "nodeType": "ExpressionStatement",
                              "src": "16259:77:0"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1245,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1242,
                      "name": "j",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1239,
                      "src": "16063:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1243,
                        "name": "inAssessorPayout",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1125,
                        "src": "16067:16:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 1244,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "16067:23:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "16063:27:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1281,
                  "initializationExpression": {
                    "assignments": [
                      1239
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 1239,
                        "name": "j",
                        "nodeType": "VariableDeclaration",
                        "scope": 1281,
                        "src": "16051:6:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1238,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "16051:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 1241,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1240,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "16060:1:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "16051:10:0"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 1247,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "16092:3:0",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 1246,
                        "name": "j",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1239,
                        "src": "16092:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 1248,
                    "nodeType": "ExpressionStatement",
                    "src": "16092:3:0"
                  },
                  "nodeType": "ForStatement",
                  "src": "16046:315:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1288,
                                "name": "this",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6024,
                                "src": "16426:4:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Assessment_$1295",
                                  "typeString": "contract Assessment"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Assessment_$1295",
                                  "typeString": "contract Assessment"
                                }
                              ],
                              "id": 1287,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "16418:7:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 1289,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "16418:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1285,
                            "name": "fathomToken",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1336,
                            "src": "16396:11:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_FathomToken_$3062",
                              "typeString": "contract FathomToken"
                            }
                          },
                          "id": 1286,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "balanceOf",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5581,
                          "src": "16396:21:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                            "typeString": "function (address) view external returns (uint256)"
                          }
                        },
                        "id": 1290,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16396:36:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1282,
                        "name": "fathomToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1336,
                        "src": "16370:11:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_FathomToken_$3062",
                          "typeString": "contract FathomToken"
                        }
                      },
                      "id": 1284,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "destroyTokens",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3038,
                      "src": "16370:25:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 1291,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16370:63:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1292,
                  "nodeType": "ExpressionStatement",
                  "src": "16370:63:0"
                }
              ]
            },
            "documentation": "@notice Payout the assessors stake and proportional reward, redistribute\nfrom dissenting assessors and burn all remaining tokens.",
            "id": 1294,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 1103,
                      "name": "Stage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1364,
                      "src": "14442:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Stage_$1364_$",
                        "typeString": "type(enum AssessmentData.Stage)"
                      }
                    },
                    "id": 1104,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "Done",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "14442:10:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Stage_$1364",
                      "typeString": "enum AssessmentData.Stage"
                    }
                  }
                ],
                "id": 1105,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1102,
                  "name": "onlyInStage",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 34,
                  "src": "14430:11:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Stage_$1364_$",
                    "typeString": "modifier (enum AssessmentData.Stage)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "14430:23:0"
              }
            ],
            "name": "payout",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1101,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1100,
                  "name": "_greatestClusterLength",
                  "nodeType": "VariableDeclaration",
                  "scope": 1294,
                  "src": "14393:27:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1099,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "14393:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14392:29:0"
            },
            "returnParameters": {
              "id": 1106,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "14454:0:0"
            },
            "scope": 1295,
            "src": "14377:2063:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "private"
          }
        ],
        "scope": 1296,
        "src": "324:16118:0"
      }
    ],
    "src": "0:16443:0"
  },
  "compiler": {
    "name": "solc",
    "version": "0.5.0+commit.1d4f565a.Emscripten.clang"
  },
  "networks": {
    "42": {
      "events": {},
      "links": {
        "Math": "0x5DCF3a77Bd09C8Eff516089BfF7e57BB9454e15b"
      },
      "address": "0x5DC3fb91124f6D8Be5d4064cCAaE9F3619dD7c2D",
      "transactionHash": "0x934572533c93c60b0dd8a357c12eabb9811fe301b61b93b7520864404b3c7184"
    }
  },
  "schemaVersion": "3.0.9",
  "updatedAt": "2019-06-21T15:40:45.081Z",
  "devdoc": {
    "methods": {
      "commit(bytes32)": {
        "details": "If this function is called (by anyone) after the end of the commit phase, it will burn all non-committed assessors and cancel or advance the assessment."
      },
      "confirmAssessor()": {
        "details": "The assessor's tokens are sent to the address of the assessment. Also, if the confirm-period is over, anyone's call to this function will cancel the assessment."
      },
      "reveal(int128,string)": {
        "details": "Also cancels the assessment if there have been to few reveals in time."
      },
      "steal(int128,string,address)": {
        "details": "The other half of the tokens will be burned when the payout is completed."
      }
    }
  },
  "userdoc": {
    "methods": {
      "addData(bytes)": {
        "notice": "Called by assessors/assessee to store data on the assessment"
      },
      "commit(bytes32)": {
        "notice": "Called by assessors to commit a (hashed) score"
      },
      "confirmAssessor()": {
        "notice": "Adds a called assessor to the assessment by taking their stake"
      },
      "reveal(int128,string)": {
        "notice": "Called by assessors to reveal their score"
      },
      "steal(int128,string,address)": {
        "notice": "Called by anyone to steal half of an assessor's stake and remove them from the assessment"
      }
    }
  }
}