{
  "contractName": "Controller",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_contract",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "_data",
          "type": "bytes"
        },
        {
          "internalType": "contract Avatar",
          "name": "_avatar",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "genericCall",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "avatar",
      "outputs": [
        {
          "internalType": "contract Avatar",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_scheme",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "unregisterScheme",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_scheme",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "isSchemeRegistered",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"avatar\",\"outputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contract\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"genericCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_scheme\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"isSchemeRegistered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_scheme\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"unregisterScheme\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/Users/hadar/workspace/GoodDollar/GoodBootstrap/packages/contracts/upgradables/contracts/DAOStackInterfaces.sol\":\"Controller\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/hadar/workspace/GoodDollar/GoodBootstrap/packages/contracts/upgradables/contracts/DAOStackInterfaces.sol\":{\"keccak256\":\"0xec80b6f0ad18a184cc23b1e172a0d6bf1f1bb5404b086fef56d5beafc46aad04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ccc376680a6b45520d6158996e9c0e634c05cb374de1c6a27796afa3356bdb2\",\"dweb:/ipfs/QmZEUGR5HjF4Me6U9oXsEBeJ5PTvXe1HNNiVjVZbmhYf29\"]}},\"version\":1}",
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "immutableReferences": {},
  "sourceMap": "",
  "deployedSourceMap": "",
  "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6;\n\ninterface Avatar {\n\tfunction nativeToken() external returns (address);\n\n\tfunction owner() external returns (address);\n}\n\ninterface Controller {\n\tfunction genericCall(\n\t\taddress _contract,\n\t\tbytes calldata _data,\n\t\tAvatar _avatar,\n\t\tuint256 _value\n\t) external returns (bool, bytes memory);\n\n\tfunction avatar() external view returns (Avatar);\n\n\tfunction unregisterScheme(address _scheme, address _avatar)\n\t\texternal\n\t\treturns (bool);\n\n\tfunction isSchemeRegistered(address _scheme, address _avatar)\n\t\texternal\n\t\tview\n\t\treturns (bool);\n}\n\ninterface ReputationInterface {\n\tfunction balanceOf(address _user) external view returns (uint256);\n\n\tfunction balanceOfAt(address _user, uint256 _blockNumber)\n\t\texternal\n\t\tview\n\t\treturns (uint256);\n\n\tfunction getVotes(address _user) external view returns (uint256);\n\n\tfunction getVotesAt(\n\t\taddress _user,\n\t\tbool _global,\n\t\tuint256 _blockNumber\n\t) external view returns (uint256);\n\n\tfunction totalSupply() external view returns (uint256);\n\n\tfunction totalSupplyAt(uint256 _blockNumber)\n\t\texternal\n\t\tview\n\t\treturns (uint256);\n\n\tfunction delegateOf(address _user) external returns (address);\n}\n\ninterface SchemeRegistrar {\n\tfunction proposeScheme(\n\t\tAvatar _avatar,\n\t\taddress _scheme,\n\t\tbytes32 _parametersHash,\n\t\tbytes4 _permissions,\n\t\tstring memory _descriptionHash\n\t) external returns (bytes32);\n\n\tevent NewSchemeProposal(\n\t\taddress indexed _avatar,\n\t\tbytes32 indexed _proposalId,\n\t\taddress indexed _intVoteInterface,\n\t\taddress _scheme,\n\t\tbytes32 _parametersHash,\n\t\tbytes4 _permissions,\n\t\tstring _descriptionHash\n\t);\n}\n\ninterface IntVoteInterface {\n\tevent NewProposal(\n\t\tbytes32 indexed _proposalId,\n\t\taddress indexed _organization,\n\t\tuint256 _numOfChoices,\n\t\taddress _proposer,\n\t\tbytes32 _paramsHash\n\t);\n\n\tevent ExecuteProposal(\n\t\tbytes32 indexed _proposalId,\n\t\taddress indexed _organization,\n\t\tuint256 _decision,\n\t\tuint256 _totalReputation\n\t);\n\n\tevent VoteProposal(\n\t\tbytes32 indexed _proposalId,\n\t\taddress indexed _organization,\n\t\taddress indexed _voter,\n\t\tuint256 _vote,\n\t\tuint256 _reputation\n\t);\n\n\tevent CancelProposal(\n\t\tbytes32 indexed _proposalId,\n\t\taddress indexed _organization\n\t);\n\tevent CancelVoting(\n\t\tbytes32 indexed _proposalId,\n\t\taddress indexed _organization,\n\t\taddress indexed _voter\n\t);\n\n\t/**\n\t * @dev register a new proposal with the given parameters. Every proposal has a unique ID which is being\n\t * generated by calculating keccak256 of a incremented counter.\n\t * @param _numOfChoices number of voting choices\n\t * @param _proposalParameters defines the parameters of the voting machine used for this proposal\n\t * @param _proposer address\n\t * @param _organization address - if this address is zero the msg.sender will be used as the organization address.\n\t * @return proposal's id.\n\t */\n\tfunction propose(\n\t\tuint256 _numOfChoices,\n\t\tbytes32 _proposalParameters,\n\t\taddress _proposer,\n\t\taddress _organization\n\t) external returns (bytes32);\n\n\tfunction vote(\n\t\tbytes32 _proposalId,\n\t\tuint256 _vote,\n\t\tuint256 _rep,\n\t\taddress _voter\n\t) external returns (bool);\n\n\tfunction cancelVote(bytes32 _proposalId) external;\n\n\tfunction getNumberOfChoices(bytes32 _proposalId)\n\t\texternal\n\t\tview\n\t\treturns (uint256);\n\n\tfunction isVotable(bytes32 _proposalId) external view returns (bool);\n\n\t/**\n\t * @dev voteStatus returns the reputation voted for a proposal for a specific voting choice.\n\t * @param _proposalId the ID of the proposal\n\t * @param _choice the index in the\n\t * @return voted reputation for the given choice\n\t */\n\tfunction voteStatus(bytes32 _proposalId, uint256 _choice)\n\t\texternal\n\t\tview\n\t\treturns (uint256);\n\n\t/**\n\t * @dev isAbstainAllow returns if the voting machine allow abstain (0)\n\t * @return bool true or false\n\t */\n\tfunction isAbstainAllow() external pure returns (bool);\n\n\t/**\n     * @dev getAllowedRangeOfChoices returns the allowed range of choices for a voting machine.\n     * @return min - minimum number of choices\n               max - maximum number of choices\n     */\n\tfunction getAllowedRangeOfChoices()\n\t\texternal\n\t\tpure\n\t\treturns (uint256 min, uint256 max);\n}\n",
  "sourcePath": "/Users/hadar/workspace/GoodDollar/GoodBootstrap/packages/contracts/upgradables/contracts/DAOStackInterfaces.sol",
  "ast": {
    "absolutePath": "/Users/hadar/workspace/GoodDollar/GoodBootstrap/packages/contracts/upgradables/contracts/DAOStackInterfaces.sol",
    "exportedSymbols": {
      "Avatar": [
        12
      ],
      "Controller": [
        51
      ],
      "IntVoteInterface": [
        256
      ],
      "ReputationInterface": [
        105
      ],
      "SchemeRegistrar": [
        137
      ]
    },
    "id": 257,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1,
        "literals": [
          "solidity",
          ">=",
          "0.6"
        ],
        "nodeType": "PragmaDirective",
        "src": "33:22:0"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": null,
        "fullyImplemented": false,
        "id": 12,
        "linearizedBaseContracts": [
          12
        ],
        "name": "Avatar",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": null,
            "documentation": null,
            "functionSelector": "e1758bd8",
            "id": 6,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "nativeToken",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 2,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "97:2:0"
            },
            "returnParameters": {
              "id": 5,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 6,
                  "src": "118:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "118:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "117:9:0"
            },
            "scope": 12,
            "src": "77:50:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "8da5cb5b",
            "id": 11,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "owner",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 7,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "144:2:0"
            },
            "returnParameters": {
              "id": 10,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 11,
                  "src": "165:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 8,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "165:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "164:9:0"
            },
            "scope": 12,
            "src": "130:44:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 257,
        "src": "57:119:0"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": null,
        "fullyImplemented": false,
        "id": 51,
        "linearizedBaseContracts": [
          51
        ],
        "name": "Controller",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": null,
            "documentation": null,
            "functionSelector": "d1b7089a",
            "id": 27,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "genericCall",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 21,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14,
                  "mutability": "mutable",
                  "name": "_contract",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 27,
                  "src": "226:17:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 13,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "226:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16,
                  "mutability": "mutable",
                  "name": "_data",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 27,
                  "src": "247:20:0",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 15,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "247:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18,
                  "mutability": "mutable",
                  "name": "_avatar",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 27,
                  "src": "271:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Avatar_$12",
                    "typeString": "contract Avatar"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 17,
                    "name": "Avatar",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 12,
                    "src": "271:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Avatar_$12",
                      "typeString": "contract Avatar"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20,
                  "mutability": "mutable",
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 27,
                  "src": "289:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 19,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "289:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "222:84:0"
            },
            "returnParameters": {
              "id": 26,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 27,
                  "src": "325:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 22,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "325:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 27,
                  "src": "331:12:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 24,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "331:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "324:20:0"
            },
            "scope": 51,
            "src": "202:143:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "5aef7de6",
            "id": 32,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "avatar",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 28,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "363:2:0"
            },
            "returnParameters": {
              "id": 31,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 30,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 32,
                  "src": "389:6:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Avatar_$12",
                    "typeString": "contract Avatar"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 29,
                    "name": "Avatar",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 12,
                    "src": "389:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Avatar_$12",
                      "typeString": "contract Avatar"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "388:8:0"
            },
            "scope": 51,
            "src": "348:49:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "039de01d",
            "id": 41,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "unregisterScheme",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 37,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 34,
                  "mutability": "mutable",
                  "name": "_scheme",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 41,
                  "src": "426:15:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 33,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "426:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 36,
                  "mutability": "mutable",
                  "name": "_avatar",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 41,
                  "src": "443:15:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 35,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "443:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "425:34:0"
            },
            "returnParameters": {
              "id": 40,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 41,
                  "src": "482:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 38,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "482:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "481:6:0"
            },
            "scope": 51,
            "src": "400:88:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "9be2faed",
            "id": 50,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "isSchemeRegistered",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 46,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43,
                  "mutability": "mutable",
                  "name": "_scheme",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 50,
                  "src": "519:15:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 42,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "519:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 45,
                  "mutability": "mutable",
                  "name": "_avatar",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 50,
                  "src": "536:15:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 44,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "536:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "518:34:0"
            },
            "returnParameters": {
              "id": 49,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 48,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 50,
                  "src": "582:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 47,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "582:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "581:6:0"
            },
            "scope": 51,
            "src": "491:97:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 257,
        "src": "178:412:0"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": null,
        "fullyImplemented": false,
        "id": 105,
        "linearizedBaseContracts": [
          105
        ],
        "name": "ReputationInterface",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": null,
            "documentation": null,
            "functionSelector": "70a08231",
            "id": 58,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "balanceOf",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 54,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 53,
                  "mutability": "mutable",
                  "name": "_user",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 58,
                  "src": "644:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 52,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "644:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "643:15:0"
            },
            "returnParameters": {
              "id": 57,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 56,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 58,
                  "src": "682:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 55,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "682:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "681:9:0"
            },
            "scope": 105,
            "src": "625:66:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "4ee2cd7e",
            "id": 67,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "balanceOfAt",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 63,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 60,
                  "mutability": "mutable",
                  "name": "_user",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 67,
                  "src": "715:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 59,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "715:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 62,
                  "mutability": "mutable",
                  "name": "_blockNumber",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 67,
                  "src": "730:20:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 61,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "730:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "714:37:0"
            },
            "returnParameters": {
              "id": 66,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 65,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 67,
                  "src": "781:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 64,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "781:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "780:9:0"
            },
            "scope": 105,
            "src": "694:96:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "9ab24eb0",
            "id": 74,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getVotes",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 70,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 69,
                  "mutability": "mutable",
                  "name": "_user",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 74,
                  "src": "811:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 68,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "811:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "810:15:0"
            },
            "returnParameters": {
              "id": 73,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 72,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 74,
                  "src": "849:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 71,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "849:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "848:9:0"
            },
            "scope": 105,
            "src": "793:65:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "a265ba46",
            "id": 85,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getVotesAt",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 81,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 76,
                  "mutability": "mutable",
                  "name": "_user",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 85,
                  "src": "884:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 75,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "884:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 78,
                  "mutability": "mutable",
                  "name": "_global",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 85,
                  "src": "901:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 77,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "901:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 80,
                  "mutability": "mutable",
                  "name": "_blockNumber",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 85,
                  "src": "917:20:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 79,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "917:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "880:60:0"
            },
            "returnParameters": {
              "id": 84,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 83,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 85,
                  "src": "964:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 82,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "964:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "963:9:0"
            },
            "scope": 105,
            "src": "861:112:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "18160ddd",
            "id": 90,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "totalSupply",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 86,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "996:2:0"
            },
            "returnParameters": {
              "id": 89,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 88,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 90,
                  "src": "1022:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 87,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1022:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1021:9:0"
            },
            "scope": 105,
            "src": "976:55:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "981b24d0",
            "id": 97,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "totalSupplyAt",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 93,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 92,
                  "mutability": "mutable",
                  "name": "_blockNumber",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 97,
                  "src": "1057:20:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 91,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1057:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1056:22:0"
            },
            "returnParameters": {
              "id": 96,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 95,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 97,
                  "src": "1108:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 94,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1108:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1107:9:0"
            },
            "scope": 105,
            "src": "1034:83:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "8d22ea2a",
            "id": 104,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "delegateOf",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 100,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 99,
                  "mutability": "mutable",
                  "name": "_user",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 104,
                  "src": "1140:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 98,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1140:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1139:15:0"
            },
            "returnParameters": {
              "id": 103,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 102,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 104,
                  "src": "1173:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 101,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1173:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1172:9:0"
            },
            "scope": 105,
            "src": "1120:62:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 257,
        "src": "592:592:0"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": null,
        "fullyImplemented": false,
        "id": 137,
        "linearizedBaseContracts": [
          137
        ],
        "name": "SchemeRegistrar",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": null,
            "documentation": null,
            "functionSelector": "5099e006",
            "id": 120,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "proposeScheme",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 116,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 107,
                  "mutability": "mutable",
                  "name": "_avatar",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 120,
                  "src": "1241:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Avatar_$12",
                    "typeString": "contract Avatar"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 106,
                    "name": "Avatar",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 12,
                    "src": "1241:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Avatar_$12",
                      "typeString": "contract Avatar"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 109,
                  "mutability": "mutable",
                  "name": "_scheme",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 120,
                  "src": "1259:15:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 108,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1259:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 111,
                  "mutability": "mutable",
                  "name": "_parametersHash",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 120,
                  "src": "1278:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 110,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1278:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 113,
                  "mutability": "mutable",
                  "name": "_permissions",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 120,
                  "src": "1305:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 112,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "1305:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 115,
                  "mutability": "mutable",
                  "name": "_descriptionHash",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 120,
                  "src": "1328:30:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 114,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1328:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1237:124:0"
            },
            "returnParameters": {
              "id": 119,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 118,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 120,
                  "src": "1380:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 117,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1380:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1379:9:0"
            },
            "scope": 137,
            "src": "1215:174:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 136,
            "name": "NewSchemeProposal",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 135,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 122,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_avatar",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 136,
                  "src": "1419:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 121,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1419:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 124,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 136,
                  "src": "1446:27:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 123,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1446:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 126,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_intVoteInterface",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 136,
                  "src": "1477:33:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 125,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1477:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 128,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_scheme",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 136,
                  "src": "1514:15:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 127,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1514:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 130,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_parametersHash",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 136,
                  "src": "1533:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 129,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1533:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 132,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_permissions",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 136,
                  "src": "1560:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 131,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "1560:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 134,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_descriptionHash",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 136,
                  "src": "1583:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 133,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1583:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1415:194:0"
            },
            "src": "1392:218:0"
          }
        ],
        "scope": 257,
        "src": "1186:426:0"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": null,
        "fullyImplemented": false,
        "id": 256,
        "linearizedBaseContracts": [
          256
        ],
        "name": "IntVoteInterface",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": null,
            "id": 149,
            "name": "NewProposal",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 148,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 139,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 149,
                  "src": "1665:27:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 138,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1665:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 141,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_organization",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 149,
                  "src": "1696:29:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 140,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1696:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 143,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_numOfChoices",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 149,
                  "src": "1729:21:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 142,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1729:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 145,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_proposer",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 149,
                  "src": "1754:17:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 144,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1754:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 147,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_paramsHash",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 149,
                  "src": "1775:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 146,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1775:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1661:136:0"
            },
            "src": "1644:154:0"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 159,
            "name": "ExecuteProposal",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 158,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 151,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 159,
                  "src": "1826:27:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 150,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1826:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 153,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_organization",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 159,
                  "src": "1857:29:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 152,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1857:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 155,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_decision",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 159,
                  "src": "1890:17:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 154,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1890:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 157,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_totalReputation",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 159,
                  "src": "1911:24:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 156,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1911:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1822:116:0"
            },
            "src": "1801:138:0"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 171,
            "name": "VoteProposal",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 170,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 161,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 171,
                  "src": "1964:27:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 160,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1964:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 163,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_organization",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 171,
                  "src": "1995:29:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 162,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1995:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 165,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_voter",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 171,
                  "src": "2028:22:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 164,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2028:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 167,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_vote",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 171,
                  "src": "2054:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 166,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2054:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 169,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_reputation",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 171,
                  "src": "2071:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 168,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2071:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1960:133:0"
            },
            "src": "1942:152:0"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 177,
            "name": "CancelProposal",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 176,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 173,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 177,
                  "src": "2121:27:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 172,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2121:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 175,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_organization",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 177,
                  "src": "2152:29:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 174,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2152:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2117:67:0"
            },
            "src": "2097:88:0"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 185,
            "name": "CancelVoting",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 184,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 179,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 185,
                  "src": "2209:27:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 178,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2209:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 181,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_organization",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 185,
                  "src": "2240:29:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 180,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2240:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 183,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_voter",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 185,
                  "src": "2273:22:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 182,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2273:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2205:93:0"
            },
            "src": "2187:112:0"
          },
          {
            "body": null,
            "documentation": {
              "id": 186,
              "nodeType": "StructuredDocumentation",
              "src": "2302:500:0",
              "text": " @dev register a new proposal with the given parameters. Every proposal has a unique ID which is being\n generated by calculating keccak256 of a incremented counter.\n @param _numOfChoices number of voting choices\n @param _proposalParameters defines the parameters of the voting machine used for this proposal\n @param _proposer address\n @param _organization address - if this address is zero the msg.sender will be used as the organization address.\n @return proposal's id."
            },
            "functionSelector": "88737b5e",
            "id": 199,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "propose",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 195,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 188,
                  "mutability": "mutable",
                  "name": "_numOfChoices",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 199,
                  "src": "2824:21:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 187,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2824:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 190,
                  "mutability": "mutable",
                  "name": "_proposalParameters",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 199,
                  "src": "2849:27:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 189,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2849:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 192,
                  "mutability": "mutable",
                  "name": "_proposer",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 199,
                  "src": "2880:17:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 191,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2880:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 194,
                  "mutability": "mutable",
                  "name": "_organization",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 199,
                  "src": "2901:21:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 193,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2901:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2820:105:0"
            },
            "returnParameters": {
              "id": 198,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 197,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 199,
                  "src": "2944:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 196,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2944:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2943:9:0"
            },
            "scope": 256,
            "src": "2804:149:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "359afa49",
            "id": 212,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "vote",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 208,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 201,
                  "mutability": "mutable",
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 212,
                  "src": "2973:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 200,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2973:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 203,
                  "mutability": "mutable",
                  "name": "_vote",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 212,
                  "src": "2996:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 202,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2996:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 205,
                  "mutability": "mutable",
                  "name": "_rep",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 212,
                  "src": "3013:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 204,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3013:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 207,
                  "mutability": "mutable",
                  "name": "_voter",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 212,
                  "src": "3029:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 206,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3029:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2969:77:0"
            },
            "returnParameters": {
              "id": 211,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 210,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 212,
                  "src": "3065:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 209,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3065:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3064:6:0"
            },
            "scope": 256,
            "src": "2956:115:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "9525c0cc",
            "id": 217,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "cancelVote",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 215,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 214,
                  "mutability": "mutable",
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 217,
                  "src": "3094:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 213,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3094:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3093:21:0"
            },
            "returnParameters": {
              "id": 216,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3123:0:0"
            },
            "scope": 256,
            "src": "3074:50:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "a003651d",
            "id": 224,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getNumberOfChoices",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 220,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 219,
                  "mutability": "mutable",
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 224,
                  "src": "3155:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 218,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3155:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3154:21:0"
            },
            "returnParameters": {
              "id": 223,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 222,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 224,
                  "src": "3205:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 221,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3205:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3204:9:0"
            },
            "scope": 256,
            "src": "3127:87:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "c0835106",
            "id": 231,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "isVotable",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 227,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 226,
                  "mutability": "mutable",
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 231,
                  "src": "3236:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 225,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3236:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3235:21:0"
            },
            "returnParameters": {
              "id": 230,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 229,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 231,
                  "src": "3280:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 228,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3280:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3279:6:0"
            },
            "scope": 256,
            "src": "3217:69:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": {
              "id": 232,
              "nodeType": "StructuredDocumentation",
              "src": "3289:234:0",
              "text": " @dev voteStatus returns the reputation voted for a proposal for a specific voting choice.\n @param _proposalId the ID of the proposal\n @param _choice the index in the\n @return voted reputation for the given choice"
            },
            "functionSelector": "b4512913",
            "id": 241,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "voteStatus",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 237,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 234,
                  "mutability": "mutable",
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 241,
                  "src": "3545:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 233,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3545:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 236,
                  "mutability": "mutable",
                  "name": "_choice",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 241,
                  "src": "3566:15:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 235,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3566:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3544:38:0"
            },
            "returnParameters": {
              "id": 240,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 239,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 241,
                  "src": "3612:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 238,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3612:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3611:9:0"
            },
            "scope": 256,
            "src": "3525:96:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": {
              "id": 242,
              "nodeType": "StructuredDocumentation",
              "src": "3624:111:0",
              "text": " @dev isAbstainAllow returns if the voting machine allow abstain (0)\n @return bool true or false"
            },
            "functionSelector": "51d997b2",
            "id": 247,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "isAbstainAllow",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 243,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3760:2:0"
            },
            "returnParameters": {
              "id": 246,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 245,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 247,
                  "src": "3786:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 244,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3786:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3785:6:0"
            },
            "scope": 256,
            "src": "3737:55:0",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": {
              "id": 248,
              "nodeType": "StructuredDocumentation",
              "src": "3795:201:0",
              "text": " @dev getAllowedRangeOfChoices returns the allowed range of choices for a voting machine.\n @return min - minimum number of choices\nmax - maximum number of choices"
            },
            "functionSelector": "5142bc1e",
            "id": 255,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getAllowedRangeOfChoices",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 249,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4031:2:0"
            },
            "returnParameters": {
              "id": 254,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 251,
                  "mutability": "mutable",
                  "name": "min",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 255,
                  "src": "4063:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 250,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4063:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 253,
                  "mutability": "mutable",
                  "name": "max",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 255,
                  "src": "4076:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 252,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4076:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4062:26:0"
            },
            "scope": 256,
            "src": "3998:91:0",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 257,
        "src": "1614:2477:0"
      }
    ],
    "src": "33:4059:0"
  },
  "legacyAST": {
    "absolutePath": "/Users/hadar/workspace/GoodDollar/GoodBootstrap/packages/contracts/upgradables/contracts/DAOStackInterfaces.sol",
    "exportedSymbols": {
      "Avatar": [
        12
      ],
      "Controller": [
        51
      ],
      "IntVoteInterface": [
        256
      ],
      "ReputationInterface": [
        105
      ],
      "SchemeRegistrar": [
        137
      ]
    },
    "id": 257,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1,
        "literals": [
          "solidity",
          ">=",
          "0.6"
        ],
        "nodeType": "PragmaDirective",
        "src": "33:22:0"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": null,
        "fullyImplemented": false,
        "id": 12,
        "linearizedBaseContracts": [
          12
        ],
        "name": "Avatar",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": null,
            "documentation": null,
            "functionSelector": "e1758bd8",
            "id": 6,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "nativeToken",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 2,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "97:2:0"
            },
            "returnParameters": {
              "id": 5,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 6,
                  "src": "118:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "118:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "117:9:0"
            },
            "scope": 12,
            "src": "77:50:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "8da5cb5b",
            "id": 11,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "owner",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 7,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "144:2:0"
            },
            "returnParameters": {
              "id": 10,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 11,
                  "src": "165:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 8,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "165:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "164:9:0"
            },
            "scope": 12,
            "src": "130:44:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 257,
        "src": "57:119:0"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": null,
        "fullyImplemented": false,
        "id": 51,
        "linearizedBaseContracts": [
          51
        ],
        "name": "Controller",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": null,
            "documentation": null,
            "functionSelector": "d1b7089a",
            "id": 27,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "genericCall",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 21,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14,
                  "mutability": "mutable",
                  "name": "_contract",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 27,
                  "src": "226:17:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 13,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "226:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16,
                  "mutability": "mutable",
                  "name": "_data",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 27,
                  "src": "247:20:0",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 15,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "247:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18,
                  "mutability": "mutable",
                  "name": "_avatar",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 27,
                  "src": "271:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Avatar_$12",
                    "typeString": "contract Avatar"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 17,
                    "name": "Avatar",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 12,
                    "src": "271:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Avatar_$12",
                      "typeString": "contract Avatar"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20,
                  "mutability": "mutable",
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 27,
                  "src": "289:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 19,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "289:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "222:84:0"
            },
            "returnParameters": {
              "id": 26,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 27,
                  "src": "325:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 22,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "325:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 27,
                  "src": "331:12:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 24,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "331:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "324:20:0"
            },
            "scope": 51,
            "src": "202:143:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "5aef7de6",
            "id": 32,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "avatar",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 28,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "363:2:0"
            },
            "returnParameters": {
              "id": 31,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 30,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 32,
                  "src": "389:6:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Avatar_$12",
                    "typeString": "contract Avatar"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 29,
                    "name": "Avatar",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 12,
                    "src": "389:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Avatar_$12",
                      "typeString": "contract Avatar"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "388:8:0"
            },
            "scope": 51,
            "src": "348:49:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "039de01d",
            "id": 41,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "unregisterScheme",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 37,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 34,
                  "mutability": "mutable",
                  "name": "_scheme",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 41,
                  "src": "426:15:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 33,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "426:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 36,
                  "mutability": "mutable",
                  "name": "_avatar",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 41,
                  "src": "443:15:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 35,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "443:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "425:34:0"
            },
            "returnParameters": {
              "id": 40,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 39,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 41,
                  "src": "482:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 38,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "482:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "481:6:0"
            },
            "scope": 51,
            "src": "400:88:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "9be2faed",
            "id": 50,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "isSchemeRegistered",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 46,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43,
                  "mutability": "mutable",
                  "name": "_scheme",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 50,
                  "src": "519:15:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 42,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "519:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 45,
                  "mutability": "mutable",
                  "name": "_avatar",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 50,
                  "src": "536:15:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 44,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "536:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "518:34:0"
            },
            "returnParameters": {
              "id": 49,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 48,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 50,
                  "src": "582:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 47,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "582:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "581:6:0"
            },
            "scope": 51,
            "src": "491:97:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 257,
        "src": "178:412:0"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": null,
        "fullyImplemented": false,
        "id": 105,
        "linearizedBaseContracts": [
          105
        ],
        "name": "ReputationInterface",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": null,
            "documentation": null,
            "functionSelector": "70a08231",
            "id": 58,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "balanceOf",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 54,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 53,
                  "mutability": "mutable",
                  "name": "_user",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 58,
                  "src": "644:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 52,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "644:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "643:15:0"
            },
            "returnParameters": {
              "id": 57,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 56,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 58,
                  "src": "682:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 55,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "682:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "681:9:0"
            },
            "scope": 105,
            "src": "625:66:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "4ee2cd7e",
            "id": 67,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "balanceOfAt",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 63,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 60,
                  "mutability": "mutable",
                  "name": "_user",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 67,
                  "src": "715:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 59,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "715:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 62,
                  "mutability": "mutable",
                  "name": "_blockNumber",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 67,
                  "src": "730:20:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 61,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "730:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "714:37:0"
            },
            "returnParameters": {
              "id": 66,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 65,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 67,
                  "src": "781:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 64,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "781:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "780:9:0"
            },
            "scope": 105,
            "src": "694:96:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "9ab24eb0",
            "id": 74,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getVotes",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 70,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 69,
                  "mutability": "mutable",
                  "name": "_user",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 74,
                  "src": "811:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 68,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "811:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "810:15:0"
            },
            "returnParameters": {
              "id": 73,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 72,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 74,
                  "src": "849:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 71,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "849:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "848:9:0"
            },
            "scope": 105,
            "src": "793:65:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "a265ba46",
            "id": 85,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getVotesAt",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 81,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 76,
                  "mutability": "mutable",
                  "name": "_user",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 85,
                  "src": "884:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 75,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "884:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 78,
                  "mutability": "mutable",
                  "name": "_global",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 85,
                  "src": "901:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 77,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "901:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 80,
                  "mutability": "mutable",
                  "name": "_blockNumber",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 85,
                  "src": "917:20:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 79,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "917:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "880:60:0"
            },
            "returnParameters": {
              "id": 84,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 83,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 85,
                  "src": "964:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 82,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "964:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "963:9:0"
            },
            "scope": 105,
            "src": "861:112:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "18160ddd",
            "id": 90,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "totalSupply",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 86,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "996:2:0"
            },
            "returnParameters": {
              "id": 89,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 88,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 90,
                  "src": "1022:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 87,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1022:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1021:9:0"
            },
            "scope": 105,
            "src": "976:55:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "981b24d0",
            "id": 97,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "totalSupplyAt",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 93,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 92,
                  "mutability": "mutable",
                  "name": "_blockNumber",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 97,
                  "src": "1057:20:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 91,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1057:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1056:22:0"
            },
            "returnParameters": {
              "id": 96,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 95,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 97,
                  "src": "1108:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 94,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1108:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1107:9:0"
            },
            "scope": 105,
            "src": "1034:83:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "8d22ea2a",
            "id": 104,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "delegateOf",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 100,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 99,
                  "mutability": "mutable",
                  "name": "_user",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 104,
                  "src": "1140:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 98,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1140:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1139:15:0"
            },
            "returnParameters": {
              "id": 103,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 102,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 104,
                  "src": "1173:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 101,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1173:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1172:9:0"
            },
            "scope": 105,
            "src": "1120:62:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 257,
        "src": "592:592:0"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": null,
        "fullyImplemented": false,
        "id": 137,
        "linearizedBaseContracts": [
          137
        ],
        "name": "SchemeRegistrar",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": null,
            "documentation": null,
            "functionSelector": "5099e006",
            "id": 120,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "proposeScheme",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 116,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 107,
                  "mutability": "mutable",
                  "name": "_avatar",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 120,
                  "src": "1241:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Avatar_$12",
                    "typeString": "contract Avatar"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 106,
                    "name": "Avatar",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 12,
                    "src": "1241:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Avatar_$12",
                      "typeString": "contract Avatar"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 109,
                  "mutability": "mutable",
                  "name": "_scheme",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 120,
                  "src": "1259:15:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 108,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1259:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 111,
                  "mutability": "mutable",
                  "name": "_parametersHash",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 120,
                  "src": "1278:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 110,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1278:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 113,
                  "mutability": "mutable",
                  "name": "_permissions",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 120,
                  "src": "1305:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 112,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "1305:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 115,
                  "mutability": "mutable",
                  "name": "_descriptionHash",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 120,
                  "src": "1328:30:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 114,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1328:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1237:124:0"
            },
            "returnParameters": {
              "id": 119,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 118,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 120,
                  "src": "1380:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 117,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1380:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1379:9:0"
            },
            "scope": 137,
            "src": "1215:174:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 136,
            "name": "NewSchemeProposal",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 135,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 122,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_avatar",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 136,
                  "src": "1419:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 121,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1419:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 124,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 136,
                  "src": "1446:27:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 123,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1446:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 126,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_intVoteInterface",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 136,
                  "src": "1477:33:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 125,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1477:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 128,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_scheme",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 136,
                  "src": "1514:15:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 127,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1514:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 130,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_parametersHash",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 136,
                  "src": "1533:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 129,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1533:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 132,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_permissions",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 136,
                  "src": "1560:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 131,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "1560:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 134,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_descriptionHash",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 136,
                  "src": "1583:23:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 133,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1583:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1415:194:0"
            },
            "src": "1392:218:0"
          }
        ],
        "scope": 257,
        "src": "1186:426:0"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": null,
        "fullyImplemented": false,
        "id": 256,
        "linearizedBaseContracts": [
          256
        ],
        "name": "IntVoteInterface",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": null,
            "id": 149,
            "name": "NewProposal",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 148,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 139,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 149,
                  "src": "1665:27:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 138,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1665:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 141,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_organization",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 149,
                  "src": "1696:29:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 140,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1696:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 143,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_numOfChoices",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 149,
                  "src": "1729:21:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 142,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1729:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 145,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_proposer",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 149,
                  "src": "1754:17:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 144,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1754:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 147,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_paramsHash",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 149,
                  "src": "1775:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 146,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1775:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1661:136:0"
            },
            "src": "1644:154:0"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 159,
            "name": "ExecuteProposal",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 158,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 151,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 159,
                  "src": "1826:27:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 150,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1826:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 153,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_organization",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 159,
                  "src": "1857:29:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 152,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1857:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 155,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_decision",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 159,
                  "src": "1890:17:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 154,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1890:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 157,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_totalReputation",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 159,
                  "src": "1911:24:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 156,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1911:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1822:116:0"
            },
            "src": "1801:138:0"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 171,
            "name": "VoteProposal",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 170,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 161,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 171,
                  "src": "1964:27:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 160,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1964:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 163,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_organization",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 171,
                  "src": "1995:29:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 162,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1995:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 165,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_voter",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 171,
                  "src": "2028:22:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 164,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2028:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 167,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_vote",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 171,
                  "src": "2054:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 166,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2054:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 169,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_reputation",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 171,
                  "src": "2071:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 168,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2071:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1960:133:0"
            },
            "src": "1942:152:0"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 177,
            "name": "CancelProposal",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 176,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 173,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 177,
                  "src": "2121:27:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 172,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2121:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 175,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_organization",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 177,
                  "src": "2152:29:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 174,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2152:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2117:67:0"
            },
            "src": "2097:88:0"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 185,
            "name": "CancelVoting",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 184,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 179,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 185,
                  "src": "2209:27:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 178,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2209:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 181,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_organization",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 185,
                  "src": "2240:29:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 180,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2240:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 183,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_voter",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 185,
                  "src": "2273:22:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 182,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2273:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2205:93:0"
            },
            "src": "2187:112:0"
          },
          {
            "body": null,
            "documentation": {
              "id": 186,
              "nodeType": "StructuredDocumentation",
              "src": "2302:500:0",
              "text": " @dev register a new proposal with the given parameters. Every proposal has a unique ID which is being\n generated by calculating keccak256 of a incremented counter.\n @param _numOfChoices number of voting choices\n @param _proposalParameters defines the parameters of the voting machine used for this proposal\n @param _proposer address\n @param _organization address - if this address is zero the msg.sender will be used as the organization address.\n @return proposal's id."
            },
            "functionSelector": "88737b5e",
            "id": 199,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "propose",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 195,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 188,
                  "mutability": "mutable",
                  "name": "_numOfChoices",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 199,
                  "src": "2824:21:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 187,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2824:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 190,
                  "mutability": "mutable",
                  "name": "_proposalParameters",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 199,
                  "src": "2849:27:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 189,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2849:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 192,
                  "mutability": "mutable",
                  "name": "_proposer",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 199,
                  "src": "2880:17:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 191,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2880:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 194,
                  "mutability": "mutable",
                  "name": "_organization",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 199,
                  "src": "2901:21:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 193,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2901:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2820:105:0"
            },
            "returnParameters": {
              "id": 198,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 197,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 199,
                  "src": "2944:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 196,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2944:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2943:9:0"
            },
            "scope": 256,
            "src": "2804:149:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "359afa49",
            "id": 212,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "vote",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 208,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 201,
                  "mutability": "mutable",
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 212,
                  "src": "2973:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 200,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2973:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 203,
                  "mutability": "mutable",
                  "name": "_vote",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 212,
                  "src": "2996:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 202,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2996:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 205,
                  "mutability": "mutable",
                  "name": "_rep",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 212,
                  "src": "3013:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 204,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3013:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 207,
                  "mutability": "mutable",
                  "name": "_voter",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 212,
                  "src": "3029:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 206,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3029:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2969:77:0"
            },
            "returnParameters": {
              "id": 211,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 210,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 212,
                  "src": "3065:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 209,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3065:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3064:6:0"
            },
            "scope": 256,
            "src": "2956:115:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "9525c0cc",
            "id": 217,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "cancelVote",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 215,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 214,
                  "mutability": "mutable",
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 217,
                  "src": "3094:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 213,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3094:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3093:21:0"
            },
            "returnParameters": {
              "id": 216,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3123:0:0"
            },
            "scope": 256,
            "src": "3074:50:0",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "a003651d",
            "id": 224,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getNumberOfChoices",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 220,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 219,
                  "mutability": "mutable",
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 224,
                  "src": "3155:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 218,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3155:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3154:21:0"
            },
            "returnParameters": {
              "id": 223,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 222,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 224,
                  "src": "3205:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 221,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3205:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3204:9:0"
            },
            "scope": 256,
            "src": "3127:87:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "c0835106",
            "id": 231,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "isVotable",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 227,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 226,
                  "mutability": "mutable",
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 231,
                  "src": "3236:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 225,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3236:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3235:21:0"
            },
            "returnParameters": {
              "id": 230,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 229,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 231,
                  "src": "3280:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 228,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3280:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3279:6:0"
            },
            "scope": 256,
            "src": "3217:69:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": {
              "id": 232,
              "nodeType": "StructuredDocumentation",
              "src": "3289:234:0",
              "text": " @dev voteStatus returns the reputation voted for a proposal for a specific voting choice.\n @param _proposalId the ID of the proposal\n @param _choice the index in the\n @return voted reputation for the given choice"
            },
            "functionSelector": "b4512913",
            "id": 241,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "voteStatus",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 237,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 234,
                  "mutability": "mutable",
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 241,
                  "src": "3545:19:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 233,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3545:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 236,
                  "mutability": "mutable",
                  "name": "_choice",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 241,
                  "src": "3566:15:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 235,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3566:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3544:38:0"
            },
            "returnParameters": {
              "id": 240,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 239,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 241,
                  "src": "3612:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 238,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3612:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3611:9:0"
            },
            "scope": 256,
            "src": "3525:96:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": {
              "id": 242,
              "nodeType": "StructuredDocumentation",
              "src": "3624:111:0",
              "text": " @dev isAbstainAllow returns if the voting machine allow abstain (0)\n @return bool true or false"
            },
            "functionSelector": "51d997b2",
            "id": 247,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "isAbstainAllow",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 243,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3760:2:0"
            },
            "returnParameters": {
              "id": 246,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 245,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 247,
                  "src": "3786:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 244,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3786:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3785:6:0"
            },
            "scope": 256,
            "src": "3737:55:0",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": {
              "id": 248,
              "nodeType": "StructuredDocumentation",
              "src": "3795:201:0",
              "text": " @dev getAllowedRangeOfChoices returns the allowed range of choices for a voting machine.\n @return min - minimum number of choices\nmax - maximum number of choices"
            },
            "functionSelector": "5142bc1e",
            "id": 255,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getAllowedRangeOfChoices",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 249,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4031:2:0"
            },
            "returnParameters": {
              "id": 254,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 251,
                  "mutability": "mutable",
                  "name": "min",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 255,
                  "src": "4063:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 250,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4063:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 253,
                  "mutability": "mutable",
                  "name": "max",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 255,
                  "src": "4076:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 252,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4076:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4062:26:0"
            },
            "scope": 256,
            "src": "3998:91:0",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 257,
        "src": "1614:2477:0"
      }
    ],
    "src": "33:4059:0"
  },
  "compiler": {
    "name": "solc",
    "version": "0.6.12+commit.27d51765.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.3.0",
  "updatedAt": "2021-01-17T13:45:26.933Z",
  "devdoc": {
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "version": 1
  }
}