{
  "contractName": "BetaTemplateBase",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "minimeFac",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "etherToken",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "apm",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "fac",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "appId",
          "type": "bytes32"
        }
      ],
      "name": "latestVersionAppBase",
      "outputs": [
        {
          "name": "base",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "aragonID",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "appIds",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "_fac",
          "type": "address"
        },
        {
          "name": "_minimeFac",
          "type": "address"
        },
        {
          "name": "_apm",
          "type": "address"
        },
        {
          "name": "_etherToken",
          "type": "address"
        },
        {
          "name": "_aragonID",
          "type": "address"
        },
        {
          "name": "_appIds",
          "type": "bytes32[4]"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "token",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "cacheOwner",
          "type": "address"
        }
      ],
      "name": "DeployToken",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "dao",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "token",
          "type": "address"
        }
      ],
      "name": "DeployInstance",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "appProxy",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "appId",
          "type": "bytes32"
        }
      ],
      "name": "InstalledApp",
      "type": "event"
    }
  ],
  "bytecode": "0x6060604052341561000f57600080fd5b6040516101208061091e8339810160405280805190602001909190805190602001909190805190602001909190805190602001909190805190602001909150836000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060059060046101a39291906101af565b5050505050505061021a565b82600481019282156101e4579160200282015b828111156101e35782518290600019169055916020019190600101906101c2565b5b5090506101f191906101f5565b5090565b61021791905b808211156102135760008160009055506001016101fb565b5090565b90565b6106f5806102296000396000f300606060405260043610610083576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063039fa76014610088578063b8066bcb146100dd578063bc8c35f214610132578063c3b3147214610187578063c6d2c717146101dc578063d165603f14610243578063ef41afcd14610298575b600080fd5b341561009357600080fd5b61009b6102d7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156100e857600080fd5b6100f06102fd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561013d57600080fd5b610145610323565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561019257600080fd5b61019a610348565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101e757600080fd5b61020160048080356000191690602001909190505061036e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561024e57600080fd5b610256610554565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156102a357600080fd5b6102b9600480803590602001909190505061057a565b60405180826000191660001916815260200191505060405180910390f35b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080610379610594565b73ffffffffffffffffffffffffffffffffffffffff16630178b8bf846000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15156103f757600080fd5b6102c65a03f1151561040857600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff16633b3b57de846000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b151561049057600080fd5b6102c65a03f115156104a157600080fd5b5050506040518051905090508073ffffffffffffffffffffffffffffffffffffffff1663c36af460600060405160a001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160a060405180830381600087803b151561051957600080fd5b6102c65a03f1151561052a57600080fd5b50505060405180606001805190602001805190602001604052909150508092505081915050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60058160048110151561058957fe5b016000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632b20e3976000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561062357600080fd5b6102c65a03f1151561063457600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff16633f15457f6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156106a957600080fd5b6102c65a03f115156106ba57600080fd5b505050604051805190509050905600a165627a7a723058202e7643075e85afcbad87d7fbdc4c46a1d5c6b55551983b52a828defcdf3a290f0029",
  "deployedBytecode": "0x606060405260043610610083576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063039fa76014610088578063b8066bcb146100dd578063bc8c35f214610132578063c3b3147214610187578063c6d2c717146101dc578063d165603f14610243578063ef41afcd14610298575b600080fd5b341561009357600080fd5b61009b6102d7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156100e857600080fd5b6100f06102fd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561013d57600080fd5b610145610323565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561019257600080fd5b61019a610348565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101e757600080fd5b61020160048080356000191690602001909190505061036e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561024e57600080fd5b610256610554565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156102a357600080fd5b6102b9600480803590602001909190505061057a565b60405180826000191660001916815260200191505060405180910390f35b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080610379610594565b73ffffffffffffffffffffffffffffffffffffffff16630178b8bf846000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15156103f757600080fd5b6102c65a03f1151561040857600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff16633b3b57de846000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b151561049057600080fd5b6102c65a03f115156104a157600080fd5b5050506040518051905090508073ffffffffffffffffffffffffffffffffffffffff1663c36af460600060405160a001526040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160a060405180830381600087803b151561051957600080fd5b6102c65a03f1151561052a57600080fd5b50505060405180606001805190602001805190602001604052909150508092505081915050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60058160048110151561058957fe5b016000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632b20e3976000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561062357600080fd5b6102c65a03f1151561063457600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff16633f15457f6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156106a957600080fd5b6102c65a03f115156106ba57600080fd5b505050604051805190509050905600a165627a7a723058202e7643075e85afcbad87d7fbdc4c46a1d5c6b55551983b52a828defcdf3a290f0029",
  "sourceMap": "613:5074:0:-;;;1218:413;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1478:4;1472:3;;:10;;;;;;;;;;;;;;;;;;1498:4;1492:3;;:10;;;;;;;;;;;;;;;;;;1524;1512:9;;:22;;;;;;;;;;;;;;;;;;1557:11;1544:10;;:24;;;;;;;;;;;;;;;;;;1589:9;1578:8;;:20;;;;;;;;;;;;;;;;;;1617:7;1608:6;:16;;;;;;;:::i;:::-;;1218:413;;;;;;613:5074;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;",
  "deployedSourceMap": "613:5074:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;700:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;741:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;645:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;673:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5360:223;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;775:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;820:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;700:35;;;;;;;;;;;;;:::o;741:28::-;;;;;;;;;;;;;:::o;645:22::-;;;;;;;;;;;;;:::o;673:21::-;;;;;;;;;;;;;:::o;5360:223::-;5426:12;5450:9;5482:5;:3;:5::i;:::-;:14;;;5497:5;5482:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5467:42;;;5510:5;5467:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5450:67;;5538:4;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5527:27;;;;;;;;5572:4;5565:11;;5360:223;;;;:::o;775:39::-;;;;;;;;;;;;;:::o;820:24::-;;;;;;;;;;;;;;;;;;;;:::o;5589:96::-;5627:11;5657:3;;;;;;;;;;;:13;;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5650:28;;5589:96;:::o",
  "source": "pragma solidity 0.4.18;\n\nimport \"@aragon/os/contracts/apm/APMRegistry.sol\";\nimport \"@aragon/os/contracts/factory/DAOFactory.sol\";\nimport \"@aragon/os/contracts/kernel/Kernel.sol\";\nimport \"@aragon/os/contracts/acl/ACL.sol\";\nimport \"@aragon/os/contracts/lib/minime/MiniMeToken.sol\";\nimport \"@aragon/os/contracts/common/EtherToken.sol\";\n\nimport \"@aragon/id/contracts/IFIFSResolvingRegistrar.sol\";\n\nimport \"@aragon/apps-voting/contracts/Voting.sol\";\nimport \"@aragon/apps-vault/contracts/Vault.sol\";\nimport \"@aragon/apps-token-manager/contracts/TokenManager.sol\";\nimport \"@aragon/apps-finance/contracts/Finance.sol\";\n\n\ncontract BetaTemplateBase {\n    APMRegistry public apm;\n    DAOFactory public fac;\n    MiniMeTokenFactory public minimeFac;\n    EtherToken public etherToken;\n    IFIFSResolvingRegistrar public aragonID;\n    bytes32[4] public appIds;\n\n    mapping (address => address) tokenCache;\n\n    // ensure alphabetic order\n    enum Apps { Finance, TokenManager, Vault, Voting }\n\n    event DeployToken(address token, address indexed cacheOwner);\n    event DeployInstance(address dao, address indexed token);\n    event InstalledApp(address appProxy, bytes32 appId);\n\n    address constant ANY_ENTITY = address(-1);\n\n    function BetaTemplateBase(\n        DAOFactory _fac,\n        MiniMeTokenFactory _minimeFac,\n        APMRegistry _apm,\n        EtherToken _etherToken,\n        IFIFSResolvingRegistrar _aragonID,\n        bytes32[4] _appIds\n    )\n        public\n    {\n        apm = _apm;\n        fac = _fac;\n        minimeFac = _minimeFac;\n        etherToken = _etherToken;\n        aragonID = _aragonID;\n        appIds = _appIds;\n    }\n\n    function createDAO(\n        string name,\n        MiniMeToken token,\n        address[] holders,\n        uint256[] stakes,\n        uint256 _maxTokens\n    )\n        internal\n        returns (Voting)\n    {\n        Kernel dao = fac.newDAO(this);\n\n        ACL acl = ACL(dao.acl());\n\n        acl.createPermission(\n            this,\n            dao,\n            dao.APP_MANAGER_ROLE(),\n            this\n        );\n\n        Voting voting = Voting(dao.newAppInstance(appIds[uint8(Apps.Voting)], latestVersionAppBase(appIds[uint8(Apps.Voting)])));\n        InstalledApp(voting, appIds[uint8(Apps.Voting)]);\n        Vault vault = Vault(dao.newAppInstance(appIds[uint8(Apps.Vault)], latestVersionAppBase(appIds[uint8(Apps.Vault)])));\n        InstalledApp(vault, appIds[uint8(Apps.Vault)]);\n        Finance finance = Finance(dao.newAppInstance(appIds[uint8(Apps.Finance)], latestVersionAppBase(appIds[uint8(Apps.Finance)])));\n        InstalledApp(finance, appIds[uint8(Apps.Finance)]);\n        TokenManager tokenManager = TokenManager(dao.newAppInstance(appIds[uint8(Apps.TokenManager)], latestVersionAppBase(appIds[uint8(Apps.TokenManager)])));\n        InstalledApp(tokenManager, appIds[uint8(Apps.TokenManager)]);\n\n        token.changeController(tokenManager); // sender has to create tokens\n\n        // permissions\n        acl.createPermission(ANY_ENTITY, voting, voting.CREATE_VOTES_ROLE(), voting);\n        acl.createPermission(voting, voting, voting.MODIFY_QUORUM_ROLE(), voting);\n\n        acl.createPermission(finance, vault, vault.TRANSFER_ROLE(), voting);\n        acl.createPermission(voting, finance, finance.CREATE_PAYMENTS_ROLE(), voting);\n        acl.createPermission(voting, finance, finance.EXECUTE_PAYMENTS_ROLE(), voting);\n        acl.createPermission(voting, finance, finance.DISABLE_PAYMENTS_ROLE(), voting);\n        acl.createPermission(voting, tokenManager, tokenManager.ASSIGN_ROLE(), voting);\n        acl.createPermission(voting, tokenManager, tokenManager.REVOKE_VESTINGS_ROLE(), voting);\n\n        require(holders.length == stakes.length);\n\n        acl.createPermission(this, tokenManager, tokenManager.MINT_ROLE(), this);\n\n        tokenManager.initialize(token, _maxTokens > 1, _maxTokens, true);\n\n        for (uint256 i = 0; i < holders.length; i++) {\n            tokenManager.mint(holders[i], stakes[i]);\n        }\n\n        // inits\n        finance.initialize(vault, etherToken, uint64(-1) - uint64(now)); // yuge period\n\n        // clean-up\n        acl.grantPermission(voting, dao, dao.APP_MANAGER_ROLE());\n        acl.setPermissionManager(voting, dao, dao.APP_MANAGER_ROLE());\n        acl.grantPermission(voting, acl, acl.CREATE_PERMISSIONS_ROLE());\n        acl.setPermissionManager(voting, acl, acl.CREATE_PERMISSIONS_ROLE());\n        acl.grantPermission(voting, tokenManager, tokenManager.MINT_ROLE());\n        acl.setPermissionManager(voting, tokenManager, tokenManager.MINT_ROLE());\n        // no revokes to save gas as factory can't do anything to orgs (clutters acl representation)\n\n        registerAragonID(name, dao);\n        DeployInstance(dao, token);\n\n        // voting is returned so init can happen later\n        return voting;\n    }\n\n    function cacheToken(MiniMeToken token, address owner) internal {\n        tokenCache[owner] = token;\n        DeployToken(token, owner);\n    }\n\n    function popTokenCache(address owner) internal returns (MiniMeToken) {\n        require(tokenCache[owner] != address(0));\n        MiniMeToken token = MiniMeToken(tokenCache[owner]);\n        delete tokenCache[owner];\n\n        return token;\n    }\n\n    function registerAragonID(string name, address owner) internal {\n        aragonID.register(keccak256(name), owner);\n    }\n\n    /* solium-disable-next-line */\n    function latestVersionAppBase(bytes32 appId) public view returns (address base) {\n        Repo repo = Repo(PublicResolver(ens().resolver(appId)).addr(appId));\n        (,base,) = repo.getLatest();\n\n        return base;\n    }\n\n    function ens() internal view returns (AbstractENS) {\n        return apm.registrar().ens();\n    }\n}\n",
  "sourcePath": "/Users/jorge/provident/aragon-apps/templates/beta/contracts/BetaTemplateBase.sol",
  "ast": {
    "attributes": {
      "absolutePath": "/Users/jorge/provident/aragon-apps/templates/beta/contracts/BetaTemplateBase.sol",
      "exportedSymbols": {
        "BetaTemplateBase": [
          622
        ]
      }
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "0.4",
            ".18"
          ]
        },
        "id": 1,
        "name": "PragmaDirective",
        "src": "0:23:0"
      },
      {
        "attributes": {
          "SourceUnit": 6280,
          "absolutePath": "@aragon/os/contracts/apm/APMRegistry.sol",
          "file": "@aragon/os/contracts/apm/APMRegistry.sol",
          "scope": 623,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 2,
        "name": "ImportDirective",
        "src": "25:50:0"
      },
      {
        "attributes": {
          "SourceUnit": 9268,
          "absolutePath": "@aragon/os/contracts/factory/DAOFactory.sol",
          "file": "@aragon/os/contracts/factory/DAOFactory.sol",
          "scope": 623,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 3,
        "name": "ImportDirective",
        "src": "76:53:0"
      },
      {
        "attributes": {
          "SourceUnit": 9892,
          "absolutePath": "@aragon/os/contracts/kernel/Kernel.sol",
          "file": "@aragon/os/contracts/kernel/Kernel.sol",
          "scope": 623,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 4,
        "name": "ImportDirective",
        "src": "130:48:0"
      },
      {
        "attributes": {
          "SourceUnit": 5511,
          "absolutePath": "@aragon/os/contracts/acl/ACL.sol",
          "file": "@aragon/os/contracts/acl/ACL.sol",
          "scope": 623,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 5,
        "name": "ImportDirective",
        "src": "179:42:0"
      },
      {
        "attributes": {
          "SourceUnit": 11915,
          "absolutePath": "@aragon/os/contracts/lib/minime/MiniMeToken.sol",
          "file": "@aragon/os/contracts/lib/minime/MiniMeToken.sol",
          "scope": 623,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 6,
        "name": "ImportDirective",
        "src": "222:57:0"
      },
      {
        "attributes": {
          "SourceUnit": 7196,
          "absolutePath": "@aragon/os/contracts/common/EtherToken.sol",
          "file": "@aragon/os/contracts/common/EtherToken.sol",
          "scope": 623,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 7,
        "name": "ImportDirective",
        "src": "280:52:0"
      },
      {
        "attributes": {
          "SourceUnit": 4360,
          "absolutePath": "@aragon/id/contracts/IFIFSResolvingRegistrar.sol",
          "file": "@aragon/id/contracts/IFIFSResolvingRegistrar.sol",
          "scope": 623,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 8,
        "name": "ImportDirective",
        "src": "334:58:0"
      },
      {
        "attributes": {
          "SourceUnit": 4340,
          "absolutePath": "@aragon/apps-voting/contracts/Voting.sol",
          "file": "@aragon/apps-voting/contracts/Voting.sol",
          "scope": 623,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 9,
        "name": "ImportDirective",
        "src": "394:50:0"
      },
      {
        "attributes": {
          "SourceUnit": 3520,
          "absolutePath": "@aragon/apps-vault/contracts/Vault.sol",
          "file": "@aragon/apps-vault/contracts/Vault.sol",
          "scope": 623,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 10,
        "name": "ImportDirective",
        "src": "445:48:0"
      },
      {
        "attributes": {
          "SourceUnit": 3351,
          "absolutePath": "@aragon/apps-token-manager/contracts/TokenManager.sol",
          "file": "@aragon/apps-token-manager/contracts/TokenManager.sol",
          "scope": 623,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 11,
        "name": "ImportDirective",
        "src": "494:63:0"
      },
      {
        "attributes": {
          "SourceUnit": 2556,
          "absolutePath": "@aragon/apps-finance/contracts/Finance.sol",
          "file": "@aragon/apps-finance/contracts/Finance.sol",
          "scope": 623,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 12,
        "name": "ImportDirective",
        "src": "558:52:0"
      },
      {
        "attributes": {
          "baseContracts": [
            null
          ],
          "contractDependencies": [
            null
          ],
          "contractKind": "contract",
          "documentation": null,
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            622
          ],
          "name": "BetaTemplateBase",
          "scope": 623
        },
        "children": [
          {
            "attributes": {
              "constant": false,
              "name": "apm",
              "scope": 622,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "contract APMRegistry",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "APMRegistry",
                  "referencedDeclaration": 6279,
                  "type": "contract APMRegistry"
                },
                "id": 13,
                "name": "UserDefinedTypeName",
                "src": "645:11:0"
              }
            ],
            "id": 14,
            "name": "VariableDeclaration",
            "src": "645:22:0"
          },
          {
            "attributes": {
              "constant": false,
              "name": "fac",
              "scope": 622,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "contract DAOFactory",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "DAOFactory",
                  "referencedDeclaration": 9267,
                  "type": "contract DAOFactory"
                },
                "id": 15,
                "name": "UserDefinedTypeName",
                "src": "673:10:0"
              }
            ],
            "id": 16,
            "name": "VariableDeclaration",
            "src": "673:21:0"
          },
          {
            "attributes": {
              "constant": false,
              "name": "minimeFac",
              "scope": 622,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "contract MiniMeTokenFactory",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "MiniMeTokenFactory",
                  "referencedDeclaration": 11914,
                  "type": "contract MiniMeTokenFactory"
                },
                "id": 17,
                "name": "UserDefinedTypeName",
                "src": "700:18:0"
              }
            ],
            "id": 18,
            "name": "VariableDeclaration",
            "src": "700:35:0"
          },
          {
            "attributes": {
              "constant": false,
              "name": "etherToken",
              "scope": 622,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "contract EtherToken",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "EtherToken",
                  "referencedDeclaration": 7195,
                  "type": "contract EtherToken"
                },
                "id": 19,
                "name": "UserDefinedTypeName",
                "src": "741:10:0"
              }
            ],
            "id": 20,
            "name": "VariableDeclaration",
            "src": "741:28:0"
          },
          {
            "attributes": {
              "constant": false,
              "name": "aragonID",
              "scope": 622,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "contract IFIFSResolvingRegistrar",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "IFIFSResolvingRegistrar",
                  "referencedDeclaration": 4359,
                  "type": "contract IFIFSResolvingRegistrar"
                },
                "id": 21,
                "name": "UserDefinedTypeName",
                "src": "775:23:0"
              }
            ],
            "id": 22,
            "name": "VariableDeclaration",
            "src": "775:39:0"
          },
          {
            "attributes": {
              "constant": false,
              "name": "appIds",
              "scope": 622,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "bytes32[4] storage ref",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "type": "bytes32[4] storage pointer"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes32",
                      "type": "bytes32"
                    },
                    "id": 23,
                    "name": "ElementaryTypeName",
                    "src": "820:7:0"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "34",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "number",
                      "type": "int_const 4",
                      "value": "4"
                    },
                    "id": 24,
                    "name": "Literal",
                    "src": "828:1:0"
                  }
                ],
                "id": 25,
                "name": "ArrayTypeName",
                "src": "820:10:0"
              }
            ],
            "id": 26,
            "name": "VariableDeclaration",
            "src": "820:24:0"
          },
          {
            "attributes": {
              "constant": false,
              "name": "tokenCache",
              "scope": 622,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "mapping(address => address)",
              "value": null,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "type": "mapping(address => address)"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 27,
                    "name": "ElementaryTypeName",
                    "src": "860:7:0"
                  },
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 28,
                    "name": "ElementaryTypeName",
                    "src": "871:7:0"
                  }
                ],
                "id": 29,
                "name": "Mapping",
                "src": "851:28:0"
              }
            ],
            "id": 30,
            "name": "VariableDeclaration",
            "src": "851:39:0"
          },
          {
            "attributes": {
              "canonicalName": "BetaTemplateBase.Apps",
              "name": "Apps"
            },
            "children": [
              {
                "attributes": {
                  "name": "Finance"
                },
                "id": 31,
                "name": "EnumValue",
                "src": "940:7:0"
              },
              {
                "attributes": {
                  "name": "TokenManager"
                },
                "id": 32,
                "name": "EnumValue",
                "src": "949:12:0"
              },
              {
                "attributes": {
                  "name": "Vault"
                },
                "id": 33,
                "name": "EnumValue",
                "src": "963:5:0"
              },
              {
                "attributes": {
                  "name": "Voting"
                },
                "id": 34,
                "name": "EnumValue",
                "src": "970:6:0"
              }
            ],
            "id": 35,
            "name": "EnumDefinition",
            "src": "928:50:0"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "DeployToken"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "token",
                      "scope": 41,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 36,
                        "name": "ElementaryTypeName",
                        "src": "1002:7:0"
                      }
                    ],
                    "id": 37,
                    "name": "VariableDeclaration",
                    "src": "1002:13:0"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "cacheOwner",
                      "scope": 41,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 38,
                        "name": "ElementaryTypeName",
                        "src": "1017:7:0"
                      }
                    ],
                    "id": 39,
                    "name": "VariableDeclaration",
                    "src": "1017:26:0"
                  }
                ],
                "id": 40,
                "name": "ParameterList",
                "src": "1001:43:0"
              }
            ],
            "id": 41,
            "name": "EventDefinition",
            "src": "984:61:0"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "DeployInstance"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "dao",
                      "scope": 47,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 42,
                        "name": "ElementaryTypeName",
                        "src": "1071:7:0"
                      }
                    ],
                    "id": 43,
                    "name": "VariableDeclaration",
                    "src": "1071:11:0"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "token",
                      "scope": 47,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 44,
                        "name": "ElementaryTypeName",
                        "src": "1084:7:0"
                      }
                    ],
                    "id": 45,
                    "name": "VariableDeclaration",
                    "src": "1084:21:0"
                  }
                ],
                "id": 46,
                "name": "ParameterList",
                "src": "1070:36:0"
              }
            ],
            "id": 47,
            "name": "EventDefinition",
            "src": "1050:57:0"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "InstalledApp"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "appProxy",
                      "scope": 53,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 48,
                        "name": "ElementaryTypeName",
                        "src": "1131:7:0"
                      }
                    ],
                    "id": 49,
                    "name": "VariableDeclaration",
                    "src": "1131:16:0"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "appId",
                      "scope": 53,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 50,
                        "name": "ElementaryTypeName",
                        "src": "1149:7:0"
                      }
                    ],
                    "id": 51,
                    "name": "VariableDeclaration",
                    "src": "1149:13:0"
                  }
                ],
                "id": 52,
                "name": "ParameterList",
                "src": "1130:33:0"
              }
            ],
            "id": 53,
            "name": "EventDefinition",
            "src": "1112:52:0"
          },
          {
            "attributes": {
              "constant": true,
              "name": "ANY_ENTITY",
              "scope": 622,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "address",
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "name": "address",
                  "type": "address"
                },
                "id": 54,
                "name": "ElementaryTypeName",
                "src": "1170:7:0"
              },
              {
                "attributes": {
                  "argumentTypes": null,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "isStructConstructorCall": false,
                  "lValueRequested": false,
                  "names": [
                    null
                  ],
                  "type": "address",
                  "type_conversion": true
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_-1_by_1",
                          "typeString": "int_const -1"
                        }
                      ],
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "type": "type(address)",
                      "value": "address"
                    },
                    "id": 55,
                    "name": "ElementaryTypeNameExpression",
                    "src": "1200:7:0"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "operator": "-",
                      "prefix": true,
                      "type": "int_const -1"
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "31",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "number",
                          "type": "int_const 1",
                          "value": "1"
                        },
                        "id": 56,
                        "name": "Literal",
                        "src": "1209:1:0"
                      }
                    ],
                    "id": 57,
                    "name": "UnaryOperation",
                    "src": "1208:2:0"
                  }
                ],
                "id": 58,
                "name": "FunctionCall",
                "src": "1200:11:0"
              }
            ],
            "id": 59,
            "name": "VariableDeclaration",
            "src": "1170:41:0"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": true,
              "modifiers": [
                null
              ],
              "name": "BetaTemplateBase",
              "payable": false,
              "scope": 622,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_fac",
                      "scope": 101,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract DAOFactory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "DAOFactory",
                          "referencedDeclaration": 9267,
                          "type": "contract DAOFactory"
                        },
                        "id": 60,
                        "name": "UserDefinedTypeName",
                        "src": "1253:10:0"
                      }
                    ],
                    "id": 61,
                    "name": "VariableDeclaration",
                    "src": "1253:15:0"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_minimeFac",
                      "scope": 101,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract MiniMeTokenFactory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "MiniMeTokenFactory",
                          "referencedDeclaration": 11914,
                          "type": "contract MiniMeTokenFactory"
                        },
                        "id": 62,
                        "name": "UserDefinedTypeName",
                        "src": "1278:18:0"
                      }
                    ],
                    "id": 63,
                    "name": "VariableDeclaration",
                    "src": "1278:29:0"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_apm",
                      "scope": 101,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract APMRegistry",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "APMRegistry",
                          "referencedDeclaration": 6279,
                          "type": "contract APMRegistry"
                        },
                        "id": 64,
                        "name": "UserDefinedTypeName",
                        "src": "1317:11:0"
                      }
                    ],
                    "id": 65,
                    "name": "VariableDeclaration",
                    "src": "1317:16:0"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_etherToken",
                      "scope": 101,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract EtherToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "EtherToken",
                          "referencedDeclaration": 7195,
                          "type": "contract EtherToken"
                        },
                        "id": 66,
                        "name": "UserDefinedTypeName",
                        "src": "1343:10:0"
                      }
                    ],
                    "id": 67,
                    "name": "VariableDeclaration",
                    "src": "1343:22:0"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_aragonID",
                      "scope": 101,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract IFIFSResolvingRegistrar",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "IFIFSResolvingRegistrar",
                          "referencedDeclaration": 4359,
                          "type": "contract IFIFSResolvingRegistrar"
                        },
                        "id": 68,
                        "name": "UserDefinedTypeName",
                        "src": "1375:23:0"
                      }
                    ],
                    "id": 69,
                    "name": "VariableDeclaration",
                    "src": "1375:33:0"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_appIds",
                      "scope": 101,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32[4] memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "type": "bytes32[4] storage pointer"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes32",
                              "type": "bytes32"
                            },
                            "id": 70,
                            "name": "ElementaryTypeName",
                            "src": "1418:7:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "34",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 4",
                              "value": "4"
                            },
                            "id": 71,
                            "name": "Literal",
                            "src": "1426:1:0"
                          }
                        ],
                        "id": 72,
                        "name": "ArrayTypeName",
                        "src": "1418:10:0"
                      }
                    ],
                    "id": 73,
                    "name": "VariableDeclaration",
                    "src": "1418:18:0"
                  }
                ],
                "id": 74,
                "name": "ParameterList",
                "src": "1243:199:0"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 75,
                "name": "ParameterList",
                "src": "1462:0:0"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "contract APMRegistry"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 14,
                              "type": "contract APMRegistry",
                              "value": "apm"
                            },
                            "id": 76,
                            "name": "Identifier",
                            "src": "1472:3:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 65,
                              "type": "contract APMRegistry",
                              "value": "_apm"
                            },
                            "id": 77,
                            "name": "Identifier",
                            "src": "1478:4:0"
                          }
                        ],
                        "id": 78,
                        "name": "Assignment",
                        "src": "1472:10:0"
                      }
                    ],
                    "id": 79,
                    "name": "ExpressionStatement",
                    "src": "1472:10:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "contract DAOFactory"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 16,
                              "type": "contract DAOFactory",
                              "value": "fac"
                            },
                            "id": 80,
                            "name": "Identifier",
                            "src": "1492:3:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 61,
                              "type": "contract DAOFactory",
                              "value": "_fac"
                            },
                            "id": 81,
                            "name": "Identifier",
                            "src": "1498:4:0"
                          }
                        ],
                        "id": 82,
                        "name": "Assignment",
                        "src": "1492:10:0"
                      }
                    ],
                    "id": 83,
                    "name": "ExpressionStatement",
                    "src": "1492:10:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "contract MiniMeTokenFactory"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 18,
                              "type": "contract MiniMeTokenFactory",
                              "value": "minimeFac"
                            },
                            "id": 84,
                            "name": "Identifier",
                            "src": "1512:9:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 63,
                              "type": "contract MiniMeTokenFactory",
                              "value": "_minimeFac"
                            },
                            "id": 85,
                            "name": "Identifier",
                            "src": "1524:10:0"
                          }
                        ],
                        "id": 86,
                        "name": "Assignment",
                        "src": "1512:22:0"
                      }
                    ],
                    "id": 87,
                    "name": "ExpressionStatement",
                    "src": "1512:22:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "contract EtherToken"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 20,
                              "type": "contract EtherToken",
                              "value": "etherToken"
                            },
                            "id": 88,
                            "name": "Identifier",
                            "src": "1544:10:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 67,
                              "type": "contract EtherToken",
                              "value": "_etherToken"
                            },
                            "id": 89,
                            "name": "Identifier",
                            "src": "1557:11:0"
                          }
                        ],
                        "id": 90,
                        "name": "Assignment",
                        "src": "1544:24:0"
                      }
                    ],
                    "id": 91,
                    "name": "ExpressionStatement",
                    "src": "1544:24:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "contract IFIFSResolvingRegistrar"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 22,
                              "type": "contract IFIFSResolvingRegistrar",
                              "value": "aragonID"
                            },
                            "id": 92,
                            "name": "Identifier",
                            "src": "1578:8:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 69,
                              "type": "contract IFIFSResolvingRegistrar",
                              "value": "_aragonID"
                            },
                            "id": 93,
                            "name": "Identifier",
                            "src": "1589:9:0"
                          }
                        ],
                        "id": 94,
                        "name": "Assignment",
                        "src": "1578:20:0"
                      }
                    ],
                    "id": 95,
                    "name": "ExpressionStatement",
                    "src": "1578:20:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "bytes32[4] storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 26,
                              "type": "bytes32[4] storage ref",
                              "value": "appIds"
                            },
                            "id": 96,
                            "name": "Identifier",
                            "src": "1608:6:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 73,
                              "type": "bytes32[4] memory",
                              "value": "_appIds"
                            },
                            "id": 97,
                            "name": "Identifier",
                            "src": "1617:7:0"
                          }
                        ],
                        "id": 98,
                        "name": "Assignment",
                        "src": "1608:16:0"
                      }
                    ],
                    "id": 99,
                    "name": "ExpressionStatement",
                    "src": "1608:16:0"
                  }
                ],
                "id": 100,
                "name": "Block",
                "src": "1462:169:0"
              }
            ],
            "id": 101,
            "name": "FunctionDefinition",
            "src": "1218:413:0"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "createDAO",
              "payable": false,
              "scope": 622,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "name",
                      "scope": 508,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "string memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "string",
                          "type": "string storage pointer"
                        },
                        "id": 102,
                        "name": "ElementaryTypeName",
                        "src": "1665:6:0"
                      }
                    ],
                    "id": 103,
                    "name": "VariableDeclaration",
                    "src": "1665:11:0"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "token",
                      "scope": 508,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract MiniMeToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "MiniMeToken",
                          "referencedDeclaration": 11873,
                          "type": "contract MiniMeToken"
                        },
                        "id": 104,
                        "name": "UserDefinedTypeName",
                        "src": "1686:11:0"
                      }
                    ],
                    "id": 105,
                    "name": "VariableDeclaration",
                    "src": "1686:17:0"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "holders",
                      "scope": 508,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address[] memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "address[] storage pointer"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "address",
                              "type": "address"
                            },
                            "id": 106,
                            "name": "ElementaryTypeName",
                            "src": "1713:7:0"
                          }
                        ],
                        "id": 107,
                        "name": "ArrayTypeName",
                        "src": "1713:9:0"
                      }
                    ],
                    "id": 108,
                    "name": "VariableDeclaration",
                    "src": "1713:17:0"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "stakes",
                      "scope": 508,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256[] memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "uint256[] storage pointer"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint256",
                              "type": "uint256"
                            },
                            "id": 109,
                            "name": "ElementaryTypeName",
                            "src": "1740:7:0"
                          }
                        ],
                        "id": 110,
                        "name": "ArrayTypeName",
                        "src": "1740:9:0"
                      }
                    ],
                    "id": 111,
                    "name": "VariableDeclaration",
                    "src": "1740:16:0"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_maxTokens",
                      "scope": 508,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 112,
                        "name": "ElementaryTypeName",
                        "src": "1766:7:0"
                      }
                    ],
                    "id": 113,
                    "name": "VariableDeclaration",
                    "src": "1766:18:0"
                  }
                ],
                "id": 114,
                "name": "ParameterList",
                "src": "1655:135:0"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 508,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract Voting",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "Voting",
                          "referencedDeclaration": 4339,
                          "type": "contract Voting"
                        },
                        "id": 115,
                        "name": "UserDefinedTypeName",
                        "src": "1825:6:0"
                      }
                    ],
                    "id": 116,
                    "name": "VariableDeclaration",
                    "src": "1825:6:0"
                  }
                ],
                "id": 117,
                "name": "ParameterList",
                "src": "1824:8:0"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        119
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "dao",
                          "scope": 508,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "contract Kernel",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "Kernel",
                              "referencedDeclaration": 9891,
                              "type": "contract Kernel"
                            },
                            "id": 118,
                            "name": "UserDefinedTypeName",
                            "src": "1847:6:0"
                          }
                        ],
                        "id": 119,
                        "name": "VariableDeclaration",
                        "src": "1847:10:0"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "contract Kernel",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_BetaTemplateBase_$622",
                                  "typeString": "contract BetaTemplateBase"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "newDAO",
                              "referencedDeclaration": 9266,
                              "type": "function (address) external returns (contract Kernel)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 16,
                                  "type": "contract DAOFactory",
                                  "value": "fac"
                                },
                                "id": 120,
                                "name": "Identifier",
                                "src": "1860:3:0"
                              }
                            ],
                            "id": 121,
                            "name": "MemberAccess",
                            "src": "1860:10:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 12721,
                              "type": "contract BetaTemplateBase",
                              "value": "this"
                            },
                            "id": 122,
                            "name": "Identifier",
                            "src": "1871:4:0"
                          }
                        ],
                        "id": 123,
                        "name": "FunctionCall",
                        "src": "1860:16:0"
                      }
                    ],
                    "id": 124,
                    "name": "VariableDeclarationStatement",
                    "src": "1847:29:0"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        126
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "acl",
                          "scope": 508,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "contract ACL",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "ACL",
                              "referencedDeclaration": 5510,
                              "type": "contract ACL"
                            },
                            "id": 125,
                            "name": "UserDefinedTypeName",
                            "src": "1887:3:0"
                          }
                        ],
                        "id": 126,
                        "name": "VariableDeclaration",
                        "src": "1887:7:0"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "contract ACL",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_IACL_$6001",
                                  "typeString": "contract IACL"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5510,
                              "type": "type(contract ACL)",
                              "value": "ACL"
                            },
                            "id": 127,
                            "name": "Identifier",
                            "src": "1897:3:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "contract IACL",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "acl",
                                  "referencedDeclaration": 9724,
                                  "type": "function () view external returns (contract IACL)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 119,
                                      "type": "contract Kernel",
                                      "value": "dao"
                                    },
                                    "id": 128,
                                    "name": "Identifier",
                                    "src": "1901:3:0"
                                  }
                                ],
                                "id": 129,
                                "name": "MemberAccess",
                                "src": "1901:7:0"
                              }
                            ],
                            "id": 130,
                            "name": "FunctionCall",
                            "src": "1901:9:0"
                          }
                        ],
                        "id": 131,
                        "name": "FunctionCall",
                        "src": "1897:14:0"
                      }
                    ],
                    "id": 132,
                    "name": "VariableDeclarationStatement",
                    "src": "1887:24:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_BetaTemplateBase_$622",
                                  "typeString": "contract BetaTemplateBase"
                                },
                                {
                                  "typeIdentifier": "t_contract$_Kernel_$9891",
                                  "typeString": "contract Kernel"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_contract$_BetaTemplateBase_$622",
                                  "typeString": "contract BetaTemplateBase"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "createPermission",
                              "referencedDeclaration": 4583,
                              "type": "function (address,address,bytes32,address) external"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 126,
                                  "type": "contract ACL",
                                  "value": "acl"
                                },
                                "id": 133,
                                "name": "Identifier",
                                "src": "1922:3:0"
                              }
                            ],
                            "id": 135,
                            "name": "MemberAccess",
                            "src": "1922:20:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 12721,
                              "type": "contract BetaTemplateBase",
                              "value": "this"
                            },
                            "id": 136,
                            "name": "Identifier",
                            "src": "1956:4:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 119,
                              "type": "contract Kernel",
                              "value": "dao"
                            },
                            "id": 137,
                            "name": "Identifier",
                            "src": "1974:3:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "APP_MANAGER_ROLE",
                                  "referencedDeclaration": 9573,
                                  "type": "function () view external returns (bytes32)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 119,
                                      "type": "contract Kernel",
                                      "value": "dao"
                                    },
                                    "id": 138,
                                    "name": "Identifier",
                                    "src": "1991:3:0"
                                  }
                                ],
                                "id": 139,
                                "name": "MemberAccess",
                                "src": "1991:20:0"
                              }
                            ],
                            "id": 140,
                            "name": "FunctionCall",
                            "src": "1991:22:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 12721,
                              "type": "contract BetaTemplateBase",
                              "value": "this"
                            },
                            "id": 141,
                            "name": "Identifier",
                            "src": "2027:4:0"
                          }
                        ],
                        "id": 142,
                        "name": "FunctionCall",
                        "src": "1922:119:0"
                      }
                    ],
                    "id": 143,
                    "name": "ExpressionStatement",
                    "src": "1922:119:0"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        145
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "voting",
                          "scope": 508,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "contract Voting",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "Voting",
                              "referencedDeclaration": 4339,
                              "type": "contract Voting"
                            },
                            "id": 144,
                            "name": "UserDefinedTypeName",
                            "src": "2052:6:0"
                          }
                        ],
                        "id": 145,
                        "name": "VariableDeclaration",
                        "src": "2052:13:0"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "contract Voting",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_IAppProxy_$6981",
                                  "typeString": "contract IAppProxy"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4339,
                              "type": "type(contract Voting)",
                              "value": "Voting"
                            },
                            "id": 146,
                            "name": "Identifier",
                            "src": "2068:6:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "contract IAppProxy",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "newAppInstance",
                                  "referencedDeclaration": 9643,
                                  "type": "function (bytes32,address) external returns (contract IAppProxy)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 119,
                                      "type": "contract Kernel",
                                      "value": "dao"
                                    },
                                    "id": 147,
                                    "name": "Identifier",
                                    "src": "2075:3:0"
                                  }
                                ],
                                "id": 148,
                                "name": "MemberAccess",
                                "src": "2075:18:0"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "bytes32"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 26,
                                      "type": "bytes32[4] storage ref",
                                      "value": "appIds"
                                    },
                                    "id": 149,
                                    "name": "Identifier",
                                    "src": "2094:6:0"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "uint8",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_enum$_Apps_$35",
                                              "typeString": "enum BetaTemplateBase.Apps"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(uint8)",
                                          "value": "uint8"
                                        },
                                        "id": 150,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "2101:5:0"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "member_name": "Voting",
                                          "referencedDeclaration": null,
                                          "type": "enum BetaTemplateBase.Apps"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 35,
                                              "type": "type(enum BetaTemplateBase.Apps)",
                                              "value": "Apps"
                                            },
                                            "id": 151,
                                            "name": "Identifier",
                                            "src": "2107:4:0"
                                          }
                                        ],
                                        "id": 152,
                                        "name": "MemberAccess",
                                        "src": "2107:11:0"
                                      }
                                    ],
                                    "id": 153,
                                    "name": "FunctionCall",
                                    "src": "2101:18:0"
                                  }
                                ],
                                "id": 154,
                                "name": "IndexAccess",
                                "src": "2094:26:0"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "address",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 609,
                                      "type": "function (bytes32) view returns (address)",
                                      "value": "latestVersionAppBase"
                                    },
                                    "id": 155,
                                    "name": "Identifier",
                                    "src": "2122:20:0"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "bytes32"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 26,
                                          "type": "bytes32[4] storage ref",
                                          "value": "appIds"
                                        },
                                        "id": 156,
                                        "name": "Identifier",
                                        "src": "2143:6:0"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "isStructConstructorCall": false,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "type": "uint8",
                                          "type_conversion": true
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_enum$_Apps_$35",
                                                  "typeString": "enum BetaTemplateBase.Apps"
                                                }
                                              ],
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "type": "type(uint8)",
                                              "value": "uint8"
                                            },
                                            "id": 157,
                                            "name": "ElementaryTypeNameExpression",
                                            "src": "2150:5:0"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "member_name": "Voting",
                                              "referencedDeclaration": null,
                                              "type": "enum BetaTemplateBase.Apps"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 35,
                                                  "type": "type(enum BetaTemplateBase.Apps)",
                                                  "value": "Apps"
                                                },
                                                "id": 158,
                                                "name": "Identifier",
                                                "src": "2156:4:0"
                                              }
                                            ],
                                            "id": 159,
                                            "name": "MemberAccess",
                                            "src": "2156:11:0"
                                          }
                                        ],
                                        "id": 160,
                                        "name": "FunctionCall",
                                        "src": "2150:18:0"
                                      }
                                    ],
                                    "id": 161,
                                    "name": "IndexAccess",
                                    "src": "2143:26:0"
                                  }
                                ],
                                "id": 162,
                                "name": "FunctionCall",
                                "src": "2122:48:0"
                              }
                            ],
                            "id": 163,
                            "name": "FunctionCall",
                            "src": "2075:96:0"
                          }
                        ],
                        "id": 164,
                        "name": "FunctionCall",
                        "src": "2068:104:0"
                      }
                    ],
                    "id": 165,
                    "name": "VariableDeclarationStatement",
                    "src": "2052:120:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Voting_$4339",
                                  "typeString": "contract Voting"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 53,
                              "type": "function (address,bytes32)",
                              "value": "InstalledApp"
                            },
                            "id": 166,
                            "name": "Identifier",
                            "src": "2182:12:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 145,
                              "type": "contract Voting",
                              "value": "voting"
                            },
                            "id": 167,
                            "name": "Identifier",
                            "src": "2195:6:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "bytes32"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 26,
                                  "type": "bytes32[4] storage ref",
                                  "value": "appIds"
                                },
                                "id": 168,
                                "name": "Identifier",
                                "src": "2203:6:0"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "uint8",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_enum$_Apps_$35",
                                          "typeString": "enum BetaTemplateBase.Apps"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(uint8)",
                                      "value": "uint8"
                                    },
                                    "id": 169,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "2210:5:0"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "member_name": "Voting",
                                      "referencedDeclaration": null,
                                      "type": "enum BetaTemplateBase.Apps"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 35,
                                          "type": "type(enum BetaTemplateBase.Apps)",
                                          "value": "Apps"
                                        },
                                        "id": 170,
                                        "name": "Identifier",
                                        "src": "2216:4:0"
                                      }
                                    ],
                                    "id": 171,
                                    "name": "MemberAccess",
                                    "src": "2216:11:0"
                                  }
                                ],
                                "id": 172,
                                "name": "FunctionCall",
                                "src": "2210:18:0"
                              }
                            ],
                            "id": 173,
                            "name": "IndexAccess",
                            "src": "2203:26:0"
                          }
                        ],
                        "id": 174,
                        "name": "FunctionCall",
                        "src": "2182:48:0"
                      }
                    ],
                    "id": 175,
                    "name": "ExpressionStatement",
                    "src": "2182:48:0"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        177
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "vault",
                          "scope": 508,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "contract Vault",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "Vault",
                              "referencedDeclaration": 3519,
                              "type": "contract Vault"
                            },
                            "id": 176,
                            "name": "UserDefinedTypeName",
                            "src": "2240:5:0"
                          }
                        ],
                        "id": 177,
                        "name": "VariableDeclaration",
                        "src": "2240:11:0"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "contract Vault",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_IAppProxy_$6981",
                                  "typeString": "contract IAppProxy"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3519,
                              "type": "type(contract Vault)",
                              "value": "Vault"
                            },
                            "id": 178,
                            "name": "Identifier",
                            "src": "2254:5:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "contract IAppProxy",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "newAppInstance",
                                  "referencedDeclaration": 9643,
                                  "type": "function (bytes32,address) external returns (contract IAppProxy)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 119,
                                      "type": "contract Kernel",
                                      "value": "dao"
                                    },
                                    "id": 179,
                                    "name": "Identifier",
                                    "src": "2260:3:0"
                                  }
                                ],
                                "id": 180,
                                "name": "MemberAccess",
                                "src": "2260:18:0"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "bytes32"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 26,
                                      "type": "bytes32[4] storage ref",
                                      "value": "appIds"
                                    },
                                    "id": 181,
                                    "name": "Identifier",
                                    "src": "2279:6:0"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "uint8",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_enum$_Apps_$35",
                                              "typeString": "enum BetaTemplateBase.Apps"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(uint8)",
                                          "value": "uint8"
                                        },
                                        "id": 182,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "2286:5:0"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "member_name": "Vault",
                                          "referencedDeclaration": null,
                                          "type": "enum BetaTemplateBase.Apps"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 35,
                                              "type": "type(enum BetaTemplateBase.Apps)",
                                              "value": "Apps"
                                            },
                                            "id": 183,
                                            "name": "Identifier",
                                            "src": "2292:4:0"
                                          }
                                        ],
                                        "id": 184,
                                        "name": "MemberAccess",
                                        "src": "2292:10:0"
                                      }
                                    ],
                                    "id": 185,
                                    "name": "FunctionCall",
                                    "src": "2286:17:0"
                                  }
                                ],
                                "id": 186,
                                "name": "IndexAccess",
                                "src": "2279:25:0"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "address",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 609,
                                      "type": "function (bytes32) view returns (address)",
                                      "value": "latestVersionAppBase"
                                    },
                                    "id": 187,
                                    "name": "Identifier",
                                    "src": "2306:20:0"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "bytes32"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 26,
                                          "type": "bytes32[4] storage ref",
                                          "value": "appIds"
                                        },
                                        "id": 188,
                                        "name": "Identifier",
                                        "src": "2327:6:0"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "isStructConstructorCall": false,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "type": "uint8",
                                          "type_conversion": true
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_enum$_Apps_$35",
                                                  "typeString": "enum BetaTemplateBase.Apps"
                                                }
                                              ],
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "type": "type(uint8)",
                                              "value": "uint8"
                                            },
                                            "id": 189,
                                            "name": "ElementaryTypeNameExpression",
                                            "src": "2334:5:0"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "member_name": "Vault",
                                              "referencedDeclaration": null,
                                              "type": "enum BetaTemplateBase.Apps"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 35,
                                                  "type": "type(enum BetaTemplateBase.Apps)",
                                                  "value": "Apps"
                                                },
                                                "id": 190,
                                                "name": "Identifier",
                                                "src": "2340:4:0"
                                              }
                                            ],
                                            "id": 191,
                                            "name": "MemberAccess",
                                            "src": "2340:10:0"
                                          }
                                        ],
                                        "id": 192,
                                        "name": "FunctionCall",
                                        "src": "2334:17:0"
                                      }
                                    ],
                                    "id": 193,
                                    "name": "IndexAccess",
                                    "src": "2327:25:0"
                                  }
                                ],
                                "id": 194,
                                "name": "FunctionCall",
                                "src": "2306:47:0"
                              }
                            ],
                            "id": 195,
                            "name": "FunctionCall",
                            "src": "2260:94:0"
                          }
                        ],
                        "id": 196,
                        "name": "FunctionCall",
                        "src": "2254:101:0"
                      }
                    ],
                    "id": 197,
                    "name": "VariableDeclarationStatement",
                    "src": "2240:115:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Vault_$3519",
                                  "typeString": "contract Vault"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 53,
                              "type": "function (address,bytes32)",
                              "value": "InstalledApp"
                            },
                            "id": 198,
                            "name": "Identifier",
                            "src": "2365:12:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 177,
                              "type": "contract Vault",
                              "value": "vault"
                            },
                            "id": 199,
                            "name": "Identifier",
                            "src": "2378:5:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "bytes32"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 26,
                                  "type": "bytes32[4] storage ref",
                                  "value": "appIds"
                                },
                                "id": 200,
                                "name": "Identifier",
                                "src": "2385:6:0"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "uint8",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_enum$_Apps_$35",
                                          "typeString": "enum BetaTemplateBase.Apps"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(uint8)",
                                      "value": "uint8"
                                    },
                                    "id": 201,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "2392:5:0"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "member_name": "Vault",
                                      "referencedDeclaration": null,
                                      "type": "enum BetaTemplateBase.Apps"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 35,
                                          "type": "type(enum BetaTemplateBase.Apps)",
                                          "value": "Apps"
                                        },
                                        "id": 202,
                                        "name": "Identifier",
                                        "src": "2398:4:0"
                                      }
                                    ],
                                    "id": 203,
                                    "name": "MemberAccess",
                                    "src": "2398:10:0"
                                  }
                                ],
                                "id": 204,
                                "name": "FunctionCall",
                                "src": "2392:17:0"
                              }
                            ],
                            "id": 205,
                            "name": "IndexAccess",
                            "src": "2385:25:0"
                          }
                        ],
                        "id": 206,
                        "name": "FunctionCall",
                        "src": "2365:46:0"
                      }
                    ],
                    "id": 207,
                    "name": "ExpressionStatement",
                    "src": "2365:46:0"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        209
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "finance",
                          "scope": 508,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "contract Finance",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "Finance",
                              "referencedDeclaration": 2555,
                              "type": "contract Finance"
                            },
                            "id": 208,
                            "name": "UserDefinedTypeName",
                            "src": "2421:7:0"
                          }
                        ],
                        "id": 209,
                        "name": "VariableDeclaration",
                        "src": "2421:15:0"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "contract Finance",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_IAppProxy_$6981",
                                  "typeString": "contract IAppProxy"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2555,
                              "type": "type(contract Finance)",
                              "value": "Finance"
                            },
                            "id": 210,
                            "name": "Identifier",
                            "src": "2439:7:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "contract IAppProxy",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "newAppInstance",
                                  "referencedDeclaration": 9643,
                                  "type": "function (bytes32,address) external returns (contract IAppProxy)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 119,
                                      "type": "contract Kernel",
                                      "value": "dao"
                                    },
                                    "id": 211,
                                    "name": "Identifier",
                                    "src": "2447:3:0"
                                  }
                                ],
                                "id": 212,
                                "name": "MemberAccess",
                                "src": "2447:18:0"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "bytes32"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 26,
                                      "type": "bytes32[4] storage ref",
                                      "value": "appIds"
                                    },
                                    "id": 213,
                                    "name": "Identifier",
                                    "src": "2466:6:0"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "uint8",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_enum$_Apps_$35",
                                              "typeString": "enum BetaTemplateBase.Apps"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(uint8)",
                                          "value": "uint8"
                                        },
                                        "id": 214,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "2473:5:0"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "member_name": "Finance",
                                          "referencedDeclaration": null,
                                          "type": "enum BetaTemplateBase.Apps"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 35,
                                              "type": "type(enum BetaTemplateBase.Apps)",
                                              "value": "Apps"
                                            },
                                            "id": 215,
                                            "name": "Identifier",
                                            "src": "2479:4:0"
                                          }
                                        ],
                                        "id": 216,
                                        "name": "MemberAccess",
                                        "src": "2479:12:0"
                                      }
                                    ],
                                    "id": 217,
                                    "name": "FunctionCall",
                                    "src": "2473:19:0"
                                  }
                                ],
                                "id": 218,
                                "name": "IndexAccess",
                                "src": "2466:27:0"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "address",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 609,
                                      "type": "function (bytes32) view returns (address)",
                                      "value": "latestVersionAppBase"
                                    },
                                    "id": 219,
                                    "name": "Identifier",
                                    "src": "2495:20:0"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "bytes32"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 26,
                                          "type": "bytes32[4] storage ref",
                                          "value": "appIds"
                                        },
                                        "id": 220,
                                        "name": "Identifier",
                                        "src": "2516:6:0"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "isStructConstructorCall": false,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "type": "uint8",
                                          "type_conversion": true
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_enum$_Apps_$35",
                                                  "typeString": "enum BetaTemplateBase.Apps"
                                                }
                                              ],
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "type": "type(uint8)",
                                              "value": "uint8"
                                            },
                                            "id": 221,
                                            "name": "ElementaryTypeNameExpression",
                                            "src": "2523:5:0"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "member_name": "Finance",
                                              "referencedDeclaration": null,
                                              "type": "enum BetaTemplateBase.Apps"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 35,
                                                  "type": "type(enum BetaTemplateBase.Apps)",
                                                  "value": "Apps"
                                                },
                                                "id": 222,
                                                "name": "Identifier",
                                                "src": "2529:4:0"
                                              }
                                            ],
                                            "id": 223,
                                            "name": "MemberAccess",
                                            "src": "2529:12:0"
                                          }
                                        ],
                                        "id": 224,
                                        "name": "FunctionCall",
                                        "src": "2523:19:0"
                                      }
                                    ],
                                    "id": 225,
                                    "name": "IndexAccess",
                                    "src": "2516:27:0"
                                  }
                                ],
                                "id": 226,
                                "name": "FunctionCall",
                                "src": "2495:49:0"
                              }
                            ],
                            "id": 227,
                            "name": "FunctionCall",
                            "src": "2447:98:0"
                          }
                        ],
                        "id": 228,
                        "name": "FunctionCall",
                        "src": "2439:107:0"
                      }
                    ],
                    "id": 229,
                    "name": "VariableDeclarationStatement",
                    "src": "2421:125:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Finance_$2555",
                                  "typeString": "contract Finance"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 53,
                              "type": "function (address,bytes32)",
                              "value": "InstalledApp"
                            },
                            "id": 230,
                            "name": "Identifier",
                            "src": "2556:12:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 209,
                              "type": "contract Finance",
                              "value": "finance"
                            },
                            "id": 231,
                            "name": "Identifier",
                            "src": "2569:7:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "bytes32"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 26,
                                  "type": "bytes32[4] storage ref",
                                  "value": "appIds"
                                },
                                "id": 232,
                                "name": "Identifier",
                                "src": "2578:6:0"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "uint8",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_enum$_Apps_$35",
                                          "typeString": "enum BetaTemplateBase.Apps"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(uint8)",
                                      "value": "uint8"
                                    },
                                    "id": 233,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "2585:5:0"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "member_name": "Finance",
                                      "referencedDeclaration": null,
                                      "type": "enum BetaTemplateBase.Apps"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 35,
                                          "type": "type(enum BetaTemplateBase.Apps)",
                                          "value": "Apps"
                                        },
                                        "id": 234,
                                        "name": "Identifier",
                                        "src": "2591:4:0"
                                      }
                                    ],
                                    "id": 235,
                                    "name": "MemberAccess",
                                    "src": "2591:12:0"
                                  }
                                ],
                                "id": 236,
                                "name": "FunctionCall",
                                "src": "2585:19:0"
                              }
                            ],
                            "id": 237,
                            "name": "IndexAccess",
                            "src": "2578:27:0"
                          }
                        ],
                        "id": 238,
                        "name": "FunctionCall",
                        "src": "2556:50:0"
                      }
                    ],
                    "id": 239,
                    "name": "ExpressionStatement",
                    "src": "2556:50:0"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        241
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "tokenManager",
                          "scope": 508,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "contract TokenManager",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "TokenManager",
                              "referencedDeclaration": 3350,
                              "type": "contract TokenManager"
                            },
                            "id": 240,
                            "name": "UserDefinedTypeName",
                            "src": "2616:12:0"
                          }
                        ],
                        "id": 241,
                        "name": "VariableDeclaration",
                        "src": "2616:25:0"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "contract TokenManager",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_IAppProxy_$6981",
                                  "typeString": "contract IAppProxy"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3350,
                              "type": "type(contract TokenManager)",
                              "value": "TokenManager"
                            },
                            "id": 242,
                            "name": "Identifier",
                            "src": "2644:12:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "contract IAppProxy",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "newAppInstance",
                                  "referencedDeclaration": 9643,
                                  "type": "function (bytes32,address) external returns (contract IAppProxy)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 119,
                                      "type": "contract Kernel",
                                      "value": "dao"
                                    },
                                    "id": 243,
                                    "name": "Identifier",
                                    "src": "2657:3:0"
                                  }
                                ],
                                "id": 244,
                                "name": "MemberAccess",
                                "src": "2657:18:0"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "bytes32"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 26,
                                      "type": "bytes32[4] storage ref",
                                      "value": "appIds"
                                    },
                                    "id": 245,
                                    "name": "Identifier",
                                    "src": "2676:6:0"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "uint8",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_enum$_Apps_$35",
                                              "typeString": "enum BetaTemplateBase.Apps"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(uint8)",
                                          "value": "uint8"
                                        },
                                        "id": 246,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "2683:5:0"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "member_name": "TokenManager",
                                          "referencedDeclaration": null,
                                          "type": "enum BetaTemplateBase.Apps"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 35,
                                              "type": "type(enum BetaTemplateBase.Apps)",
                                              "value": "Apps"
                                            },
                                            "id": 247,
                                            "name": "Identifier",
                                            "src": "2689:4:0"
                                          }
                                        ],
                                        "id": 248,
                                        "name": "MemberAccess",
                                        "src": "2689:17:0"
                                      }
                                    ],
                                    "id": 249,
                                    "name": "FunctionCall",
                                    "src": "2683:24:0"
                                  }
                                ],
                                "id": 250,
                                "name": "IndexAccess",
                                "src": "2676:32:0"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "address",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 609,
                                      "type": "function (bytes32) view returns (address)",
                                      "value": "latestVersionAppBase"
                                    },
                                    "id": 251,
                                    "name": "Identifier",
                                    "src": "2710:20:0"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "bytes32"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 26,
                                          "type": "bytes32[4] storage ref",
                                          "value": "appIds"
                                        },
                                        "id": 252,
                                        "name": "Identifier",
                                        "src": "2731:6:0"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "isStructConstructorCall": false,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "type": "uint8",
                                          "type_conversion": true
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_enum$_Apps_$35",
                                                  "typeString": "enum BetaTemplateBase.Apps"
                                                }
                                              ],
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "type": "type(uint8)",
                                              "value": "uint8"
                                            },
                                            "id": 253,
                                            "name": "ElementaryTypeNameExpression",
                                            "src": "2738:5:0"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "member_name": "TokenManager",
                                              "referencedDeclaration": null,
                                              "type": "enum BetaTemplateBase.Apps"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 35,
                                                  "type": "type(enum BetaTemplateBase.Apps)",
                                                  "value": "Apps"
                                                },
                                                "id": 254,
                                                "name": "Identifier",
                                                "src": "2744:4:0"
                                              }
                                            ],
                                            "id": 255,
                                            "name": "MemberAccess",
                                            "src": "2744:17:0"
                                          }
                                        ],
                                        "id": 256,
                                        "name": "FunctionCall",
                                        "src": "2738:24:0"
                                      }
                                    ],
                                    "id": 257,
                                    "name": "IndexAccess",
                                    "src": "2731:32:0"
                                  }
                                ],
                                "id": 258,
                                "name": "FunctionCall",
                                "src": "2710:54:0"
                              }
                            ],
                            "id": 259,
                            "name": "FunctionCall",
                            "src": "2657:108:0"
                          }
                        ],
                        "id": 260,
                        "name": "FunctionCall",
                        "src": "2644:122:0"
                      }
                    ],
                    "id": 261,
                    "name": "VariableDeclarationStatement",
                    "src": "2616:150:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_TokenManager_$3350",
                                  "typeString": "contract TokenManager"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 53,
                              "type": "function (address,bytes32)",
                              "value": "InstalledApp"
                            },
                            "id": 262,
                            "name": "Identifier",
                            "src": "2776:12:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 241,
                              "type": "contract TokenManager",
                              "value": "tokenManager"
                            },
                            "id": 263,
                            "name": "Identifier",
                            "src": "2789:12:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "bytes32"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 26,
                                  "type": "bytes32[4] storage ref",
                                  "value": "appIds"
                                },
                                "id": 264,
                                "name": "Identifier",
                                "src": "2803:6:0"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "uint8",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_enum$_Apps_$35",
                                          "typeString": "enum BetaTemplateBase.Apps"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(uint8)",
                                      "value": "uint8"
                                    },
                                    "id": 265,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "2810:5:0"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "member_name": "TokenManager",
                                      "referencedDeclaration": null,
                                      "type": "enum BetaTemplateBase.Apps"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 35,
                                          "type": "type(enum BetaTemplateBase.Apps)",
                                          "value": "Apps"
                                        },
                                        "id": 266,
                                        "name": "Identifier",
                                        "src": "2816:4:0"
                                      }
                                    ],
                                    "id": 267,
                                    "name": "MemberAccess",
                                    "src": "2816:17:0"
                                  }
                                ],
                                "id": 268,
                                "name": "FunctionCall",
                                "src": "2810:24:0"
                              }
                            ],
                            "id": 269,
                            "name": "IndexAccess",
                            "src": "2803:32:0"
                          }
                        ],
                        "id": 270,
                        "name": "FunctionCall",
                        "src": "2776:60:0"
                      }
                    ],
                    "id": 271,
                    "name": "ExpressionStatement",
                    "src": "2776:60:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_TokenManager_$3350",
                                  "typeString": "contract TokenManager"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "changeController",
                              "referencedDeclaration": 10837,
                              "type": "function (address) external"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 105,
                                  "type": "contract MiniMeToken",
                                  "value": "token"
                                },
                                "id": 272,
                                "name": "Identifier",
                                "src": "2847:5:0"
                              }
                            ],
                            "id": 274,
                            "name": "MemberAccess",
                            "src": "2847:22:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 241,
                              "type": "contract TokenManager",
                              "value": "tokenManager"
                            },
                            "id": 275,
                            "name": "Identifier",
                            "src": "2870:12:0"
                          }
                        ],
                        "id": 276,
                        "name": "FunctionCall",
                        "src": "2847:36:0"
                      }
                    ],
                    "id": 277,
                    "name": "ExpressionStatement",
                    "src": "2847:36:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_contract$_Voting_$4339",
                                  "typeString": "contract Voting"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_contract$_Voting_$4339",
                                  "typeString": "contract Voting"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "createPermission",
                              "referencedDeclaration": 4583,
                              "type": "function (address,address,bytes32,address) external"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 126,
                                  "type": "contract ACL",
                                  "value": "acl"
                                },
                                "id": 278,
                                "name": "Identifier",
                                "src": "2948:3:0"
                              }
                            ],
                            "id": 280,
                            "name": "MemberAccess",
                            "src": "2948:20:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 59,
                              "type": "address",
                              "value": "ANY_ENTITY"
                            },
                            "id": 281,
                            "name": "Identifier",
                            "src": "2969:10:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 145,
                              "type": "contract Voting",
                              "value": "voting"
                            },
                            "id": 282,
                            "name": "Identifier",
                            "src": "2981:6:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "CREATE_VOTES_ROLE",
                                  "referencedDeclaration": 3555,
                                  "type": "function () view external returns (bytes32)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 145,
                                      "type": "contract Voting",
                                      "value": "voting"
                                    },
                                    "id": 283,
                                    "name": "Identifier",
                                    "src": "2989:6:0"
                                  }
                                ],
                                "id": 284,
                                "name": "MemberAccess",
                                "src": "2989:24:0"
                              }
                            ],
                            "id": 285,
                            "name": "FunctionCall",
                            "src": "2989:26:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 145,
                              "type": "contract Voting",
                              "value": "voting"
                            },
                            "id": 286,
                            "name": "Identifier",
                            "src": "3017:6:0"
                          }
                        ],
                        "id": 287,
                        "name": "FunctionCall",
                        "src": "2948:76:0"
                      }
                    ],
                    "id": 288,
                    "name": "ExpressionStatement",
                    "src": "2948:76:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Voting_$4339",
                                  "typeString": "contract Voting"
                                },
                                {
                                  "typeIdentifier": "t_contract$_Voting_$4339",
                                  "typeString": "contract Voting"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_contract$_Voting_$4339",
                                  "typeString": "contract Voting"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "createPermission",
                              "referencedDeclaration": 4583,
                              "type": "function (address,address,bytes32,address) external"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 126,
                                  "type": "contract ACL",
                                  "value": "acl"
                                },
                                "id": 289,
                                "name": "Identifier",
                                "src": "3034:3:0"
                              }
                            ],
                            "id": 291,
                            "name": "MemberAccess",
                            "src": "3034:20:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 145,
                              "type": "contract Voting",
                              "value": "voting"
                            },
                            "id": 292,
                            "name": "Identifier",
                            "src": "3055:6:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 145,
                              "type": "contract Voting",
                              "value": "voting"
                            },
                            "id": 293,
                            "name": "Identifier",
                            "src": "3063:6:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "MODIFY_QUORUM_ROLE",
                                  "referencedDeclaration": 3560,
                                  "type": "function () view external returns (bytes32)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 145,
                                      "type": "contract Voting",
                                      "value": "voting"
                                    },
                                    "id": 294,
                                    "name": "Identifier",
                                    "src": "3071:6:0"
                                  }
                                ],
                                "id": 295,
                                "name": "MemberAccess",
                                "src": "3071:25:0"
                              }
                            ],
                            "id": 296,
                            "name": "FunctionCall",
                            "src": "3071:27:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 145,
                              "type": "contract Voting",
                              "value": "voting"
                            },
                            "id": 297,
                            "name": "Identifier",
                            "src": "3100:6:0"
                          }
                        ],
                        "id": 298,
                        "name": "FunctionCall",
                        "src": "3034:73:0"
                      }
                    ],
                    "id": 299,
                    "name": "ExpressionStatement",
                    "src": "3034:73:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Finance_$2555",
                                  "typeString": "contract Finance"
                                },
                                {
                                  "typeIdentifier": "t_contract$_Vault_$3519",
                                  "typeString": "contract Vault"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_contract$_Voting_$4339",
                                  "typeString": "contract Voting"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "createPermission",
                              "referencedDeclaration": 4583,
                              "type": "function (address,address,bytes32,address) external"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 126,
                                  "type": "contract ACL",
                                  "value": "acl"
                                },
                                "id": 300,
                                "name": "Identifier",
                                "src": "3118:3:0"
                              }
                            ],
                            "id": 302,
                            "name": "MemberAccess",
                            "src": "3118:20:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 209,
                              "type": "contract Finance",
                              "value": "finance"
                            },
                            "id": 303,
                            "name": "Identifier",
                            "src": "3139:7:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 177,
                              "type": "contract Vault",
                              "value": "vault"
                            },
                            "id": 304,
                            "name": "Identifier",
                            "src": "3148:5:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "TRANSFER_ROLE",
                                  "referencedDeclaration": 3383,
                                  "type": "function () view external returns (bytes32)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 177,
                                      "type": "contract Vault",
                                      "value": "vault"
                                    },
                                    "id": 305,
                                    "name": "Identifier",
                                    "src": "3155:5:0"
                                  }
                                ],
                                "id": 306,
                                "name": "MemberAccess",
                                "src": "3155:19:0"
                              }
                            ],
                            "id": 307,
                            "name": "FunctionCall",
                            "src": "3155:21:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 145,
                              "type": "contract Voting",
                              "value": "voting"
                            },
                            "id": 308,
                            "name": "Identifier",
                            "src": "3178:6:0"
                          }
                        ],
                        "id": 309,
                        "name": "FunctionCall",
                        "src": "3118:67:0"
                      }
                    ],
                    "id": 310,
                    "name": "ExpressionStatement",
                    "src": "3118:67:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Voting_$4339",
                                  "typeString": "contract Voting"
                                },
                                {
                                  "typeIdentifier": "t_contract$_Finance_$2555",
                                  "typeString": "contract Finance"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_contract$_Voting_$4339",
                                  "typeString": "contract Voting"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "createPermission",
                              "referencedDeclaration": 4583,
                              "type": "function (address,address,bytes32,address) external"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 126,
                                  "type": "contract ACL",
                                  "value": "acl"
                                },
                                "id": 311,
                                "name": "Identifier",
                                "src": "3195:3:0"
                              }
                            ],
                            "id": 313,
                            "name": "MemberAccess",
                            "src": "3195:20:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 145,
                              "type": "contract Voting",
                              "value": "voting"
                            },
                            "id": 314,
                            "name": "Identifier",
                            "src": "3216:6:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 209,
                              "type": "contract Finance",
                              "value": "finance"
                            },
                            "id": 315,
                            "name": "Identifier",
                            "src": "3224:7:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "CREATE_PAYMENTS_ROLE",
                                  "referencedDeclaration": 978,
                                  "type": "function () view external returns (bytes32)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 209,
                                      "type": "contract Finance",
                                      "value": "finance"
                                    },
                                    "id": 316,
                                    "name": "Identifier",
                                    "src": "3233:7:0"
                                  }
                                ],
                                "id": 317,
                                "name": "MemberAccess",
                                "src": "3233:28:0"
                              }
                            ],
                            "id": 318,
                            "name": "FunctionCall",
                            "src": "3233:30:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 145,
                              "type": "contract Voting",
                              "value": "voting"
                            },
                            "id": 319,
                            "name": "Identifier",
                            "src": "3265:6:0"
                          }
                        ],
                        "id": 320,
                        "name": "FunctionCall",
                        "src": "3195:77:0"
                      }
                    ],
                    "id": 321,
                    "name": "ExpressionStatement",
                    "src": "3195:77:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Voting_$4339",
                                  "typeString": "contract Voting"
                                },
                                {
                                  "typeIdentifier": "t_contract$_Finance_$2555",
                                  "typeString": "contract Finance"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_contract$_Voting_$4339",
                                  "typeString": "contract Voting"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "createPermission",
                              "referencedDeclaration": 4583,
                              "type": "function (address,address,bytes32,address) external"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 126,
                                  "type": "contract ACL",
                                  "value": "acl"
                                },
                                "id": 322,
                                "name": "Identifier",
                                "src": "3282:3:0"
                              }
                            ],
                            "id": 324,
                            "name": "MemberAccess",
                            "src": "3282:20:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 145,
                              "type": "contract Voting",
                              "value": "voting"
                            },
                            "id": 325,
                            "name": "Identifier",
                            "src": "3303:6:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 209,
                              "type": "contract Finance",
                              "value": "finance"
                            },
                            "id": 326,
                            "name": "Identifier",
                            "src": "3311:7:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "EXECUTE_PAYMENTS_ROLE",
                                  "referencedDeclaration": 993,
                                  "type": "function () view external returns (bytes32)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 209,
                                      "type": "contract Finance",
                                      "value": "finance"
                                    },
                                    "id": 327,
                                    "name": "Identifier",
                                    "src": "3320:7:0"
                                  }
                                ],
                                "id": 328,
                                "name": "MemberAccess",
                                "src": "3320:29:0"
                              }
                            ],
                            "id": 329,
                            "name": "FunctionCall",
                            "src": "3320:31:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 145,
                              "type": "contract Voting",
                              "value": "voting"
                            },
                            "id": 330,
                            "name": "Identifier",
                            "src": "3353:6:0"
                          }
                        ],
                        "id": 331,
                        "name": "FunctionCall",
                        "src": "3282:78:0"
                      }
                    ],
                    "id": 332,
                    "name": "ExpressionStatement",
                    "src": "3282:78:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Voting_$4339",
                                  "typeString": "contract Voting"
                                },
                                {
                                  "typeIdentifier": "t_contract$_Finance_$2555",
                                  "typeString": "contract Finance"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_contract$_Voting_$4339",
                                  "typeString": "contract Voting"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "createPermission",
                              "referencedDeclaration": 4583,
                              "type": "function (address,address,bytes32,address) external"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 126,
                                  "type": "contract ACL",
                                  "value": "acl"
                                },
                                "id": 333,
                                "name": "Identifier",
                                "src": "3370:3:0"
                              }
                            ],
                            "id": 335,
                            "name": "MemberAccess",
                            "src": "3370:20:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 145,
                              "type": "contract Voting",
                              "value": "voting"
                            },
                            "id": 336,
                            "name": "Identifier",
                            "src": "3391:6:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 209,
                              "type": "contract Finance",
                              "value": "finance"
                            },
                            "id": 337,
                            "name": "Identifier",
                            "src": "3399:7:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "DISABLE_PAYMENTS_ROLE",
                                  "referencedDeclaration": 998,
                                  "type": "function () view external returns (bytes32)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 209,
                                      "type": "contract Finance",
                                      "value": "finance"
                                    },
                                    "id": 338,
                                    "name": "Identifier",
                                    "src": "3408:7:0"
                                  }
                                ],
                                "id": 339,
                                "name": "MemberAccess",
                                "src": "3408:29:0"
                              }
                            ],
                            "id": 340,
                            "name": "FunctionCall",
                            "src": "3408:31:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 145,
                              "type": "contract Voting",
                              "value": "voting"
                            },
                            "id": 341,
                            "name": "Identifier",
                            "src": "3441:6:0"
                          }
                        ],
                        "id": 342,
                        "name": "FunctionCall",
                        "src": "3370:78:0"
                      }
                    ],
                    "id": 343,
                    "name": "ExpressionStatement",
                    "src": "3370:78:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Voting_$4339",
                                  "typeString": "contract Voting"
                                },
                                {
                                  "typeIdentifier": "t_contract$_TokenManager_$3350",
                                  "typeString": "contract TokenManager"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_contract$_Voting_$4339",
                                  "typeString": "contract Voting"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "createPermission",
                              "referencedDeclaration": 4583,
                              "type": "function (address,address,bytes32,address) external"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 126,
                                  "type": "contract ACL",
                                  "value": "acl"
                                },
                                "id": 344,
                                "name": "Identifier",
                                "src": "3458:3:0"
                              }
                            ],
                            "id": 346,
                            "name": "MemberAccess",
                            "src": "3458:20:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 145,
                              "type": "contract Voting",
                              "value": "voting"
                            },
                            "id": 347,
                            "name": "Identifier",
                            "src": "3479:6:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 241,
                              "type": "contract TokenManager",
                              "value": "tokenManager"
                            },
                            "id": 348,
                            "name": "Identifier",
                            "src": "3487:12:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "ASSIGN_ROLE",
                                  "referencedDeclaration": 2594,
                                  "type": "function () view external returns (bytes32)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 241,
                                      "type": "contract TokenManager",
                                      "value": "tokenManager"
                                    },
                                    "id": 349,
                                    "name": "Identifier",
                                    "src": "3501:12:0"
                                  }
                                ],
                                "id": 350,
                                "name": "MemberAccess",
                                "src": "3501:24:0"
                              }
                            ],
                            "id": 351,
                            "name": "FunctionCall",
                            "src": "3501:26:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 145,
                              "type": "contract Voting",
                              "value": "voting"
                            },
                            "id": 352,
                            "name": "Identifier",
                            "src": "3529:6:0"
                          }
                        ],
                        "id": 353,
                        "name": "FunctionCall",
                        "src": "3458:78:0"
                      }
                    ],
                    "id": 354,
                    "name": "ExpressionStatement",
                    "src": "3458:78:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Voting_$4339",
                                  "typeString": "contract Voting"
                                },
                                {
                                  "typeIdentifier": "t_contract$_TokenManager_$3350",
                                  "typeString": "contract TokenManager"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_contract$_Voting_$4339",
                                  "typeString": "contract Voting"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "createPermission",
                              "referencedDeclaration": 4583,
                              "type": "function (address,address,bytes32,address) external"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 126,
                                  "type": "contract ACL",
                                  "value": "acl"
                                },
                                "id": 355,
                                "name": "Identifier",
                                "src": "3546:3:0"
                              }
                            ],
                            "id": 357,
                            "name": "MemberAccess",
                            "src": "3546:20:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 145,
                              "type": "contract Voting",
                              "value": "voting"
                            },
                            "id": 358,
                            "name": "Identifier",
                            "src": "3567:6:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 241,
                              "type": "contract TokenManager",
                              "value": "tokenManager"
                            },
                            "id": 359,
                            "name": "Identifier",
                            "src": "3575:12:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "REVOKE_VESTINGS_ROLE",
                                  "referencedDeclaration": 2599,
                                  "type": "function () view external returns (bytes32)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 241,
                                      "type": "contract TokenManager",
                                      "value": "tokenManager"
                                    },
                                    "id": 360,
                                    "name": "Identifier",
                                    "src": "3589:12:0"
                                  }
                                ],
                                "id": 361,
                                "name": "MemberAccess",
                                "src": "3589:33:0"
                              }
                            ],
                            "id": 362,
                            "name": "FunctionCall",
                            "src": "3589:35:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 145,
                              "type": "contract Voting",
                              "value": "voting"
                            },
                            "id": 363,
                            "name": "Identifier",
                            "src": "3626:6:0"
                          }
                        ],
                        "id": 364,
                        "name": "FunctionCall",
                        "src": "3546:87:0"
                      }
                    ],
                    "id": 365,
                    "name": "ExpressionStatement",
                    "src": "3546:87:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 12593,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 366,
                            "name": "Identifier",
                            "src": "3644:7:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "length",
                                  "referencedDeclaration": null,
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 108,
                                      "type": "address[] memory",
                                      "value": "holders"
                                    },
                                    "id": 367,
                                    "name": "Identifier",
                                    "src": "3652:7:0"
                                  }
                                ],
                                "id": 368,
                                "name": "MemberAccess",
                                "src": "3652:14:0"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "length",
                                  "referencedDeclaration": null,
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 111,
                                      "type": "uint256[] memory",
                                      "value": "stakes"
                                    },
                                    "id": 369,
                                    "name": "Identifier",
                                    "src": "3670:6:0"
                                  }
                                ],
                                "id": 370,
                                "name": "MemberAccess",
                                "src": "3670:13:0"
                              }
                            ],
                            "id": 371,
                            "name": "BinaryOperation",
                            "src": "3652:31:0"
                          }
                        ],
                        "id": 372,
                        "name": "FunctionCall",
                        "src": "3644:40:0"
                      }
                    ],
                    "id": 373,
                    "name": "ExpressionStatement",
                    "src": "3644:40:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_BetaTemplateBase_$622",
                                  "typeString": "contract BetaTemplateBase"
                                },
                                {
                                  "typeIdentifier": "t_contract$_TokenManager_$3350",
                                  "typeString": "contract TokenManager"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_contract$_BetaTemplateBase_$622",
                                  "typeString": "contract BetaTemplateBase"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "createPermission",
                              "referencedDeclaration": 4583,
                              "type": "function (address,address,bytes32,address) external"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 126,
                                  "type": "contract ACL",
                                  "value": "acl"
                                },
                                "id": 374,
                                "name": "Identifier",
                                "src": "3695:3:0"
                              }
                            ],
                            "id": 376,
                            "name": "MemberAccess",
                            "src": "3695:20:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 12721,
                              "type": "contract BetaTemplateBase",
                              "value": "this"
                            },
                            "id": 377,
                            "name": "Identifier",
                            "src": "3716:4:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 241,
                              "type": "contract TokenManager",
                              "value": "tokenManager"
                            },
                            "id": 378,
                            "name": "Identifier",
                            "src": "3722:12:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "MINT_ROLE",
                                  "referencedDeclaration": 2584,
                                  "type": "function () view external returns (bytes32)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 241,
                                      "type": "contract TokenManager",
                                      "value": "tokenManager"
                                    },
                                    "id": 379,
                                    "name": "Identifier",
                                    "src": "3736:12:0"
                                  }
                                ],
                                "id": 380,
                                "name": "MemberAccess",
                                "src": "3736:22:0"
                              }
                            ],
                            "id": 381,
                            "name": "FunctionCall",
                            "src": "3736:24:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 12721,
                              "type": "contract BetaTemplateBase",
                              "value": "this"
                            },
                            "id": 382,
                            "name": "Identifier",
                            "src": "3762:4:0"
                          }
                        ],
                        "id": 383,
                        "name": "FunctionCall",
                        "src": "3695:72:0"
                      }
                    ],
                    "id": 384,
                    "name": "ExpressionStatement",
                    "src": "3695:72:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_MiniMeToken_$11873",
                                  "typeString": "contract MiniMeToken"
                                },
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "initialize",
                              "referencedDeclaration": 2695,
                              "type": "function (contract MiniMeToken,bool,uint256,bool) external"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 241,
                                  "type": "contract TokenManager",
                                  "value": "tokenManager"
                                },
                                "id": 385,
                                "name": "Identifier",
                                "src": "3778:12:0"
                              }
                            ],
                            "id": 387,
                            "name": "MemberAccess",
                            "src": "3778:23:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 105,
                              "type": "contract MiniMeToken",
                              "value": "token"
                            },
                            "id": 388,
                            "name": "Identifier",
                            "src": "3802:5:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": ">",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 113,
                                  "type": "uint256",
                                  "value": "_maxTokens"
                                },
                                "id": 389,
                                "name": "Identifier",
                                "src": "3809:10:0"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "31",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 1",
                                  "value": "1"
                                },
                                "id": 390,
                                "name": "Literal",
                                "src": "3822:1:0"
                              }
                            ],
                            "id": 391,
                            "name": "BinaryOperation",
                            "src": "3809:14:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 113,
                              "type": "uint256",
                              "value": "_maxTokens"
                            },
                            "id": 392,
                            "name": "Identifier",
                            "src": "3825:10:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "74727565",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "bool",
                              "type": "bool",
                              "value": "true"
                            },
                            "id": 393,
                            "name": "Literal",
                            "src": "3837:4:0"
                          }
                        ],
                        "id": 394,
                        "name": "FunctionCall",
                        "src": "3778:64:0"
                      }
                    ],
                    "id": 395,
                    "name": "ExpressionStatement",
                    "src": "3778:64:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "assignments": [
                            397
                          ]
                        },
                        "children": [
                          {
                            "attributes": {
                              "constant": false,
                              "name": "i",
                              "scope": 508,
                              "stateVariable": false,
                              "storageLocation": "default",
                              "type": "uint256",
                              "value": null,
                              "visibility": "internal"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "uint256",
                                  "type": "uint256"
                                },
                                "id": 396,
                                "name": "ElementaryTypeName",
                                "src": "3858:7:0"
                              }
                            ],
                            "id": 397,
                            "name": "VariableDeclaration",
                            "src": "3858:9:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 398,
                            "name": "Literal",
                            "src": "3870:1:0"
                          }
                        ],
                        "id": 399,
                        "name": "VariableDeclarationStatement",
                        "src": "3858:13:0"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "<",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 397,
                              "type": "uint256",
                              "value": "i"
                            },
                            "id": 400,
                            "name": "Identifier",
                            "src": "3873:1:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "length",
                              "referencedDeclaration": null,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 108,
                                  "type": "address[] memory",
                                  "value": "holders"
                                },
                                "id": 401,
                                "name": "Identifier",
                                "src": "3877:7:0"
                              }
                            ],
                            "id": 402,
                            "name": "MemberAccess",
                            "src": "3877:14:0"
                          }
                        ],
                        "id": 403,
                        "name": "BinaryOperation",
                        "src": "3873:18:0"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "++",
                              "prefix": false,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 397,
                                  "type": "uint256",
                                  "value": "i"
                                },
                                "id": 404,
                                "name": "Identifier",
                                "src": "3893:1:0"
                              }
                            ],
                            "id": 405,
                            "name": "UnaryOperation",
                            "src": "3893:3:0"
                          }
                        ],
                        "id": 406,
                        "name": "ExpressionStatement",
                        "src": "3893:3:0"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "tuple()",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        },
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "mint",
                                      "referencedDeclaration": 2722,
                                      "type": "function (address,uint256) external"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 241,
                                          "type": "contract TokenManager",
                                          "value": "tokenManager"
                                        },
                                        "id": 407,
                                        "name": "Identifier",
                                        "src": "3912:12:0"
                                      }
                                    ],
                                    "id": 409,
                                    "name": "MemberAccess",
                                    "src": "3912:17:0"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "address"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 108,
                                          "type": "address[] memory",
                                          "value": "holders"
                                        },
                                        "id": 410,
                                        "name": "Identifier",
                                        "src": "3930:7:0"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 397,
                                          "type": "uint256",
                                          "value": "i"
                                        },
                                        "id": 411,
                                        "name": "Identifier",
                                        "src": "3938:1:0"
                                      }
                                    ],
                                    "id": 412,
                                    "name": "IndexAccess",
                                    "src": "3930:10:0"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 111,
                                          "type": "uint256[] memory",
                                          "value": "stakes"
                                        },
                                        "id": 413,
                                        "name": "Identifier",
                                        "src": "3942:6:0"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 397,
                                          "type": "uint256",
                                          "value": "i"
                                        },
                                        "id": 414,
                                        "name": "Identifier",
                                        "src": "3949:1:0"
                                      }
                                    ],
                                    "id": 415,
                                    "name": "IndexAccess",
                                    "src": "3942:9:0"
                                  }
                                ],
                                "id": 416,
                                "name": "FunctionCall",
                                "src": "3912:40:0"
                              }
                            ],
                            "id": 417,
                            "name": "ExpressionStatement",
                            "src": "3912:40:0"
                          }
                        ],
                        "id": 418,
                        "name": "Block",
                        "src": "3898:65:0"
                      }
                    ],
                    "id": 419,
                    "name": "ForStatement",
                    "src": "3853:110:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Vault_$3519",
                                  "typeString": "contract Vault"
                                },
                                {
                                  "typeIdentifier": "t_contract$_EtherToken_$7195",
                                  "typeString": "contract EtherToken"
                                },
                                {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "initialize",
                              "referencedDeclaration": 1219,
                              "type": "function (contract Vault,contract EtherToken,uint64) external"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 209,
                                  "type": "contract Finance",
                                  "value": "finance"
                                },
                                "id": 420,
                                "name": "Identifier",
                                "src": "3990:7:0"
                              }
                            ],
                            "id": 422,
                            "name": "MemberAccess",
                            "src": "3990:18:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 177,
                              "type": "contract Vault",
                              "value": "vault"
                            },
                            "id": 423,
                            "name": "Identifier",
                            "src": "4009:5:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 20,
                              "type": "contract EtherToken",
                              "value": "etherToken"
                            },
                            "id": 424,
                            "name": "Identifier",
                            "src": "4016:10:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "-",
                              "type": "uint64"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "uint64",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_-1_by_1",
                                          "typeString": "int_const -1"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(uint64)",
                                      "value": "uint64"
                                    },
                                    "id": 425,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "4028:6:0"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "operator": "-",
                                      "prefix": true,
                                      "type": "int_const -1"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "31",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 1",
                                          "value": "1"
                                        },
                                        "id": 426,
                                        "name": "Literal",
                                        "src": "4036:1:0"
                                      }
                                    ],
                                    "id": 427,
                                    "name": "UnaryOperation",
                                    "src": "4035:2:0"
                                  }
                                ],
                                "id": 428,
                                "name": "FunctionCall",
                                "src": "4028:10:0"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "uint64",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(uint64)",
                                      "value": "uint64"
                                    },
                                    "id": 429,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "4041:6:0"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 12592,
                                      "type": "uint256",
                                      "value": "now"
                                    },
                                    "id": 430,
                                    "name": "Identifier",
                                    "src": "4048:3:0"
                                  }
                                ],
                                "id": 431,
                                "name": "FunctionCall",
                                "src": "4041:11:0"
                              }
                            ],
                            "id": 432,
                            "name": "BinaryOperation",
                            "src": "4028:24:0"
                          }
                        ],
                        "id": 433,
                        "name": "FunctionCall",
                        "src": "3990:63:0"
                      }
                    ],
                    "id": 434,
                    "name": "ExpressionStatement",
                    "src": "3990:63:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Voting_$4339",
                                  "typeString": "contract Voting"
                                },
                                {
                                  "typeIdentifier": "t_contract$_Kernel_$9891",
                                  "typeString": "contract Kernel"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "grantPermission",
                              "referencedDeclaration": 4604,
                              "type": "function (address,address,bytes32) external"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 126,
                                  "type": "contract ACL",
                                  "value": "acl"
                                },
                                "id": 435,
                                "name": "Identifier",
                                "src": "4099:3:0"
                              }
                            ],
                            "id": 437,
                            "name": "MemberAccess",
                            "src": "4099:19:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 145,
                              "type": "contract Voting",
                              "value": "voting"
                            },
                            "id": 438,
                            "name": "Identifier",
                            "src": "4119:6:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 119,
                              "type": "contract Kernel",
                              "value": "dao"
                            },
                            "id": 439,
                            "name": "Identifier",
                            "src": "4127:3:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "APP_MANAGER_ROLE",
                                  "referencedDeclaration": 9573,
                                  "type": "function () view external returns (bytes32)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 119,
                                      "type": "contract Kernel",
                                      "value": "dao"
                                    },
                                    "id": 440,
                                    "name": "Identifier",
                                    "src": "4132:3:0"
                                  }
                                ],
                                "id": 441,
                                "name": "MemberAccess",
                                "src": "4132:20:0"
                              }
                            ],
                            "id": 442,
                            "name": "FunctionCall",
                            "src": "4132:22:0"
                          }
                        ],
                        "id": 443,
                        "name": "FunctionCall",
                        "src": "4099:56:0"
                      }
                    ],
                    "id": 444,
                    "name": "ExpressionStatement",
                    "src": "4099:56:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Voting_$4339",
                                  "typeString": "contract Voting"
                                },
                                {
                                  "typeIdentifier": "t_contract$_Kernel_$9891",
                                  "typeString": "contract Kernel"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "setPermissionManager",
                              "referencedDeclaration": 4700,
                              "type": "function (address,address,bytes32) external"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 126,
                                  "type": "contract ACL",
                                  "value": "acl"
                                },
                                "id": 445,
                                "name": "Identifier",
                                "src": "4165:3:0"
                              }
                            ],
                            "id": 447,
                            "name": "MemberAccess",
                            "src": "4165:24:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 145,
                              "type": "contract Voting",
                              "value": "voting"
                            },
                            "id": 448,
                            "name": "Identifier",
                            "src": "4190:6:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 119,
                              "type": "contract Kernel",
                              "value": "dao"
                            },
                            "id": 449,
                            "name": "Identifier",
                            "src": "4198:3:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "APP_MANAGER_ROLE",
                                  "referencedDeclaration": 9573,
                                  "type": "function () view external returns (bytes32)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 119,
                                      "type": "contract Kernel",
                                      "value": "dao"
                                    },
                                    "id": 450,
                                    "name": "Identifier",
                                    "src": "4203:3:0"
                                  }
                                ],
                                "id": 451,
                                "name": "MemberAccess",
                                "src": "4203:20:0"
                              }
                            ],
                            "id": 452,
                            "name": "FunctionCall",
                            "src": "4203:22:0"
                          }
                        ],
                        "id": 453,
                        "name": "FunctionCall",
                        "src": "4165:61:0"
                      }
                    ],
                    "id": 454,
                    "name": "ExpressionStatement",
                    "src": "4165:61:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Voting_$4339",
                                  "typeString": "contract Voting"
                                },
                                {
                                  "typeIdentifier": "t_contract$_ACL_$5510",
                                  "typeString": "contract ACL"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "grantPermission",
                              "referencedDeclaration": 4604,
                              "type": "function (address,address,bytes32) external"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 126,
                                  "type": "contract ACL",
                                  "value": "acl"
                                },
                                "id": 455,
                                "name": "Identifier",
                                "src": "4236:3:0"
                              }
                            ],
                            "id": 457,
                            "name": "MemberAccess",
                            "src": "4236:19:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 145,
                              "type": "contract Voting",
                              "value": "voting"
                            },
                            "id": 458,
                            "name": "Identifier",
                            "src": "4256:6:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 126,
                              "type": "contract ACL",
                              "value": "acl"
                            },
                            "id": 459,
                            "name": "Identifier",
                            "src": "4264:3:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "CREATE_PERMISSIONS_ROLE",
                                  "referencedDeclaration": 4425,
                                  "type": "function () view external returns (bytes32)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 126,
                                      "type": "contract ACL",
                                      "value": "acl"
                                    },
                                    "id": 460,
                                    "name": "Identifier",
                                    "src": "4269:3:0"
                                  }
                                ],
                                "id": 461,
                                "name": "MemberAccess",
                                "src": "4269:27:0"
                              }
                            ],
                            "id": 462,
                            "name": "FunctionCall",
                            "src": "4269:29:0"
                          }
                        ],
                        "id": 463,
                        "name": "FunctionCall",
                        "src": "4236:63:0"
                      }
                    ],
                    "id": 464,
                    "name": "ExpressionStatement",
                    "src": "4236:63:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Voting_$4339",
                                  "typeString": "contract Voting"
                                },
                                {
                                  "typeIdentifier": "t_contract$_ACL_$5510",
                                  "typeString": "contract ACL"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "setPermissionManager",
                              "referencedDeclaration": 4700,
                              "type": "function (address,address,bytes32) external"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 126,
                                  "type": "contract ACL",
                                  "value": "acl"
                                },
                                "id": 465,
                                "name": "Identifier",
                                "src": "4309:3:0"
                              }
                            ],
                            "id": 467,
                            "name": "MemberAccess",
                            "src": "4309:24:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 145,
                              "type": "contract Voting",
                              "value": "voting"
                            },
                            "id": 468,
                            "name": "Identifier",
                            "src": "4334:6:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 126,
                              "type": "contract ACL",
                              "value": "acl"
                            },
                            "id": 469,
                            "name": "Identifier",
                            "src": "4342:3:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "CREATE_PERMISSIONS_ROLE",
                                  "referencedDeclaration": 4425,
                                  "type": "function () view external returns (bytes32)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 126,
                                      "type": "contract ACL",
                                      "value": "acl"
                                    },
                                    "id": 470,
                                    "name": "Identifier",
                                    "src": "4347:3:0"
                                  }
                                ],
                                "id": 471,
                                "name": "MemberAccess",
                                "src": "4347:27:0"
                              }
                            ],
                            "id": 472,
                            "name": "FunctionCall",
                            "src": "4347:29:0"
                          }
                        ],
                        "id": 473,
                        "name": "FunctionCall",
                        "src": "4309:68:0"
                      }
                    ],
                    "id": 474,
                    "name": "ExpressionStatement",
                    "src": "4309:68:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Voting_$4339",
                                  "typeString": "contract Voting"
                                },
                                {
                                  "typeIdentifier": "t_contract$_TokenManager_$3350",
                                  "typeString": "contract TokenManager"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "grantPermission",
                              "referencedDeclaration": 4604,
                              "type": "function (address,address,bytes32) external"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 126,
                                  "type": "contract ACL",
                                  "value": "acl"
                                },
                                "id": 475,
                                "name": "Identifier",
                                "src": "4387:3:0"
                              }
                            ],
                            "id": 477,
                            "name": "MemberAccess",
                            "src": "4387:19:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 145,
                              "type": "contract Voting",
                              "value": "voting"
                            },
                            "id": 478,
                            "name": "Identifier",
                            "src": "4407:6:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 241,
                              "type": "contract TokenManager",
                              "value": "tokenManager"
                            },
                            "id": 479,
                            "name": "Identifier",
                            "src": "4415:12:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "MINT_ROLE",
                                  "referencedDeclaration": 2584,
                                  "type": "function () view external returns (bytes32)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 241,
                                      "type": "contract TokenManager",
                                      "value": "tokenManager"
                                    },
                                    "id": 480,
                                    "name": "Identifier",
                                    "src": "4429:12:0"
                                  }
                                ],
                                "id": 481,
                                "name": "MemberAccess",
                                "src": "4429:22:0"
                              }
                            ],
                            "id": 482,
                            "name": "FunctionCall",
                            "src": "4429:24:0"
                          }
                        ],
                        "id": 483,
                        "name": "FunctionCall",
                        "src": "4387:67:0"
                      }
                    ],
                    "id": 484,
                    "name": "ExpressionStatement",
                    "src": "4387:67:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Voting_$4339",
                                  "typeString": "contract Voting"
                                },
                                {
                                  "typeIdentifier": "t_contract$_TokenManager_$3350",
                                  "typeString": "contract TokenManager"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "setPermissionManager",
                              "referencedDeclaration": 4700,
                              "type": "function (address,address,bytes32) external"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 126,
                                  "type": "contract ACL",
                                  "value": "acl"
                                },
                                "id": 485,
                                "name": "Identifier",
                                "src": "4464:3:0"
                              }
                            ],
                            "id": 487,
                            "name": "MemberAccess",
                            "src": "4464:24:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 145,
                              "type": "contract Voting",
                              "value": "voting"
                            },
                            "id": 488,
                            "name": "Identifier",
                            "src": "4489:6:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 241,
                              "type": "contract TokenManager",
                              "value": "tokenManager"
                            },
                            "id": 489,
                            "name": "Identifier",
                            "src": "4497:12:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "MINT_ROLE",
                                  "referencedDeclaration": 2584,
                                  "type": "function () view external returns (bytes32)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 241,
                                      "type": "contract TokenManager",
                                      "value": "tokenManager"
                                    },
                                    "id": 490,
                                    "name": "Identifier",
                                    "src": "4511:12:0"
                                  }
                                ],
                                "id": 491,
                                "name": "MemberAccess",
                                "src": "4511:22:0"
                              }
                            ],
                            "id": 492,
                            "name": "FunctionCall",
                            "src": "4511:24:0"
                          }
                        ],
                        "id": 493,
                        "name": "FunctionCall",
                        "src": "4464:72:0"
                      }
                    ],
                    "id": 494,
                    "name": "ExpressionStatement",
                    "src": "4464:72:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_contract$_Kernel_$9891",
                                  "typeString": "contract Kernel"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 577,
                              "type": "function (string memory,address)",
                              "value": "registerAragonID"
                            },
                            "id": 495,
                            "name": "Identifier",
                            "src": "4648:16:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 103,
                              "type": "string memory",
                              "value": "name"
                            },
                            "id": 496,
                            "name": "Identifier",
                            "src": "4665:4:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 119,
                              "type": "contract Kernel",
                              "value": "dao"
                            },
                            "id": 497,
                            "name": "Identifier",
                            "src": "4671:3:0"
                          }
                        ],
                        "id": 498,
                        "name": "FunctionCall",
                        "src": "4648:27:0"
                      }
                    ],
                    "id": 499,
                    "name": "ExpressionStatement",
                    "src": "4648:27:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Kernel_$9891",
                                  "typeString": "contract Kernel"
                                },
                                {
                                  "typeIdentifier": "t_contract$_MiniMeToken_$11873",
                                  "typeString": "contract MiniMeToken"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 47,
                              "type": "function (address,address)",
                              "value": "DeployInstance"
                            },
                            "id": 500,
                            "name": "Identifier",
                            "src": "4685:14:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 119,
                              "type": "contract Kernel",
                              "value": "dao"
                            },
                            "id": 501,
                            "name": "Identifier",
                            "src": "4700:3:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 105,
                              "type": "contract MiniMeToken",
                              "value": "token"
                            },
                            "id": 502,
                            "name": "Identifier",
                            "src": "4705:5:0"
                          }
                        ],
                        "id": 503,
                        "name": "FunctionCall",
                        "src": "4685:26:0"
                      }
                    ],
                    "id": 504,
                    "name": "ExpressionStatement",
                    "src": "4685:26:0"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 117
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 145,
                          "type": "contract Voting",
                          "value": "voting"
                        },
                        "id": 505,
                        "name": "Identifier",
                        "src": "4784:6:0"
                      }
                    ],
                    "id": 506,
                    "name": "Return",
                    "src": "4777:13:0"
                  }
                ],
                "id": 507,
                "name": "Block",
                "src": "1837:2960:0"
              }
            ],
            "id": 508,
            "name": "FunctionDefinition",
            "src": "1637:3160:0"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "cacheToken",
              "payable": false,
              "scope": 622,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "token",
                      "scope": 527,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract MiniMeToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "MiniMeToken",
                          "referencedDeclaration": 11873,
                          "type": "contract MiniMeToken"
                        },
                        "id": 509,
                        "name": "UserDefinedTypeName",
                        "src": "4823:11:0"
                      }
                    ],
                    "id": 510,
                    "name": "VariableDeclaration",
                    "src": "4823:17:0"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "owner",
                      "scope": 527,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 511,
                        "name": "ElementaryTypeName",
                        "src": "4842:7:0"
                      }
                    ],
                    "id": 512,
                    "name": "VariableDeclaration",
                    "src": "4842:13:0"
                  }
                ],
                "id": 513,
                "name": "ParameterList",
                "src": "4822:34:0"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 514,
                "name": "ParameterList",
                "src": "4866:0:0"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "address"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 30,
                                  "type": "mapping(address => address)",
                                  "value": "tokenCache"
                                },
                                "id": 515,
                                "name": "Identifier",
                                "src": "4876:10:0"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 512,
                                  "type": "address",
                                  "value": "owner"
                                },
                                "id": 516,
                                "name": "Identifier",
                                "src": "4887:5:0"
                              }
                            ],
                            "id": 517,
                            "name": "IndexAccess",
                            "src": "4876:17:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 510,
                              "type": "contract MiniMeToken",
                              "value": "token"
                            },
                            "id": 518,
                            "name": "Identifier",
                            "src": "4896:5:0"
                          }
                        ],
                        "id": 519,
                        "name": "Assignment",
                        "src": "4876:25:0"
                      }
                    ],
                    "id": 520,
                    "name": "ExpressionStatement",
                    "src": "4876:25:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_MiniMeToken_$11873",
                                  "typeString": "contract MiniMeToken"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 41,
                              "type": "function (address,address)",
                              "value": "DeployToken"
                            },
                            "id": 521,
                            "name": "Identifier",
                            "src": "4911:11:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 510,
                              "type": "contract MiniMeToken",
                              "value": "token"
                            },
                            "id": 522,
                            "name": "Identifier",
                            "src": "4923:5:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 512,
                              "type": "address",
                              "value": "owner"
                            },
                            "id": 523,
                            "name": "Identifier",
                            "src": "4930:5:0"
                          }
                        ],
                        "id": 524,
                        "name": "FunctionCall",
                        "src": "4911:25:0"
                      }
                    ],
                    "id": 525,
                    "name": "ExpressionStatement",
                    "src": "4911:25:0"
                  }
                ],
                "id": 526,
                "name": "Block",
                "src": "4866:77:0"
              }
            ],
            "id": 527,
            "name": "FunctionDefinition",
            "src": "4803:140:0"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "popTokenCache",
              "payable": false,
              "scope": 622,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "owner",
                      "scope": 560,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 528,
                        "name": "ElementaryTypeName",
                        "src": "4972:7:0"
                      }
                    ],
                    "id": 529,
                    "name": "VariableDeclaration",
                    "src": "4972:13:0"
                  }
                ],
                "id": 530,
                "name": "ParameterList",
                "src": "4971:15:0"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 560,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract MiniMeToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "MiniMeToken",
                          "referencedDeclaration": 11873,
                          "type": "contract MiniMeToken"
                        },
                        "id": 531,
                        "name": "UserDefinedTypeName",
                        "src": "5005:11:0"
                      }
                    ],
                    "id": 532,
                    "name": "VariableDeclaration",
                    "src": "5005:11:0"
                  }
                ],
                "id": 533,
                "name": "ParameterList",
                "src": "5004:13:0"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 12593,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 534,
                            "name": "Identifier",
                            "src": "5028:7:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "!=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "address"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 30,
                                      "type": "mapping(address => address)",
                                      "value": "tokenCache"
                                    },
                                    "id": 535,
                                    "name": "Identifier",
                                    "src": "5036:10:0"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 529,
                                      "type": "address",
                                      "value": "owner"
                                    },
                                    "id": 536,
                                    "name": "Identifier",
                                    "src": "5047:5:0"
                                  }
                                ],
                                "id": 537,
                                "name": "IndexAccess",
                                "src": "5036:17:0"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "address",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(address)",
                                      "value": "address"
                                    },
                                    "id": 538,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "5057:7:0"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 539,
                                    "name": "Literal",
                                    "src": "5065:1:0"
                                  }
                                ],
                                "id": 540,
                                "name": "FunctionCall",
                                "src": "5057:10:0"
                              }
                            ],
                            "id": 541,
                            "name": "BinaryOperation",
                            "src": "5036:31:0"
                          }
                        ],
                        "id": 542,
                        "name": "FunctionCall",
                        "src": "5028:40:0"
                      }
                    ],
                    "id": 543,
                    "name": "ExpressionStatement",
                    "src": "5028:40:0"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        545
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "token",
                          "scope": 560,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "contract MiniMeToken",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "MiniMeToken",
                              "referencedDeclaration": 11873,
                              "type": "contract MiniMeToken"
                            },
                            "id": 544,
                            "name": "UserDefinedTypeName",
                            "src": "5078:11:0"
                          }
                        ],
                        "id": 545,
                        "name": "VariableDeclaration",
                        "src": "5078:17:0"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "contract MiniMeToken",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 11873,
                              "type": "type(contract MiniMeToken)",
                              "value": "MiniMeToken"
                            },
                            "id": 546,
                            "name": "Identifier",
                            "src": "5098:11:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 30,
                                  "type": "mapping(address => address)",
                                  "value": "tokenCache"
                                },
                                "id": 547,
                                "name": "Identifier",
                                "src": "5110:10:0"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 529,
                                  "type": "address",
                                  "value": "owner"
                                },
                                "id": 548,
                                "name": "Identifier",
                                "src": "5121:5:0"
                              }
                            ],
                            "id": 549,
                            "name": "IndexAccess",
                            "src": "5110:17:0"
                          }
                        ],
                        "id": 550,
                        "name": "FunctionCall",
                        "src": "5098:30:0"
                      }
                    ],
                    "id": 551,
                    "name": "VariableDeclarationStatement",
                    "src": "5078:50:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "delete",
                          "prefix": true,
                          "type": "tuple()"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 30,
                                  "type": "mapping(address => address)",
                                  "value": "tokenCache"
                                },
                                "id": 552,
                                "name": "Identifier",
                                "src": "5145:10:0"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 529,
                                  "type": "address",
                                  "value": "owner"
                                },
                                "id": 553,
                                "name": "Identifier",
                                "src": "5156:5:0"
                              }
                            ],
                            "id": 554,
                            "name": "IndexAccess",
                            "src": "5145:17:0"
                          }
                        ],
                        "id": 555,
                        "name": "UnaryOperation",
                        "src": "5138:24:0"
                      }
                    ],
                    "id": 556,
                    "name": "ExpressionStatement",
                    "src": "5138:24:0"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 533
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 545,
                          "type": "contract MiniMeToken",
                          "value": "token"
                        },
                        "id": 557,
                        "name": "Identifier",
                        "src": "5180:5:0"
                      }
                    ],
                    "id": 558,
                    "name": "Return",
                    "src": "5173:12:0"
                  }
                ],
                "id": 559,
                "name": "Block",
                "src": "5018:174:0"
              }
            ],
            "id": 560,
            "name": "FunctionDefinition",
            "src": "4949:243:0"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "registerAragonID",
              "payable": false,
              "scope": 622,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "name",
                      "scope": 577,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "string memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "string",
                          "type": "string storage pointer"
                        },
                        "id": 561,
                        "name": "ElementaryTypeName",
                        "src": "5224:6:0"
                      }
                    ],
                    "id": 562,
                    "name": "VariableDeclaration",
                    "src": "5224:11:0"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "owner",
                      "scope": 577,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 563,
                        "name": "ElementaryTypeName",
                        "src": "5237:7:0"
                      }
                    ],
                    "id": 564,
                    "name": "VariableDeclaration",
                    "src": "5237:13:0"
                  }
                ],
                "id": 565,
                "name": "ParameterList",
                "src": "5223:28:0"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 566,
                "name": "ParameterList",
                "src": "5261:0:0"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "register",
                              "referencedDeclaration": 4349,
                              "type": "function (bytes32,address) external"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 22,
                                  "type": "contract IFIFSResolvingRegistrar",
                                  "value": "aragonID"
                                },
                                "id": 567,
                                "name": "Identifier",
                                "src": "5271:8:0"
                              }
                            ],
                            "id": 569,
                            "name": "MemberAccess",
                            "src": "5271:17:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 12584,
                                  "type": "function () pure returns (bytes32)",
                                  "value": "keccak256"
                                },
                                "id": 570,
                                "name": "Identifier",
                                "src": "5289:9:0"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 562,
                                  "type": "string memory",
                                  "value": "name"
                                },
                                "id": 571,
                                "name": "Identifier",
                                "src": "5299:4:0"
                              }
                            ],
                            "id": 572,
                            "name": "FunctionCall",
                            "src": "5289:15:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 564,
                              "type": "address",
                              "value": "owner"
                            },
                            "id": 573,
                            "name": "Identifier",
                            "src": "5306:5:0"
                          }
                        ],
                        "id": 574,
                        "name": "FunctionCall",
                        "src": "5271:41:0"
                      }
                    ],
                    "id": 575,
                    "name": "ExpressionStatement",
                    "src": "5271:41:0"
                  }
                ],
                "id": 576,
                "name": "Block",
                "src": "5261:58:0"
              }
            ],
            "id": 577,
            "name": "FunctionDefinition",
            "src": "5198:121:0"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "latestVersionAppBase",
              "payable": false,
              "scope": 622,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "appId",
                      "scope": 609,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 578,
                        "name": "ElementaryTypeName",
                        "src": "5390:7:0"
                      }
                    ],
                    "id": 579,
                    "name": "VariableDeclaration",
                    "src": "5390:13:0"
                  }
                ],
                "id": 580,
                "name": "ParameterList",
                "src": "5389:15:0"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "base",
                      "scope": 609,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 581,
                        "name": "ElementaryTypeName",
                        "src": "5426:7:0"
                      }
                    ],
                    "id": 582,
                    "name": "VariableDeclaration",
                    "src": "5426:12:0"
                  }
                ],
                "id": 583,
                "name": "ParameterList",
                "src": "5425:14:0"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        585
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "repo",
                          "scope": 609,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "contract Repo",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "Repo",
                              "referencedDeclaration": 6654,
                              "type": "contract Repo"
                            },
                            "id": 584,
                            "name": "UserDefinedTypeName",
                            "src": "5450:4:0"
                          }
                        ],
                        "id": 585,
                        "name": "VariableDeclaration",
                        "src": "5450:9:0"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "contract Repo",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6654,
                              "type": "type(contract Repo)",
                              "value": "Repo"
                            },
                            "id": 586,
                            "name": "Identifier",
                            "src": "5462:4:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "address",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "addr",
                                  "referencedDeclaration": 10406,
                                  "type": "function (bytes32) view external returns (address)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "contract PublicResolver",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          ],
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10700,
                                          "type": "type(contract PublicResolver)",
                                          "value": "PublicResolver"
                                        },
                                        "id": 587,
                                        "name": "Identifier",
                                        "src": "5467:14:0"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "isStructConstructorCall": false,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "type": "address",
                                          "type_conversion": false
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_bytes32",
                                                  "typeString": "bytes32"
                                                }
                                              ],
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "resolver",
                                              "referencedDeclaration": 9990,
                                              "type": "function (bytes32) view external returns (address)"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "arguments": [
                                                    null
                                                  ],
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "isStructConstructorCall": false,
                                                  "lValueRequested": false,
                                                  "names": [
                                                    null
                                                  ],
                                                  "type": "contract AbstractENS",
                                                  "type_conversion": false
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": [
                                                        null
                                                      ],
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 621,
                                                      "type": "function () view returns (contract AbstractENS)",
                                                      "value": "ens"
                                                    },
                                                    "id": 588,
                                                    "name": "Identifier",
                                                    "src": "5482:3:0"
                                                  }
                                                ],
                                                "id": 589,
                                                "name": "FunctionCall",
                                                "src": "5482:5:0"
                                              }
                                            ],
                                            "id": 590,
                                            "name": "MemberAccess",
                                            "src": "5482:14:0"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 579,
                                              "type": "bytes32",
                                              "value": "appId"
                                            },
                                            "id": 591,
                                            "name": "Identifier",
                                            "src": "5497:5:0"
                                          }
                                        ],
                                        "id": 592,
                                        "name": "FunctionCall",
                                        "src": "5482:21:0"
                                      }
                                    ],
                                    "id": 593,
                                    "name": "FunctionCall",
                                    "src": "5467:37:0"
                                  }
                                ],
                                "id": 594,
                                "name": "MemberAccess",
                                "src": "5467:42:0"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 579,
                                  "type": "bytes32",
                                  "value": "appId"
                                },
                                "id": 595,
                                "name": "Identifier",
                                "src": "5510:5:0"
                              }
                            ],
                            "id": 596,
                            "name": "FunctionCall",
                            "src": "5467:49:0"
                          }
                        ],
                        "id": 597,
                        "name": "FunctionCall",
                        "src": "5462:55:0"
                      }
                    ],
                    "id": 598,
                    "name": "VariableDeclarationStatement",
                    "src": "5450:67:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "tuple()"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "components": [
                                null,
                                {
                                  "attributes": {
                                    "argumentTypes": null,
                                    "overloadedDeclarations": [
                                      null
                                    ],
                                    "referencedDeclaration": 582,
                                    "type": "address",
                                    "value": "base"
                                  },
                                  "id": 599,
                                  "name": "Identifier",
                                  "src": "5529:4:0"
                                },
                                null
                              ],
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "tuple(,address,)"
                            },
                            "id": 600,
                            "name": "TupleExpression",
                            "src": "5527:8:0"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "tuple(uint16[3] memory,address,inaccessible dynamic type)",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "getLatest",
                                  "referencedDeclaration": 6456,
                                  "type": "function () view external returns (uint16[3] memory,address,inaccessible dynamic type)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 585,
                                      "type": "contract Repo",
                                      "value": "repo"
                                    },
                                    "id": 601,
                                    "name": "Identifier",
                                    "src": "5538:4:0"
                                  }
                                ],
                                "id": 602,
                                "name": "MemberAccess",
                                "src": "5538:14:0"
                              }
                            ],
                            "id": 603,
                            "name": "FunctionCall",
                            "src": "5538:16:0"
                          }
                        ],
                        "id": 604,
                        "name": "Assignment",
                        "src": "5527:27:0"
                      }
                    ],
                    "id": 605,
                    "name": "ExpressionStatement",
                    "src": "5527:27:0"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 583
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 582,
                          "type": "address",
                          "value": "base"
                        },
                        "id": 606,
                        "name": "Identifier",
                        "src": "5572:4:0"
                      }
                    ],
                    "id": 607,
                    "name": "Return",
                    "src": "5565:11:0"
                  }
                ],
                "id": 608,
                "name": "Block",
                "src": "5440:143:0"
              }
            ],
            "id": 609,
            "name": "FunctionDefinition",
            "src": "5360:223:0"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "ens",
              "payable": false,
              "scope": 622,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 610,
                "name": "ParameterList",
                "src": "5601:2:0"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 621,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract AbstractENS",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "AbstractENS",
                          "referencedDeclaration": 10054,
                          "type": "contract AbstractENS"
                        },
                        "id": 611,
                        "name": "UserDefinedTypeName",
                        "src": "5627:11:0"
                      }
                    ],
                    "id": 612,
                    "name": "VariableDeclaration",
                    "src": "5627:11:0"
                  }
                ],
                "id": 613,
                "name": "ParameterList",
                "src": "5626:13:0"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 613
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "arguments": [
                            null
                          ],
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "contract AbstractENS",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "ens",
                              "referencedDeclaration": 7318,
                              "type": "function () view external returns (contract AbstractENS)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "contract ENSSubdomainRegistrar",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        null
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "registrar",
                                      "referencedDeclaration": 6029,
                                      "type": "function () view external returns (contract ENSSubdomainRegistrar)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 14,
                                          "type": "contract APMRegistry",
                                          "value": "apm"
                                        },
                                        "id": 614,
                                        "name": "Identifier",
                                        "src": "5657:3:0"
                                      }
                                    ],
                                    "id": 615,
                                    "name": "MemberAccess",
                                    "src": "5657:13:0"
                                  }
                                ],
                                "id": 616,
                                "name": "FunctionCall",
                                "src": "5657:15:0"
                              }
                            ],
                            "id": 617,
                            "name": "MemberAccess",
                            "src": "5657:19:0"
                          }
                        ],
                        "id": 618,
                        "name": "FunctionCall",
                        "src": "5657:21:0"
                      }
                    ],
                    "id": 619,
                    "name": "Return",
                    "src": "5650:28:0"
                  }
                ],
                "id": 620,
                "name": "Block",
                "src": "5640:45:0"
              }
            ],
            "id": 621,
            "name": "FunctionDefinition",
            "src": "5589:96:0"
          }
        ],
        "id": 622,
        "name": "ContractDefinition",
        "src": "613:5074:0"
      }
    ],
    "id": 623,
    "name": "SourceUnit",
    "src": "0:5688:0"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.18+commit.9cf6e910.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "1.0.1",
  "updatedAt": "2018-03-14T08:41:25.064Z"
}